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

Side by Side Diff: dart/runtime/vm/dart_api_impl_test.cc

Issue 119673004: Version 1.1.0-dev.5.2 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 6 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 | « dart/runtime/vm/dart_api_impl.cc ('k') | dart/runtime/vm/debugger.h » ('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 "bin/builtin.h" 5 #include "bin/builtin.h"
6 #include "include/dart_api.h" 6 #include "include/dart_api.h"
7 #include "include/dart_debugger_api.h" 7 #include "include/dart_debugger_api.h"
8 #include "include/dart_mirrors_api.h" 8 #include "include/dart_mirrors_api.h"
9 #include "include/dart_native_api.h" 9 #include "include/dart_native_api.h"
10 #include "platform/assert.h" 10 #include "platform/assert.h"
(...skipping 1879 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 // Make sure that the value transferred. 1890 // Make sure that the value transferred.
1891 Dart_Handle obj4 = Dart_HandleFromPersistent(obj3); 1891 Dart_Handle obj4 = Dart_HandleFromPersistent(obj3);
1892 EXPECT(Dart_IsBoolean(obj4)); 1892 EXPECT(Dart_IsBoolean(obj4));
1893 bool value = false; 1893 bool value = false;
1894 Dart_Handle result = Dart_BooleanValue(obj4, &value); 1894 Dart_Handle result = Dart_BooleanValue(obj4, &value);
1895 EXPECT_VALID(result); 1895 EXPECT_VALID(result);
1896 EXPECT(value); 1896 EXPECT(value);
1897 } 1897 }
1898 1898
1899 1899
1900 // Test that we can assign to a persistent handle.
1901 UNIT_TEST_CASE(AssignToPersistentHandle) {
1902 const char* kTestString1 = "Test String1";
1903 const char* kTestString2 = "Test String2";
1904 TestIsolateScope __test_isolate__;
1905
1906 Isolate* isolate = Isolate::Current();
1907 EXPECT(isolate != NULL);
1908 ApiState* state = isolate->api_state();
1909 EXPECT(state != NULL);
1910 DARTSCOPE(isolate);
1911 String& str = String::Handle();
1912
1913 // Start with a known persistent handle.
1914 Dart_Handle ref1 = Api::NewHandle(isolate, String::New(kTestString1));
1915 Dart_PersistentHandle obj = Dart_NewPersistentHandle(ref1);
1916 EXPECT(state->IsValidPersistentHandle(obj));
1917 str ^= Api::UnwrapAsPersistentHandle(obj)->raw();
1918 EXPECT(str.Equals(kTestString1));
1919
1920 // Now create another local handle and assign it to the persistent handle.
1921 Dart_Handle ref2 = Api::NewHandle(isolate, String::New(kTestString2));
1922 Dart_SetPersistentHandle(obj, ref2);
1923 str ^= Api::UnwrapAsPersistentHandle(obj)->raw();
1924 EXPECT(str.Equals(kTestString2));
1925
1926 // Now assign Null to the persistent handle and check.
1927 Dart_SetPersistentHandle(obj, Dart_Null());
1928 EXPECT(Dart_IsNull(obj));
1929 }
1930
1931
1900 // Helper class to ensure new gen GC is triggered without any side effects. 1932 // Helper class to ensure new gen GC is triggered without any side effects.
1901 // The normal call to CollectGarbage(Heap::kNew) could potentially trigger 1933 // The normal call to CollectGarbage(Heap::kNew) could potentially trigger
1902 // an old gen collection if there is a promotion failure and this could 1934 // an old gen collection if there is a promotion failure and this could
1903 // perturb the test. 1935 // perturb the test.
1904 class GCTestHelper : public AllStatic { 1936 class GCTestHelper : public AllStatic {
1905 public: 1937 public:
1906 static void CollectNewSpace(Heap::ApiCallbacks api_callbacks) { 1938 static void CollectNewSpace(Heap::ApiCallbacks api_callbacks) {
1907 bool invoke_api_callbacks = (api_callbacks == Heap::kInvokeApiCallbacks); 1939 bool invoke_api_callbacks = (api_callbacks == Heap::kInvokeApiCallbacks);
1908 Isolate::Current()->heap()->new_space_->Scavenge(invoke_api_callbacks); 1940 Isolate::Current()->heap()->new_space_->Scavenge(invoke_api_callbacks);
1909 } 1941 }
(...skipping 5887 matching lines...) Expand 10 before | Expand all | Expand 10 after
7797 NewString("main"), 7829 NewString("main"),
7798 1, 7830 1,
7799 dart_args); 7831 dart_args);
7800 int64_t value = 0; 7832 int64_t value = 0;
7801 result = Dart_IntegerToInt64(result, &value); 7833 result = Dart_IntegerToInt64(result, &value);
7802 EXPECT_VALID(result); 7834 EXPECT_VALID(result);
7803 EXPECT_EQ(6, value); 7835 EXPECT_EQ(6, value);
7804 } 7836 }
7805 7837
7806 } // namespace dart 7838 } // namespace dart
OLDNEW
« no previous file with comments | « dart/runtime/vm/dart_api_impl.cc ('k') | dart/runtime/vm/debugger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698