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/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 Loading... |
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 |
OLD | NEW |