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

Side by Side Diff: vm/object_test.cc

Issue 11745022: - Make Boolean 'true' and 'false' singleton VM isolate objects. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 7 years, 11 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 | « vm/object_store.cc ('k') | vm/parser.cc » ('j') | 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/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 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 String& cat = String::Handle(Symbols::FromCharCode(kCatFaceWithTearsOfJoy)); 1606 String& cat = String::Handle(Symbols::FromCharCode(kCatFaceWithTearsOfJoy));
1607 1607
1608 uint16_t cat_utf16[] = { 0xd83d, 0xde39 }; 1608 uint16_t cat_utf16[] = { 0xd83d, 0xde39 };
1609 String& cat2 = String::Handle(Symbols::FromUTF16(cat_utf16, 2)); 1609 String& cat2 = String::Handle(Symbols::FromUTF16(cat_utf16, 2));
1610 EXPECT(cat2.IsSymbol()); 1610 EXPECT(cat2.IsSymbol());
1611 EXPECT_EQ(cat2.raw(), cat.raw()); 1611 EXPECT_EQ(cat2.raw(), cat.raw());
1612 } 1612 }
1613 1613
1614 1614
1615 TEST_CASE(Bool) { 1615 TEST_CASE(Bool) {
1616 const Bool& true_value = Bool::Handle(Bool::True()); 1616 EXPECT(Bool::True().value());
1617 EXPECT(true_value.value()); 1617 EXPECT(!Bool::False().value());
1618 const Bool& false_value = Bool::Handle(Bool::False());
1619 EXPECT(!false_value.value());
1620 } 1618 }
1621 1619
1622 1620
1623 TEST_CASE(Array) { 1621 TEST_CASE(Array) {
1624 const int kArrayLen = 5; 1622 const int kArrayLen = 5;
1625 const Array& array = Array::Handle(Array::New(kArrayLen)); 1623 const Array& array = Array::Handle(Array::New(kArrayLen));
1626 EXPECT_EQ(kArrayLen, array.Length()); 1624 EXPECT_EQ(kArrayLen, array.Length());
1627 Object& element = Object::Handle(array.At(0)); 1625 Object& element = Object::Handle(array.At(0));
1628 EXPECT(element.IsNull()); 1626 EXPECT(element.IsNull());
1629 element = array.At(kArrayLen - 1); 1627 element = array.At(kArrayLen - 1);
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
2536 TEST_CASE(ObjectPrinting) { 2534 TEST_CASE(ObjectPrinting) {
2537 // Simple Smis. 2535 // Simple Smis.
2538 EXPECT_STREQ("2", Smi::Handle(Smi::New(2)).ToCString()); 2536 EXPECT_STREQ("2", Smi::Handle(Smi::New(2)).ToCString());
2539 EXPECT_STREQ("-15", Smi::Handle(Smi::New(-15)).ToCString()); 2537 EXPECT_STREQ("-15", Smi::Handle(Smi::New(-15)).ToCString());
2540 2538
2541 // bool class and true/false values. 2539 // bool class and true/false values.
2542 ObjectStore* object_store = Isolate::Current()->object_store(); 2540 ObjectStore* object_store = Isolate::Current()->object_store();
2543 const Class& bool_class = Class::Handle(object_store->bool_class()); 2541 const Class& bool_class = Class::Handle(object_store->bool_class());
2544 EXPECT_STREQ("Library:'dart:core' Class: bool", 2542 EXPECT_STREQ("Library:'dart:core' Class: bool",
2545 bool_class.ToCString()); 2543 bool_class.ToCString());
2546 EXPECT_STREQ("true", Bool::Handle(Bool::True()).ToCString()); 2544 EXPECT_STREQ("true", Bool::True().ToCString());
2547 EXPECT_STREQ("false", Bool::Handle(Bool::False()).ToCString()); 2545 EXPECT_STREQ("false", Bool::False().ToCString());
2548 2546
2549 // Strings. 2547 // Strings.
2550 EXPECT_STREQ("Sugarbowl", 2548 EXPECT_STREQ("Sugarbowl",
2551 String::Handle(String::New("Sugarbowl")).ToCString()); 2549 String::Handle(String::New("Sugarbowl")).ToCString());
2552 } 2550 }
2553 2551
2554 2552
2555 TEST_CASE(CheckedHandle) { 2553 TEST_CASE(CheckedHandle) {
2556 // Ensure that null handles have the correct C++ vtable setup. 2554 // Ensure that null handles have the correct C++ vtable setup.
2557 const String& str1 = String::Handle(); 2555 const String& str1 = String::Handle();
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
2839 TEST_CASE(SubtypeTestCache) { 2837 TEST_CASE(SubtypeTestCache) {
2840 String& class_name = String::Handle(Symbols::New("EmptyClass")); 2838 String& class_name = String::Handle(Symbols::New("EmptyClass"));
2841 Script& script = Script::Handle(); 2839 Script& script = Script::Handle();
2842 const Class& empty_class = 2840 const Class& empty_class =
2843 Class::Handle(Class::New(class_name, script, Scanner::kDummyTokenIndex)); 2841 Class::Handle(Class::New(class_name, script, Scanner::kDummyTokenIndex));
2844 SubtypeTestCache& cache = SubtypeTestCache::Handle(SubtypeTestCache::New()); 2842 SubtypeTestCache& cache = SubtypeTestCache::Handle(SubtypeTestCache::New());
2845 ASSERT(!cache.IsNull()); 2843 ASSERT(!cache.IsNull());
2846 EXPECT_EQ(0, cache.NumberOfChecks()); 2844 EXPECT_EQ(0, cache.NumberOfChecks());
2847 const TypeArguments& targ_0 = TypeArguments::Handle(TypeArguments::New(2)); 2845 const TypeArguments& targ_0 = TypeArguments::Handle(TypeArguments::New(2));
2848 const TypeArguments& targ_1 = TypeArguments::Handle(TypeArguments::New(3)); 2846 const TypeArguments& targ_1 = TypeArguments::Handle(TypeArguments::New(3));
2849 cache.AddCheck(empty_class.id(), targ_0, targ_1, Bool::Handle(Bool::True())); 2847 cache.AddCheck(empty_class.id(), targ_0, targ_1, Bool::True());
2850 EXPECT_EQ(1, cache.NumberOfChecks()); 2848 EXPECT_EQ(1, cache.NumberOfChecks());
2851 intptr_t test_class_id = -1; 2849 intptr_t test_class_id = -1;
2852 AbstractTypeArguments& test_targ_0 = AbstractTypeArguments::Handle(); 2850 AbstractTypeArguments& test_targ_0 = AbstractTypeArguments::Handle();
2853 AbstractTypeArguments& test_targ_1 = AbstractTypeArguments::Handle(); 2851 AbstractTypeArguments& test_targ_1 = AbstractTypeArguments::Handle();
2854 Bool& test_result = Bool::Handle(); 2852 Bool& test_result = Bool::Handle();
2855 cache.GetCheck(0, &test_class_id, &test_targ_0, &test_targ_1, &test_result); 2853 cache.GetCheck(0, &test_class_id, &test_targ_0, &test_targ_1, &test_result);
2856 EXPECT_EQ(empty_class.id(), test_class_id); 2854 EXPECT_EQ(empty_class.id(), test_class_id);
2857 EXPECT_EQ(targ_0.raw(), test_targ_0.raw()); 2855 EXPECT_EQ(targ_0.raw(), test_targ_0.raw());
2858 EXPECT_EQ(targ_1.raw(), test_targ_1.raw()); 2856 EXPECT_EQ(targ_1.raw(), test_targ_1.raw());
2859 EXPECT_EQ(Bool::True(), test_result.raw()); 2857 EXPECT_EQ(Bool::True().raw(), test_result.raw());
2860 } 2858 }
2861 2859
2862 2860
2863 TEST_CASE(FieldTests) { 2861 TEST_CASE(FieldTests) {
2864 const String& f = String::Handle(String::New("oneField")); 2862 const String& f = String::Handle(String::New("oneField"));
2865 const String& getter_f = String::Handle(Field::GetterName(f)); 2863 const String& getter_f = String::Handle(Field::GetterName(f));
2866 const String& setter_f = String::Handle(Field::SetterName(f)); 2864 const String& setter_f = String::Handle(Field::SetterName(f));
2867 EXPECT(!Field::IsGetterName(f)); 2865 EXPECT(!Field::IsGetterName(f));
2868 EXPECT(!Field::IsSetterName(f)); 2866 EXPECT(!Field::IsSetterName(f));
2869 EXPECT(Field::IsGetterName(getter_f)); 2867 EXPECT(Field::IsGetterName(getter_f));
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
3481 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); 3479 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint());
3482 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); 3480 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint());
3483 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); 3481 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint());
3484 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); 3482 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint());
3485 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); 3483 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint());
3486 } 3484 }
3487 3485
3488 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). 3486 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
3489 3487
3490 } // namespace dart 3488 } // namespace dart
OLDNEW
« no previous file with comments | « vm/object_store.cc ('k') | vm/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698