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

Unified Diff: runtime/vm/dart_api_impl_test.cc

Issue 2982823002: Option to truncate integers to 64 bits, part 2 (Closed)
Patch Set: Fixes for review comments 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/dart_api_impl_test.cc
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index bb277eeac3d4515cb730e9eece2ad20c3178dd3e..cfeae4470ead9dc737d788a6720023e7a4f59759 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -844,10 +844,14 @@ TEST_CASE(IntegerValues) {
EXPECT(fits);
Dart_Handle val3 = Dart_NewIntegerFromHexCString(kIntegerVal3);
- EXPECT(Dart_IsInteger(val3));
- result = Dart_IntegerFitsIntoInt64(val3, &fits);
- EXPECT_VALID(result);
- EXPECT(!fits);
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(val3));
+ } else {
+ EXPECT(Dart_IsInteger(val3));
+ result = Dart_IntegerFitsIntoInt64(val3, &fits);
+ EXPECT_VALID(result);
+ EXPECT(!fits);
+ }
int64_t out = 0;
result = Dart_IntegerToInt64(val1, &out);
@@ -864,11 +868,15 @@ TEST_CASE(IntegerValues) {
EXPECT(!strcmp(kIntegerVal3, chars));
Dart_Handle val4 = Dart_NewIntegerFromUint64(kIntegerVal4);
- EXPECT_VALID(val4);
- uint64_t out4 = 0;
- result = Dart_IntegerToUint64(val4, &out4);
- EXPECT_VALID(result);
- EXPECT_EQ(kIntegerVal4, out4);
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(val4));
+ } else {
+ EXPECT_VALID(val4);
+ uint64_t out4 = 0;
+ result = Dart_IntegerToUint64(val4, &out4);
+ EXPECT_VALID(result);
+ EXPECT_EQ(kIntegerVal4, out4);
+ }
Dart_Handle val5 = Dart_NewInteger(-1);
EXPECT_VALID(val5);
@@ -892,11 +900,15 @@ TEST_CASE(IntegerFitsIntoInt64) {
EXPECT(fits);
Dart_Handle above_max = Dart_NewIntegerFromHexCString("0x8000000000000000");
- EXPECT(Dart_IsInteger(above_max));
- fits = true;
- result = Dart_IntegerFitsIntoInt64(above_max, &fits);
- EXPECT_VALID(result);
- EXPECT(!fits);
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(above_max));
+ } else {
+ EXPECT(Dart_IsInteger(above_max));
+ fits = true;
+ result = Dart_IntegerFitsIntoInt64(above_max, &fits);
+ EXPECT_VALID(result);
+ EXPECT(!fits);
+ }
Dart_Handle min = Dart_NewInteger(kMinInt64);
EXPECT(Dart_IsInteger(min));
@@ -906,32 +918,44 @@ TEST_CASE(IntegerFitsIntoInt64) {
EXPECT(fits);
Dart_Handle below_min = Dart_NewIntegerFromHexCString("-0x8000000000000001");
- EXPECT(Dart_IsInteger(below_min));
- fits = true;
- result = Dart_IntegerFitsIntoInt64(below_min, &fits);
- EXPECT_VALID(result);
- EXPECT(!fits);
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(below_min));
+ } else {
+ EXPECT(Dart_IsInteger(below_min));
+ fits = true;
+ result = Dart_IntegerFitsIntoInt64(below_min, &fits);
+ EXPECT_VALID(result);
+ EXPECT(!fits);
+ }
}
TEST_CASE(IntegerFitsIntoUint64) {
Dart_Handle max = Dart_NewIntegerFromUint64(kMaxUint64);
- EXPECT(Dart_IsInteger(max));
- bool fits = false;
- Dart_Handle result = Dart_IntegerFitsIntoUint64(max, &fits);
- EXPECT_VALID(result);
- EXPECT(fits);
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(max));
+ } else {
+ EXPECT(Dart_IsInteger(max));
+ bool fits = false;
+ Dart_Handle result = Dart_IntegerFitsIntoUint64(max, &fits);
+ EXPECT_VALID(result);
+ EXPECT(fits);
+ }
Dart_Handle above_max = Dart_NewIntegerFromHexCString("0x10000000000000000");
- EXPECT(Dart_IsInteger(above_max));
- fits = true;
- result = Dart_IntegerFitsIntoUint64(above_max, &fits);
- EXPECT_VALID(result);
- EXPECT(!fits);
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(above_max));
+ } else {
+ EXPECT(Dart_IsInteger(above_max));
+ bool fits = true;
+ Dart_Handle result = Dart_IntegerFitsIntoUint64(above_max, &fits);
+ EXPECT_VALID(result);
+ EXPECT(!fits);
+ }
Dart_Handle min = Dart_NewInteger(0);
EXPECT(Dart_IsInteger(min));
- fits = false;
- result = Dart_IntegerFitsIntoUint64(min, &fits);
+ bool fits = false;
+ Dart_Handle result = Dart_IntegerFitsIntoUint64(min, &fits);
EXPECT_VALID(result);
EXPECT(fits);
@@ -7836,9 +7860,14 @@ TEST_CASE(InvalidGetSetPeer) {
EXPECT(Dart_IsError(Dart_SetPeer(smi, &out)));
out = &out;
Dart_Handle big = Dart_NewIntegerFromHexCString("0x10000000000000000");
- EXPECT(Dart_IsError(Dart_GetPeer(big, &out)));
- EXPECT(out == &out);
- EXPECT(Dart_IsError(Dart_SetPeer(big, &out)));
+ if (FLAG_limit_ints_to_64_bits) {
+ EXPECT(Dart_IsApiError(big));
+ } else {
+ EXPECT(Dart_IsError(Dart_GetPeer(big, &out)));
+ EXPECT(out == &out);
+ EXPECT(Dart_IsError(Dart_SetPeer(big, &out)));
+ }
+ out = &out;
Dart_Handle dbl = Dart_NewDouble(0.0);
EXPECT(Dart_IsError(Dart_GetPeer(dbl, &out)));
EXPECT(out == &out);
« runtime/lib/integers.cc ('K') | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698