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

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

Issue 2977143002: Revert "Option to truncate integers to 64 bits, part 2" (Closed)
Patch Set: Created 3 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
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/regexp_assembler_ir.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/globals.h" 5 #include "platform/globals.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 #include "vm/class_finalizer.h" 8 #include "vm/class_finalizer.h"
9 #include "vm/code_descriptors.h" 9 #include "vm/code_descriptors.h"
10 #include "vm/dart_api_impl.h" 10 #include "vm/dart_api_impl.h"
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 330
331 Mint& mint1 = Mint::Handle(); 331 Mint& mint1 = Mint::Handle();
332 mint1 ^= Integer::New(DART_2PART_UINT64_C(0x7FFFFFFF, 100)); 332 mint1 ^= Integer::New(DART_2PART_UINT64_C(0x7FFFFFFF, 100));
333 Mint& mint2 = Mint::Handle(); 333 Mint& mint2 = Mint::Handle();
334 mint2 ^= Integer::New(-DART_2PART_UINT64_C(0x7FFFFFFF, 100)); 334 mint2 ^= Integer::New(-DART_2PART_UINT64_C(0x7FFFFFFF, 100));
335 EXPECT_EQ(-1, a.CompareWith(mint1)); 335 EXPECT_EQ(-1, a.CompareWith(mint1));
336 EXPECT_EQ(1, a.CompareWith(mint2)); 336 EXPECT_EQ(1, a.CompareWith(mint2));
337 EXPECT_EQ(-1, c.CompareWith(mint1)); 337 EXPECT_EQ(-1, c.CompareWith(mint1));
338 EXPECT_EQ(1, c.CompareWith(mint2)); 338 EXPECT_EQ(1, c.CompareWith(mint2));
339 339
340 if (!Bigint::IsDisabled()) { 340 Bigint& big1 = Bigint::Handle(Bigint::NewFromCString("10000000000000000000"));
341 Bigint& big1 = 341 Bigint& big2 =
342 Bigint::Handle(Bigint::NewFromCString("10000000000000000000")); 342 Bigint::Handle(Bigint::NewFromCString("-10000000000000000000"));
343 Bigint& big2 = 343 EXPECT_EQ(-1, a.CompareWith(big1));
344 Bigint::Handle(Bigint::NewFromCString("-10000000000000000000")); 344 EXPECT_EQ(1, a.CompareWith(big2));
345 EXPECT_EQ(-1, a.CompareWith(big1)); 345 EXPECT_EQ(-1, c.CompareWith(big1));
346 EXPECT_EQ(1, a.CompareWith(big2)); 346 EXPECT_EQ(1, c.CompareWith(big2));
347 EXPECT_EQ(-1, c.CompareWith(big1));
348 EXPECT_EQ(1, c.CompareWith(big2));
349 }
350 } 347 }
351 348
352 ISOLATE_UNIT_TEST_CASE(StringCompareTo) { 349 ISOLATE_UNIT_TEST_CASE(StringCompareTo) {
353 const String& abcd = String::Handle(String::New("abcd")); 350 const String& abcd = String::Handle(String::New("abcd"));
354 const String& abce = String::Handle(String::New("abce")); 351 const String& abce = String::Handle(String::New("abce"));
355 EXPECT_EQ(0, abcd.CompareTo(abcd)); 352 EXPECT_EQ(0, abcd.CompareTo(abcd));
356 EXPECT_EQ(0, abce.CompareTo(abce)); 353 EXPECT_EQ(0, abce.CompareTo(abce));
357 EXPECT(abcd.CompareTo(abce) < 0); 354 EXPECT(abcd.CompareTo(abce) < 0);
358 EXPECT(abce.CompareTo(abcd) > 0); 355 EXPECT(abce.CompareTo(abcd) > 0);
359 356
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 485
489 Mint& c = Mint::Handle(); 486 Mint& c = Mint::Handle();
490 c ^= Integer::New(-DART_2PART_UINT64_C(3, 0)); 487 c ^= Integer::New(-DART_2PART_UINT64_C(3, 0));
491 Smi& smi1 = Smi::Handle(Smi::New(4)); 488 Smi& smi1 = Smi::Handle(Smi::New(4));
492 Smi& smi2 = Smi::Handle(Smi::New(-4)); 489 Smi& smi2 = Smi::Handle(Smi::New(-4));
493 EXPECT_EQ(1, a.CompareWith(smi1)); 490 EXPECT_EQ(1, a.CompareWith(smi1));
494 EXPECT_EQ(1, a.CompareWith(smi2)); 491 EXPECT_EQ(1, a.CompareWith(smi2));
495 EXPECT_EQ(-1, c.CompareWith(smi1)); 492 EXPECT_EQ(-1, c.CompareWith(smi1));
496 EXPECT_EQ(-1, c.CompareWith(smi2)); 493 EXPECT_EQ(-1, c.CompareWith(smi2));
497 494
498 if (!Bigint::IsDisabled()) { 495 Bigint& big1 = Bigint::Handle(Bigint::NewFromCString("10000000000000000000"));
499 Bigint& big1 = 496 Bigint& big2 =
500 Bigint::Handle(Bigint::NewFromCString("10000000000000000000")); 497 Bigint::Handle(Bigint::NewFromCString("-10000000000000000000"));
501 Bigint& big2 = 498 EXPECT_EQ(-1, a.CompareWith(big1));
502 Bigint::Handle(Bigint::NewFromCString("-10000000000000000000")); 499 EXPECT_EQ(1, a.CompareWith(big2));
503 EXPECT_EQ(-1, a.CompareWith(big1)); 500 EXPECT_EQ(-1, c.CompareWith(big1));
504 EXPECT_EQ(1, a.CompareWith(big2)); 501 EXPECT_EQ(1, c.CompareWith(big2));
505 EXPECT_EQ(-1, c.CompareWith(big1));
506 EXPECT_EQ(1, c.CompareWith(big2));
507 }
508 502
509 int64_t mint_value = DART_2PART_UINT64_C(0x7FFFFFFF, 64); 503 int64_t mint_value = DART_2PART_UINT64_C(0x7FFFFFFF, 64);
510 const String& mint_string = String::Handle(String::New("0x7FFFFFFF00000064")); 504 const String& mint_string = String::Handle(String::New("0x7FFFFFFF00000064"));
511 Mint& mint1 = Mint::Handle(); 505 Mint& mint1 = Mint::Handle();
512 mint1 ^= Integer::NewCanonical(mint_string); 506 mint1 ^= Integer::NewCanonical(mint_string);
513 Mint& mint2 = Mint::Handle(); 507 Mint& mint2 = Mint::Handle();
514 mint2 ^= Integer::NewCanonical(mint_string); 508 mint2 ^= Integer::NewCanonical(mint_string);
515 EXPECT_EQ(mint1.value(), mint_value); 509 EXPECT_EQ(mint1.value(), mint_value);
516 EXPECT_EQ(mint2.value(), mint_value); 510 EXPECT_EQ(mint2.value(), mint_value);
517 EXPECT_EQ(mint1.raw(), mint2.raw()); 511 EXPECT_EQ(mint1.raw(), mint2.raw());
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 EXPECT_EQ(2.0, dbl1.value()); 589 EXPECT_EQ(2.0, dbl1.value());
596 590
597 // Disallow legacy form. 591 // Disallow legacy form.
598 const String& dbl_str2 = String::Handle(String::New("2.0d")); 592 const String& dbl_str2 = String::Handle(String::New("2.0d"));
599 const Double& dbl2 = Double::Handle(Double::New(dbl_str2)); 593 const Double& dbl2 = Double::Handle(Double::New(dbl_str2));
600 EXPECT(dbl2.IsNull()); 594 EXPECT(dbl2.IsNull());
601 } 595 }
602 } 596 }
603 597
604 ISOLATE_UNIT_TEST_CASE(Bigint) { 598 ISOLATE_UNIT_TEST_CASE(Bigint) {
605 if (Bigint::IsDisabled()) {
606 return;
607 }
608
609 Bigint& b = Bigint::Handle(); 599 Bigint& b = Bigint::Handle();
610 EXPECT(b.IsNull()); 600 EXPECT(b.IsNull());
611 const char* cstr = "18446744073709551615000"; 601 const char* cstr = "18446744073709551615000";
612 const String& test = String::Handle(String::New(cstr)); 602 const String& test = String::Handle(String::New(cstr));
613 b ^= Integer::NewCanonical(test); 603 b ^= Integer::NewCanonical(test);
614 const char* str = b.ToCString(); 604 const char* str = b.ToCString();
615 EXPECT_STREQ(cstr, str); 605 EXPECT_STREQ(cstr, str);
616 606
617 int64_t t64 = DART_2PART_UINT64_C(1, 0); 607 int64_t t64 = DART_2PART_UINT64_C(1, 0);
618 Bigint& big = Bigint::Handle(Bigint::NewFromInt64(t64)); 608 Bigint& big = Bigint::Handle(Bigint::NewFromInt64(t64));
(...skipping 27 matching lines...) Expand all
646 ISOLATE_UNIT_TEST_CASE(Integer) { 636 ISOLATE_UNIT_TEST_CASE(Integer) {
647 Integer& i = Integer::Handle(); 637 Integer& i = Integer::Handle();
648 i = Integer::NewCanonical(String::Handle(String::New("12"))); 638 i = Integer::NewCanonical(String::Handle(String::New("12")));
649 EXPECT(i.IsSmi()); 639 EXPECT(i.IsSmi());
650 i = Integer::NewCanonical(String::Handle(String::New("-120"))); 640 i = Integer::NewCanonical(String::Handle(String::New("-120")));
651 EXPECT(i.IsSmi()); 641 EXPECT(i.IsSmi());
652 i = Integer::NewCanonical(String::Handle(String::New("0"))); 642 i = Integer::NewCanonical(String::Handle(String::New("0")));
653 EXPECT(i.IsSmi()); 643 EXPECT(i.IsSmi());
654 i = Integer::NewCanonical( 644 i = Integer::NewCanonical(
655 String::Handle(String::New("12345678901234567890"))); 645 String::Handle(String::New("12345678901234567890")));
656 EXPECT(FLAG_limit_ints_to_64_bits ? i.IsNull() : i.IsBigint()); 646 EXPECT(i.IsBigint());
657 i = Integer::NewCanonical( 647 i = Integer::NewCanonical(
658 String::Handle(String::New("-12345678901234567890111222"))); 648 String::Handle(String::New("-12345678901234567890111222")));
659 EXPECT(FLAG_limit_ints_to_64_bits ? i.IsNull() : i.IsBigint()); 649 EXPECT(i.IsBigint());
660 } 650 }
661 651
662 ISOLATE_UNIT_TEST_CASE(String) { 652 ISOLATE_UNIT_TEST_CASE(String) {
663 const char* kHello = "Hello World!"; 653 const char* kHello = "Hello World!";
664 int32_t hello_len = strlen(kHello); 654 int32_t hello_len = strlen(kHello);
665 const String& str = String::Handle(String::New(kHello)); 655 const String& str = String::Handle(String::New(kHello));
666 EXPECT(str.IsInstance()); 656 EXPECT(str.IsInstance());
667 EXPECT(str.IsString()); 657 EXPECT(str.IsString());
668 EXPECT(str.IsOneByteString()); 658 EXPECT(str.IsOneByteString());
669 EXPECT(!str.IsTwoByteString()); 659 EXPECT(!str.IsTwoByteString());
(...skipping 3497 matching lines...) Expand 10 before | Expand all | Expand 10 after
4167 EXPECT_STREQ( 4157 EXPECT_STREQ(
4168 "{\"type\":\"@Instance\"," 4158 "{\"type\":\"@Instance\","
4169 "\"_vmType\":\"Mint\"," 4159 "\"_vmType\":\"Mint\","
4170 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\"," 4160 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4171 "\"name\":\"_Mint\",\"_vmName\":\"\"}," 4161 "\"name\":\"_Mint\",\"_vmName\":\"\"},"
4172 "\"kind\":\"Int\"," 4162 "\"kind\":\"Int\","
4173 "\"id\":\"\",\"valueAsString\":\"-9223372036854775808\"}", 4163 "\"id\":\"\",\"valueAsString\":\"-9223372036854775808\"}",
4174 buffer); 4164 buffer);
4175 } 4165 }
4176 // Bigint reference 4166 // Bigint reference
4177 if (!Bigint::IsDisabled()) { 4167 {
4178 JSONStream js; 4168 JSONStream js;
4179 const String& bigint_str = 4169 const String& bigint_str =
4180 String::Handle(String::New("44444444444444444444444444444444")); 4170 String::Handle(String::New("44444444444444444444444444444444"));
4181 const Integer& bigint = Integer::Handle(Integer::New(bigint_str)); 4171 const Integer& bigint = Integer::Handle(Integer::New(bigint_str));
4182 bigint.PrintJSON(&js, true); 4172 bigint.PrintJSON(&js, true);
4183 ElideJSONSubstring("classes", js.ToCString(), buffer); 4173 ElideJSONSubstring("classes", js.ToCString(), buffer);
4184 ElideJSONSubstring("objects", buffer, buffer); 4174 ElideJSONSubstring("objects", buffer, buffer);
4185 ElideJSONSubstring("_Bigint@", buffer, buffer); 4175 ElideJSONSubstring("_Bigint@", buffer, buffer);
4186 EXPECT_STREQ( 4176 EXPECT_STREQ(
4187 "{\"type\":\"@Instance\"," 4177 "{\"type\":\"@Instance\","
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
4642 // utf32->utf16 conversion. 4632 // utf32->utf16 conversion.
4643 int32_t char_codes[] = {0, 0x0a, 0x0d, 0x7f, 0xff, 4633 int32_t char_codes[] = {0, 0x0a, 0x0d, 0x7f, 0xff,
4644 0xffff, 0xd800, 0xdc00, 0xdbff, 0xdfff}; 4634 0xffff, 0xd800, 0xdc00, 0xdbff, 0xdfff};
4645 4635
4646 const String& str = 4636 const String& str =
4647 String::Handle(String::FromUTF32(char_codes, ARRAY_SIZE(char_codes))); 4637 String::Handle(String::FromUTF32(char_codes, ARRAY_SIZE(char_codes)));
4648 EXPECT(str.Equals(char_codes, ARRAY_SIZE(char_codes))); 4638 EXPECT(str.Equals(char_codes, ARRAY_SIZE(char_codes)));
4649 } 4639 }
4650 4640
4651 } // namespace dart 4641 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/regexp_assembler_ir.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698