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

Side by Side Diff: runtime/vm/unit_test.h

Issue 1965823002: Initial isolate reload support (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 #ifndef VM_UNIT_TEST_H_ 5 #ifndef VM_UNIT_TEST_H_
6 #define VM_UNIT_TEST_H_ 6 #define VM_UNIT_TEST_H_
7 7
8 #include "include/dart_native_api.h" 8 #include "include/dart_native_api.h"
9 9
10 #include "platform/globals.h" 10 #include "platform/globals.h"
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 class TestCase : TestCaseBase { 279 class TestCase : TestCaseBase {
280 public: 280 public:
281 typedef void (RunEntry)(); 281 typedef void (RunEntry)();
282 282
283 TestCase(RunEntry* run, const char* name) : TestCaseBase(name), run_(run) { } 283 TestCase(RunEntry* run, const char* name) : TestCaseBase(name), run_(run) { }
284 284
285 static Dart_Handle LoadTestScript(const char* script, 285 static Dart_Handle LoadTestScript(const char* script,
286 Dart_NativeEntryResolver resolver, 286 Dart_NativeEntryResolver resolver,
287 const char* lib_uri = USER_TEST_URI, 287 const char* lib_uri = USER_TEST_URI,
288 bool finalize = true); 288 bool finalize = true);
289
290 static Dart_Handle LoadCoreTestScript(const char* script, 289 static Dart_Handle LoadCoreTestScript(const char* script,
291 Dart_NativeEntryResolver resolver); 290 Dart_NativeEntryResolver resolver);
292 static Dart_Handle lib(); 291 static Dart_Handle lib();
293 static const char* url() { return USER_TEST_URI; } 292 static const char* url() { return USER_TEST_URI; }
294 static Dart_Isolate CreateTestIsolateFromSnapshot( 293 static Dart_Isolate CreateTestIsolateFromSnapshot(
295 uint8_t* buffer, const char* name = NULL) { 294 uint8_t* buffer, const char* name = NULL) {
296 return CreateIsolate(buffer, name); 295 return CreateIsolate(buffer, name);
297 } 296 }
298 static Dart_Isolate CreateTestIsolate(const char* name = NULL) { 297 static Dart_Isolate CreateTestIsolate(const char* name = NULL) {
299 return CreateIsolate(bin::isolate_snapshot_buffer, name); 298 return CreateIsolate(bin::isolate_snapshot_buffer, name);
300 } 299 }
301 static Dart_Handle library_handler(Dart_LibraryTag tag, 300 static Dart_Handle library_handler(Dart_LibraryTag tag,
302 Dart_Handle library, 301 Dart_Handle library,
303 Dart_Handle url); 302 Dart_Handle url);
304 static char* BigintToHexValue(Dart_CObject* bigint); 303 static char* BigintToHexValue(Dart_CObject* bigint);
305 304
306 virtual void Run(); 305 virtual void Run();
307 306
307 // Sets |script| to be the source used at next reload.
308 static void SetReloadTestScript(const char* script);
309 // Initiates the reload.
310 static Dart_Handle TriggerReload();
311 // Gets the result of a reload.
312 static Dart_Handle GetReloadErrorOrRootLibrary();
313
314 // Helper function which reloads the current isolate using |script|.
315 static Dart_Handle ReloadTestScript(const char* script);
316
308 private: 317 private:
309 static Dart_Isolate CreateIsolate(const uint8_t* buffer, const char* name); 318 static Dart_Isolate CreateIsolate(const uint8_t* buffer, const char* name);
310 319
311 RunEntry* const run_; 320 RunEntry* const run_;
312 }; 321 };
313 322
314 323
315 class TestIsolateScope { 324 class TestIsolateScope {
316 public: 325 public:
317 TestIsolateScope() { 326 TestIsolateScope() {
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 // prefix = "classes" 588 // prefix = "classes"
580 // in = "\"id\":\"classes/46\"" 589 // in = "\"id\":\"classes/46\""
581 // 590 //
582 // Yields: 591 // Yields:
583 // 592 //
584 // out = "\"id\":\"\"" 593 // out = "\"id\":\"\""
585 // 594 //
586 void ElideJSONSubstring(const char* prefix, const char* in, char* out); 595 void ElideJSONSubstring(const char* prefix, const char* in, char* out);
587 596
588 597
598 template<typename T>
599 class SetFlagScope : public ValueObject {
600 public:
601 SetFlagScope(T* flag, T value)
602 : flag_(flag),
603 original_value_(*flag) {
604 *flag_ = value;
605 }
606
607 ~SetFlagScope() {
608 *flag_ = original_value_;
609 }
610
611 private:
612 T* flag_;
613 T original_value_;
614 };
615
589 } // namespace dart 616 } // namespace dart
590 617
591 #endif // VM_UNIT_TEST_H_ 618 #endif // VM_UNIT_TEST_H_
OLDNEW
« runtime/vm/object.cc ('K') | « runtime/vm/thread.cc ('k') | runtime/vm/unit_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698