Index: vm/object_test.cc |
=================================================================== |
--- vm/object_test.cc (revision 17180) |
+++ vm/object_test.cc (working copy) |
@@ -2960,96 +2960,129 @@ |
// Simple matches. |
mangled_name = OneByteString::New("foo"); |
bare_name = OneByteString::New("foo"); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
mangled_name = OneByteString::New("foo."); |
bare_name = OneByteString::New("foo."); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
mangled_name = OneByteString::New("foo.named"); |
bare_name = OneByteString::New("foo.named"); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Simple mismatches. |
mangled_name = OneByteString::New("bar"); |
bare_name = OneByteString::New("foo"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
mangled_name = OneByteString::New("foo."); |
bare_name = OneByteString::New("foo"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
mangled_name = OneByteString::New("foo"); |
bare_name = OneByteString::New("foo."); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
mangled_name = OneByteString::New("foo.name"); |
bare_name = OneByteString::New("foo.named"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
mangled_name = OneByteString::New("foo.named"); |
bare_name = OneByteString::New("foo.name"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Private match. |
mangled_name = OneByteString::New("foo@12345"); |
bare_name = OneByteString::New("foo"); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Private mismatch. |
mangled_name = OneByteString::New("food@12345"); |
bare_name = OneByteString::New("foo"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Private mismatch 2. |
mangled_name = OneByteString::New("foo@12345"); |
bare_name = OneByteString::New("food"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Private constructor match. |
mangled_name = OneByteString::New("foo@12345."); |
bare_name = OneByteString::New("foo."); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Private constructor mismatch. |
mangled_name = OneByteString::New("foo@12345."); |
bare_name = OneByteString::New("foo"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Private constructor mismatch 2. |
mangled_name = OneByteString::New("foo@12345"); |
bare_name = OneByteString::New("foo."); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Named private constructor match. |
mangled_name = OneByteString::New("foo@12345.named"); |
bare_name = OneByteString::New("foo.named"); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Named private constructor mismatch. |
mangled_name = OneByteString::New("foo@12345.name"); |
bare_name = OneByteString::New("foo.named"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Named private constructor mismatch 2. |
mangled_name = OneByteString::New("foo@12345.named"); |
bare_name = OneByteString::New("foo.name"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Named double-private constructor match. Yes, this happens. |
mangled_name = OneByteString::New("foo@12345.named@12345"); |
bare_name = OneByteString::New("foo.named"); |
- EXPECT(OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Named double-private constructor mismatch. |
mangled_name = OneByteString::New("foo@12345.name@12345"); |
bare_name = OneByteString::New("foo.named"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
// Named double-private constructor mismatch. |
mangled_name = OneByteString::New("foo@12345.named@12345"); |
bare_name = OneByteString::New("foo.name"); |
- EXPECT(!OneByteString::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name)); |
+ |
+ const char* ext_mangled_str = "foo@12345.name@12345"; |
+ const char* ext_bare_str = "foo.name"; |
+ const char* ext_bad_bare_str = "foo.named"; |
+ String& ext_mangled_name = String::Handle(); |
+ String& ext_bare_name = String::Handle(); |
+ String& ext_bad_bare_name = String::Handle(); |
+ |
+ mangled_name = OneByteString::New("foo@12345.name@12345"); |
+ ext_mangled_name = ExternalOneByteString::New( |
+ reinterpret_cast<const uint8_t*>(ext_mangled_str), |
+ strlen(ext_mangled_str), NULL, NULL, Heap::kNew); |
+ EXPECT(ext_mangled_name.IsExternalOneByteString()); |
+ ext_bare_name = ExternalOneByteString::New( |
+ reinterpret_cast<const uint8_t*>(ext_bare_str), |
+ strlen(ext_bare_str), NULL, NULL, Heap::kNew); |
+ EXPECT(ext_bare_name.IsExternalOneByteString()); |
+ ext_bad_bare_name = ExternalOneByteString::New( |
+ reinterpret_cast<const uint8_t*>(ext_bad_bare_str), |
+ strlen(ext_bad_bare_str), NULL, NULL, Heap::kNew); |
+ EXPECT(ext_bad_bare_name.IsExternalOneByteString()); |
+ |
+ // str1 - OneByteString, str2 - ExternalOneByteString. |
+ EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, ext_bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, ext_bad_bare_name)); |
+ |
+ // str1 - ExternalOneByteString, str2 - OneByteString. |
+ EXPECT(String::EqualsIgnoringPrivateKey(ext_mangled_name, bare_name)); |
+ |
+ // str1 - ExternalOneByteString, str2 - ExternalOneByteString. |
+ EXPECT(String::EqualsIgnoringPrivateKey(ext_mangled_name, ext_bare_name)); |
+ EXPECT(!String::EqualsIgnoringPrivateKey(ext_mangled_name, |
+ ext_bad_bare_name)); |
} |