| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/assert.h" | 5 #include "platform/assert.h" |
| 6 #include "vm/assembler.h" | 6 #include "vm/assembler.h" |
| 7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
| 8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
| 9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
| 10 #include "vm/object.h" | 10 #include "vm/object.h" |
| (...skipping 2942 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2953 bool EqualsIgnoringPrivate(const String& name, const String& private_name); | 2953 bool EqualsIgnoringPrivate(const String& name, const String& private_name); |
| 2954 | 2954 |
| 2955 | 2955 |
| 2956 TEST_CASE(EqualsIgnoringPrivate) { | 2956 TEST_CASE(EqualsIgnoringPrivate) { |
| 2957 String& mangled_name = String::Handle(); | 2957 String& mangled_name = String::Handle(); |
| 2958 String& bare_name = String::Handle(); | 2958 String& bare_name = String::Handle(); |
| 2959 | 2959 |
| 2960 // Simple matches. | 2960 // Simple matches. |
| 2961 mangled_name = OneByteString::New("foo"); | 2961 mangled_name = OneByteString::New("foo"); |
| 2962 bare_name = OneByteString::New("foo"); | 2962 bare_name = OneByteString::New("foo"); |
| 2963 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2963 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2964 | 2964 |
| 2965 mangled_name = OneByteString::New("foo."); | 2965 mangled_name = OneByteString::New("foo."); |
| 2966 bare_name = OneByteString::New("foo."); | 2966 bare_name = OneByteString::New("foo."); |
| 2967 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2967 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2968 | 2968 |
| 2969 mangled_name = OneByteString::New("foo.named"); | 2969 mangled_name = OneByteString::New("foo.named"); |
| 2970 bare_name = OneByteString::New("foo.named"); | 2970 bare_name = OneByteString::New("foo.named"); |
| 2971 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2971 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2972 | 2972 |
| 2973 // Simple mismatches. | 2973 // Simple mismatches. |
| 2974 mangled_name = OneByteString::New("bar"); | 2974 mangled_name = OneByteString::New("bar"); |
| 2975 bare_name = OneByteString::New("foo"); | 2975 bare_name = OneByteString::New("foo"); |
| 2976 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2976 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2977 | 2977 |
| 2978 mangled_name = OneByteString::New("foo."); | 2978 mangled_name = OneByteString::New("foo."); |
| 2979 bare_name = OneByteString::New("foo"); | 2979 bare_name = OneByteString::New("foo"); |
| 2980 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2980 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2981 | 2981 |
| 2982 mangled_name = OneByteString::New("foo"); | 2982 mangled_name = OneByteString::New("foo"); |
| 2983 bare_name = OneByteString::New("foo."); | 2983 bare_name = OneByteString::New("foo."); |
| 2984 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2984 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2985 | 2985 |
| 2986 mangled_name = OneByteString::New("foo.name"); | 2986 mangled_name = OneByteString::New("foo.name"); |
| 2987 bare_name = OneByteString::New("foo.named"); | 2987 bare_name = OneByteString::New("foo.named"); |
| 2988 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2988 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2989 | 2989 |
| 2990 mangled_name = OneByteString::New("foo.named"); | 2990 mangled_name = OneByteString::New("foo.named"); |
| 2991 bare_name = OneByteString::New("foo.name"); | 2991 bare_name = OneByteString::New("foo.name"); |
| 2992 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2992 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2993 | 2993 |
| 2994 // Private match. | 2994 // Private match. |
| 2995 mangled_name = OneByteString::New("foo@12345"); | 2995 mangled_name = OneByteString::New("foo@12345"); |
| 2996 bare_name = OneByteString::New("foo"); | 2996 bare_name = OneByteString::New("foo"); |
| 2997 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 2997 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 2998 | 2998 |
| 2999 // Private mismatch. | 2999 // Private mismatch. |
| 3000 mangled_name = OneByteString::New("food@12345"); | 3000 mangled_name = OneByteString::New("food@12345"); |
| 3001 bare_name = OneByteString::New("foo"); | 3001 bare_name = OneByteString::New("foo"); |
| 3002 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3002 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3003 | 3003 |
| 3004 // Private mismatch 2. | 3004 // Private mismatch 2. |
| 3005 mangled_name = OneByteString::New("foo@12345"); | 3005 mangled_name = OneByteString::New("foo@12345"); |
| 3006 bare_name = OneByteString::New("food"); | 3006 bare_name = OneByteString::New("food"); |
| 3007 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3007 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3008 | 3008 |
| 3009 // Private constructor match. | 3009 // Private constructor match. |
| 3010 mangled_name = OneByteString::New("foo@12345."); | 3010 mangled_name = OneByteString::New("foo@12345."); |
| 3011 bare_name = OneByteString::New("foo."); | 3011 bare_name = OneByteString::New("foo."); |
| 3012 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3012 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3013 | 3013 |
| 3014 // Private constructor mismatch. | 3014 // Private constructor mismatch. |
| 3015 mangled_name = OneByteString::New("foo@12345."); | 3015 mangled_name = OneByteString::New("foo@12345."); |
| 3016 bare_name = OneByteString::New("foo"); | 3016 bare_name = OneByteString::New("foo"); |
| 3017 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3017 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3018 | 3018 |
| 3019 // Private constructor mismatch 2. | 3019 // Private constructor mismatch 2. |
| 3020 mangled_name = OneByteString::New("foo@12345"); | 3020 mangled_name = OneByteString::New("foo@12345"); |
| 3021 bare_name = OneByteString::New("foo."); | 3021 bare_name = OneByteString::New("foo."); |
| 3022 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3022 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3023 | 3023 |
| 3024 // Named private constructor match. | 3024 // Named private constructor match. |
| 3025 mangled_name = OneByteString::New("foo@12345.named"); | 3025 mangled_name = OneByteString::New("foo@12345.named"); |
| 3026 bare_name = OneByteString::New("foo.named"); | 3026 bare_name = OneByteString::New("foo.named"); |
| 3027 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3027 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3028 | 3028 |
| 3029 // Named private constructor mismatch. | 3029 // Named private constructor mismatch. |
| 3030 mangled_name = OneByteString::New("foo@12345.name"); | 3030 mangled_name = OneByteString::New("foo@12345.name"); |
| 3031 bare_name = OneByteString::New("foo.named"); | 3031 bare_name = OneByteString::New("foo.named"); |
| 3032 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3032 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3033 | 3033 |
| 3034 // Named private constructor mismatch 2. | 3034 // Named private constructor mismatch 2. |
| 3035 mangled_name = OneByteString::New("foo@12345.named"); | 3035 mangled_name = OneByteString::New("foo@12345.named"); |
| 3036 bare_name = OneByteString::New("foo.name"); | 3036 bare_name = OneByteString::New("foo.name"); |
| 3037 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3037 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3038 | 3038 |
| 3039 // Named double-private constructor match. Yes, this happens. | 3039 // Named double-private constructor match. Yes, this happens. |
| 3040 mangled_name = OneByteString::New("foo@12345.named@12345"); | 3040 mangled_name = OneByteString::New("foo@12345.named@12345"); |
| 3041 bare_name = OneByteString::New("foo.named"); | 3041 bare_name = OneByteString::New("foo.named"); |
| 3042 EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3042 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3043 | 3043 |
| 3044 // Named double-private constructor mismatch. | 3044 // Named double-private constructor mismatch. |
| 3045 mangled_name = OneByteString::New("foo@12345.name@12345"); | 3045 mangled_name = OneByteString::New("foo@12345.name@12345"); |
| 3046 bare_name = OneByteString::New("foo.named"); | 3046 bare_name = OneByteString::New("foo.named"); |
| 3047 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3047 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3048 | 3048 |
| 3049 // Named double-private constructor mismatch. | 3049 // Named double-private constructor mismatch. |
| 3050 mangled_name = OneByteString::New("foo@12345.named@12345"); | 3050 mangled_name = OneByteString::New("foo@12345.named@12345"); |
| 3051 bare_name = OneByteString::New("foo.name"); | 3051 bare_name = OneByteString::New("foo.name"); |
| 3052 EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); | 3052 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
| 3053 |
| 3054 const char* ext_mangled_str = "foo@12345.name@12345"; |
| 3055 const char* ext_bare_str = "foo.name"; |
| 3056 const char* ext_bad_bare_str = "foo.named"; |
| 3057 String& ext_mangled_name = String::Handle(); |
| 3058 String& ext_bare_name = String::Handle(); |
| 3059 String& ext_bad_bare_name = String::Handle(); |
| 3060 |
| 3061 mangled_name = OneByteString::New("foo@12345.name@12345"); |
| 3062 ext_mangled_name = ExternalOneByteString::New( |
| 3063 reinterpret_cast<const uint8_t*>(ext_mangled_str), |
| 3064 strlen(ext_mangled_str), NULL, NULL, Heap::kNew); |
| 3065 EXPECT(ext_mangled_name.IsExternalOneByteString()); |
| 3066 ext_bare_name = ExternalOneByteString::New( |
| 3067 reinterpret_cast<const uint8_t*>(ext_bare_str), |
| 3068 strlen(ext_bare_str), NULL, NULL, Heap::kNew); |
| 3069 EXPECT(ext_bare_name.IsExternalOneByteString()); |
| 3070 ext_bad_bare_name = ExternalOneByteString::New( |
| 3071 reinterpret_cast<const uint8_t*>(ext_bad_bare_str), |
| 3072 strlen(ext_bad_bare_str), NULL, NULL, Heap::kNew); |
| 3073 EXPECT(ext_bad_bare_name.IsExternalOneByteString()); |
| 3074 |
| 3075 // str1 - OneByteString, str2 - ExternalOneByteString. |
| 3076 EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, ext_bare_name)); |
| 3077 EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, ext_bad_bare_name)); |
| 3078 |
| 3079 // str1 - ExternalOneByteString, str2 - OneByteString. |
| 3080 EXPECT(String::EqualsIgnoringPrivateKey(ext_mangled_name, bare_name)); |
| 3081 |
| 3082 // str1 - ExternalOneByteString, str2 - ExternalOneByteString. |
| 3083 EXPECT(String::EqualsIgnoringPrivateKey(ext_mangled_name, ext_bare_name)); |
| 3084 EXPECT(!String::EqualsIgnoringPrivateKey(ext_mangled_name, |
| 3085 ext_bad_bare_name)); |
| 3053 } | 3086 } |
| 3054 | 3087 |
| 3055 | 3088 |
| 3056 TEST_CASE(ArrayNew_Overflow_Crash) { | 3089 TEST_CASE(ArrayNew_Overflow_Crash) { |
| 3057 Array::Handle(Array::New(Array::kMaxElements + 1)); | 3090 Array::Handle(Array::New(Array::kMaxElements + 1)); |
| 3058 } | 3091 } |
| 3059 | 3092 |
| 3060 | 3093 |
| 3061 TEST_CASE(StackTraceFormat) { | 3094 TEST_CASE(StackTraceFormat) { |
| 3062 const char* kScriptChars = | 3095 const char* kScriptChars = |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3553 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); | 3586 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); |
| 3554 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); | 3587 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); |
| 3555 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); | 3588 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); |
| 3556 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); | 3589 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); |
| 3557 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); | 3590 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); |
| 3558 } | 3591 } |
| 3559 | 3592 |
| 3560 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 3593 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 3561 | 3594 |
| 3562 } // namespace dart | 3595 } // namespace dart |
| OLD | NEW |