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

Unified Diff: runtime/vm/dart_api_impl_test.cc

Issue 8775039: Add Dart_IsExternalString and Dart_ExternalStringGetPeer to the dart (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years 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
« no previous file with comments | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/dart_api_impl_test.cc
===================================================================
--- runtime/vm/dart_api_impl_test.cc (revision 2079)
+++ runtime/vm/dart_api_impl_test.cc (working copy)
@@ -364,6 +364,7 @@
EXPECT(Dart_IsString(str8));
EXPECT(Dart_IsString8(str8));
EXPECT(Dart_IsString16(str8));
+ EXPECT(!Dart_IsExternalString(str8));
Dart_Handle ext8 = Dart_NewExternalString8(data8, ARRAY_SIZE(data8),
NULL, NULL);
@@ -371,6 +372,7 @@
EXPECT(Dart_IsString(ext8));
EXPECT(Dart_IsString8(ext8));
EXPECT(Dart_IsString16(ext8));
+ EXPECT(Dart_IsExternalString(ext8));
uint16_t data16[] = { 't', 'w', 'o', 0xFFFF };
@@ -379,6 +381,7 @@
EXPECT(Dart_IsString(str16));
EXPECT(!Dart_IsString8(str16));
EXPECT(Dart_IsString16(str16));
+ EXPECT(!Dart_IsExternalString(str16));
Dart_Handle ext16 = Dart_NewExternalString16(data16, ARRAY_SIZE(data16),
NULL, NULL);
@@ -386,6 +389,7 @@
EXPECT(Dart_IsString(ext16));
EXPECT(!Dart_IsString8(ext16));
EXPECT(Dart_IsString16(ext16));
+ EXPECT(Dart_IsExternalString(ext16));
uint32_t data32[] = { 'f', 'o', 'u', 'r', 0x10FFFF };
@@ -394,6 +398,7 @@
EXPECT(Dart_IsString(str32));
EXPECT(!Dart_IsString8(str32));
EXPECT(!Dart_IsString16(str32));
+ EXPECT(!Dart_IsExternalString(str32));
Dart_Handle ext32 = Dart_NewExternalString32(data32, ARRAY_SIZE(data32),
NULL, NULL);
@@ -401,9 +406,53 @@
EXPECT(Dart_IsString(ext32));
EXPECT(!Dart_IsString8(ext32));
EXPECT(!Dart_IsString16(ext32));
+ EXPECT(Dart_IsExternalString(ext32));
}
+UNIT_TEST_CASE(ExternalStringGetPeer) {
+ TestIsolateScope __test_isolate__;
+ Dart_Handle result;
+
+ uint8_t data8[] = { 'o', 'n', 'e', 0xFF };
+ int peer_data = 123;
+ void* peer = NULL;
+
+ // Success.
+ Dart_Handle ext8 = Dart_NewExternalString8(data8, ARRAY_SIZE(data8),
+ &peer_data, NULL);
+ EXPECT_VALID(ext8);
+
+ result = Dart_ExternalStringGetPeer(ext8, &peer);
+ EXPECT_VALID(result);
+ EXPECT_EQ(&peer_data, peer);
+
+ // NULL peer.
+ result = Dart_ExternalStringGetPeer(ext8, NULL);
+ EXPECT(Dart_IsError(result));
+ EXPECT_STREQ("Dart_ExternalStringGetPeer expects argument 'peer' to be "
+ "non-NULL.", Dart_GetError(result));
+
+ // String is not external.
+ peer = NULL;
+ Dart_Handle str8 = Dart_NewString8(data8, ARRAY_SIZE(data8));
+ EXPECT_VALID(str8);
+ result = Dart_ExternalStringGetPeer(str8, &peer);
+ EXPECT(Dart_IsError(result));
+ EXPECT_STREQ("Dart_ExternalStringGetPeer expects argument 'object' to be "
+ "an external String.", Dart_GetError(result));
+ EXPECT(peer == NULL);
+
+ // Not a String.
+ peer = NULL;
+ result = Dart_ExternalStringGetPeer(Dart_True(), &peer);
+ EXPECT(Dart_IsError(result));
+ EXPECT_STREQ("Dart_ExternalStringGetPeer expects argument 'object' to be "
+ "of type String.", Dart_GetError(result));
+ EXPECT(peer == NULL);
+}
+
+
#if defined(TARGET_ARCH_IA32) // only ia32 can run execution tests.
UNIT_TEST_CASE(ListAccess) {
« no previous file with comments | « 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