Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: runtime/vm/object_test.cc

Issue 10687004: Implement method and variable reflection in dart:mirrors. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/object.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/isolate.h" 8 #include "vm/isolate.h"
9 #include "vm/object.h" 9 #include "vm/object.h"
10 #include "vm/object_store.h" 10 #include "vm/object_store.h"
(...skipping 2652 matching lines...) Expand 10 before | Expand all | Expand 10 after
2663 EXPECT(Field::IsGetterName(getter_f)); 2663 EXPECT(Field::IsGetterName(getter_f));
2664 EXPECT(!Field::IsSetterName(getter_f)); 2664 EXPECT(!Field::IsSetterName(getter_f));
2665 EXPECT(!Field::IsGetterName(setter_f)); 2665 EXPECT(!Field::IsGetterName(setter_f));
2666 EXPECT(Field::IsSetterName(setter_f)); 2666 EXPECT(Field::IsSetterName(setter_f));
2667 EXPECT_STREQ(f.ToCString(), 2667 EXPECT_STREQ(f.ToCString(),
2668 String::Handle(Field::NameFromGetter(getter_f)).ToCString()); 2668 String::Handle(Field::NameFromGetter(getter_f)).ToCString());
2669 EXPECT_STREQ(f.ToCString(), 2669 EXPECT_STREQ(f.ToCString(),
2670 String::Handle(Field::NameFromSetter(setter_f)).ToCString()); 2670 String::Handle(Field::NameFromSetter(setter_f)).ToCString());
2671 } 2671 }
2672 2672
2673
2674 // Expose helper function from object.cc for testing.
2675 bool EqualsIgnoringPrivate(const String& name, const String& private_name);
2676
2677
2678 TEST_CASE(EqualsIgnoringPrivate) {
2679 String& mangled_name = String::Handle();
2680 String& bare_name = String::Handle();
2681
2682 // Simple matches.
2683 mangled_name = String::New("foo");
2684 bare_name = String::New("foo");
2685 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2686
2687 mangled_name = String::New("foo.");
2688 bare_name = String::New("foo.");
2689 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2690
2691 mangled_name = String::New("foo.named");
2692 bare_name = String::New("foo.named");
2693 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2694
2695 // Simple mismatches.
2696 mangled_name = String::New("bar");
2697 bare_name = String::New("foo");
2698 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2699
2700 mangled_name = String::New("foo.");
2701 bare_name = String::New("foo");
2702 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2703
2704 mangled_name = String::New("foo");
2705 bare_name = String::New("foo.");
2706 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2707
2708 mangled_name = String::New("foo.name");
2709 bare_name = String::New("foo.named");
2710 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2711
2712 mangled_name = String::New("foo.named");
2713 bare_name = String::New("foo.name");
2714 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2715
2716 // Private match.
2717 mangled_name = String::New("foo@12345");
2718 bare_name = String::New("foo");
2719 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2720
2721 // Private mismatch.
2722 mangled_name = String::New("food@12345");
2723 bare_name = String::New("foo");
2724 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2725
2726 // Private mismatch 2.
2727 mangled_name = String::New("foo@12345");
2728 bare_name = String::New("food");
2729 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2730
2731 // Private constructor match.
2732 mangled_name = String::New("foo@12345.");
2733 bare_name = String::New("foo.");
2734 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2735
2736 // Private constructor mismatch.
2737 mangled_name = String::New("foo@12345.");
2738 bare_name = String::New("foo");
2739 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2740
2741 // Private constructor mismatch 2.
2742 mangled_name = String::New("foo@12345");
2743 bare_name = String::New("foo.");
2744 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2745
2746 // Named private constructor match.
2747 mangled_name = String::New("foo@12345.named");
2748 bare_name = String::New("foo.named");
2749 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2750
2751 // Named private constructor mismatch.
2752 mangled_name = String::New("foo@12345.name");
2753 bare_name = String::New("foo.named");
2754 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2755
2756 // Named private constructor mismatch 2.
2757 mangled_name = String::New("foo@12345.named");
2758 bare_name = String::New("foo.name");
2759 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2760
2761 // Named double-private constructor match. Yes, this happens.
2762 mangled_name = String::New("foo@12345.named@12345");
2763 bare_name = String::New("foo.named");
2764 EXPECT(EqualsIgnoringPrivate(mangled_name, bare_name));
2765
2766 // Named double-private constructor mismatch.
2767 mangled_name = String::New("foo@12345.name@12345");
2768 bare_name = String::New("foo.named");
2769 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2770
2771 // Named double-private constructor mismatch.
2772 mangled_name = String::New("foo@12345.named@12345");
2773 bare_name = String::New("foo.name");
2774 EXPECT(!EqualsIgnoringPrivate(mangled_name, bare_name));
2775 }
2776
2777
2673 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). 2778 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
2674 2779
2675 } // namespace dart 2780 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698