| OLD | NEW |
| 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_api.h" | 8 #include "include/dart_api.h" |
| 9 | 9 |
| 10 #include "vm/ast.h" | 10 #include "vm/ast.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 static const dart::TestCase kRegister##name(Dart_Test##name, #name); \ | 24 static const dart::TestCase kRegister##name(Dart_Test##name, #name); \ |
| 25 void Dart_Test##name() | 25 void Dart_Test##name() |
| 26 | 26 |
| 27 // The TEST_CASE macro is used for tests that need an isolate and zone | 27 // The TEST_CASE macro is used for tests that need an isolate and zone |
| 28 // in order to test its functionality. | 28 // in order to test its functionality. |
| 29 #define TEST_CASE(name) \ | 29 #define TEST_CASE(name) \ |
| 30 static void Dart_TestHelper##name(); \ | 30 static void Dart_TestHelper##name(); \ |
| 31 UNIT_TEST_CASE(name) \ | 31 UNIT_TEST_CASE(name) \ |
| 32 { \ | 32 { \ |
| 33 TestIsolateScope __test_isolate__; \ | 33 TestIsolateScope __test_isolate__; \ |
| 34 Zone __zone__; \ | 34 Zone __zone__(__test_isolate__.isolate()); \ |
| 35 HandleScope __hs__; \ | 35 HandleScope __hs__(__test_isolate__.isolate()); \ |
| 36 Dart_TestHelper##name(); \ | 36 Dart_TestHelper##name(); \ |
| 37 } \ | 37 } \ |
| 38 static void Dart_TestHelper##name() | 38 static void Dart_TestHelper##name() |
| 39 | 39 |
| 40 // The ASSEMBLER_TEST_GENERATE macro is used to generate a unit test | 40 // The ASSEMBLER_TEST_GENERATE macro is used to generate a unit test |
| 41 // for the assembler. | 41 // for the assembler. |
| 42 #define ASSEMBLER_TEST_GENERATE(name, assembler) \ | 42 #define ASSEMBLER_TEST_GENERATE(name, assembler) \ |
| 43 static void AssemblerTestGenerate##name(Assembler* assembler) | 43 static void AssemblerTestGenerate##name(Assembler* assembler) |
| 44 | 44 |
| 45 // The ASSEMBLER_TEST_RUN macro is used to execute the assembler unit | 45 // The ASSEMBLER_TEST_RUN macro is used to execute the assembler unit |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 isolate_ = reinterpret_cast<Isolate*>(Dart_CreateIsolate(NULL, NULL)); | 176 isolate_ = reinterpret_cast<Isolate*>(Dart_CreateIsolate(NULL, NULL)); |
| 177 EXPECT(isolate_ != NULL); | 177 EXPECT(isolate_ != NULL); |
| 178 Dart_EnterScope(); // Create a Dart API scope for unit tests. | 178 Dart_EnterScope(); // Create a Dart API scope for unit tests. |
| 179 } | 179 } |
| 180 ~TestIsolateScope() { | 180 ~TestIsolateScope() { |
| 181 Dart_ExitScope(); // Exit the Dart API scope created for unit tests. | 181 Dart_ExitScope(); // Exit the Dart API scope created for unit tests. |
| 182 ASSERT(isolate_ == Isolate::Current()); | 182 ASSERT(isolate_ == Isolate::Current()); |
| 183 Dart_ShutdownIsolate(); | 183 Dart_ShutdownIsolate(); |
| 184 isolate_ = NULL; | 184 isolate_ = NULL; |
| 185 } | 185 } |
| 186 Isolate* isolate() const { return isolate_; } |
| 186 | 187 |
| 187 private: | 188 private: |
| 188 Isolate* isolate_; | 189 Isolate* isolate_; |
| 189 | 190 |
| 190 DISALLOW_COPY_AND_ASSIGN(TestIsolateScope); | 191 DISALLOW_COPY_AND_ASSIGN(TestIsolateScope); |
| 191 }; | 192 }; |
| 192 | 193 |
| 193 | 194 |
| 194 class AssemblerTest { | 195 class AssemblerTest { |
| 195 public: | 196 public: |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 | 254 |
| 254 #define EXPECT_VALID(handle) \ | 255 #define EXPECT_VALID(handle) \ |
| 255 if (Dart_IsError((handle))) { \ | 256 if (Dart_IsError((handle))) { \ |
| 256 dart::Expect(__FILE__, __LINE__).Fail("invalid handle '%s':\n '%s'\n", \ | 257 dart::Expect(__FILE__, __LINE__).Fail("invalid handle '%s':\n '%s'\n", \ |
| 257 #handle, Dart_GetError(handle)); \ | 258 #handle, Dart_GetError(handle)); \ |
| 258 } | 259 } |
| 259 | 260 |
| 260 } // namespace dart | 261 } // namespace dart |
| 261 | 262 |
| 262 #endif // VM_UNIT_TEST_H_ | 263 #endif // VM_UNIT_TEST_H_ |
| OLD | NEW |