| Index: runtime/vm/object_test.cc
|
| ===================================================================
|
| --- runtime/vm/object_test.cc (revision 9490)
|
| +++ runtime/vm/object_test.cc (working copy)
|
| @@ -2670,6 +2670,111 @@
|
| String::Handle(Field::NameFromSetter(setter_f)).ToCString());
|
| }
|
|
|
| +
|
| +// Expose helper function from object.cc for testing.
|
| +bool EqualsIgnoringPrivate(const String& name, const String& private_name);
|
| +
|
| +
|
| +TEST_CASE(EqualsIgnoringPrivate) {
|
| + String& mangled_name = String::Handle();
|
| + String& bare_name = String::Handle();
|
| +
|
| + // Simple matches.
|
| + mangled_name = String::New("foo");
|
| + bare_name = String::New("foo");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + mangled_name = String::New("foo.");
|
| + bare_name = String::New("foo.");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + mangled_name = String::New("foo.named");
|
| + bare_name = String::New("foo.named");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Simple mismatches.
|
| + mangled_name = String::New("bar");
|
| + bare_name = String::New("foo");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + mangled_name = String::New("foo.");
|
| + bare_name = String::New("foo");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + mangled_name = String::New("foo");
|
| + bare_name = String::New("foo.");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + mangled_name = String::New("foo.name");
|
| + bare_name = String::New("foo.named");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + mangled_name = String::New("foo.named");
|
| + bare_name = String::New("foo.name");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Private match.
|
| + mangled_name = String::New("foo@12345");
|
| + bare_name = String::New("foo");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Private mismatch.
|
| + mangled_name = String::New("food@12345");
|
| + bare_name = String::New("foo");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Private mismatch 2.
|
| + mangled_name = String::New("foo@12345");
|
| + bare_name = String::New("food");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Private constructor match.
|
| + mangled_name = String::New("foo@12345.");
|
| + bare_name = String::New("foo.");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Private constructor mismatch.
|
| + mangled_name = String::New("foo@12345.");
|
| + bare_name = String::New("foo");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Private constructor mismatch 2.
|
| + mangled_name = String::New("foo@12345");
|
| + bare_name = String::New("foo.");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Named private constructor match.
|
| + mangled_name = String::New("foo@12345.named");
|
| + bare_name = String::New("foo.named");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Named private constructor mismatch.
|
| + mangled_name = String::New("foo@12345.name");
|
| + bare_name = String::New("foo.named");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Named private constructor mismatch 2.
|
| + mangled_name = String::New("foo@12345.named");
|
| + bare_name = String::New("foo.name");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Named double-private constructor match. Yes, this happens.
|
| + mangled_name = String::New("foo@12345.named@12345");
|
| + bare_name = String::New("foo.named");
|
| + EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Named double-private constructor mismatch.
|
| + mangled_name = String::New("foo@12345.name@12345");
|
| + bare_name = String::New("foo.named");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +
|
| + // Named double-private constructor mismatch.
|
| + mangled_name = String::New("foo@12345.named@12345");
|
| + bare_name = String::New("foo.name");
|
| + EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
|
| +}
|
| +
|
| +
|
| #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
|
|
|
| } // namespace dart
|
|
|