OLD | NEW |
1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dartino 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 #ifndef SRC_SHARED_TEST_CASE_H_ | 5 #ifndef SRC_SHARED_TEST_CASE_H_ |
6 #define SRC_SHARED_TEST_CASE_H_ | 6 #define SRC_SHARED_TEST_CASE_H_ |
7 | 7 |
8 #include "src/shared/globals.h" | 8 #include "src/shared/globals.h" |
9 | 9 |
10 #define TEST_CASE(name) \ | 10 #define TEST_CASE(name) \ |
11 static void Test##name(); \ | 11 static void Test##name(); \ |
12 static const fletch::TestCase kRegister##name(Test##name, #name); \ | 12 static const dartino::TestCase kRegister##name(Test##name, #name); \ |
13 static void Test##name() | 13 static void Test##name() |
14 | 14 |
15 #define TEST_EXPORT(method) \ | 15 #define TEST_EXPORT(method) \ |
16 extern "C" { \ | 16 extern "C" { \ |
17 __attribute__((visibility("default"))) method \ | 17 __attribute__((visibility("default"))) method \ |
18 } | 18 } |
19 | 19 |
20 namespace fletch { | 20 namespace dartino { |
21 | 21 |
22 class TestCase { | 22 class TestCase { |
23 public: | 23 public: |
24 typedef void(RunEntry)(); | 24 typedef void(RunEntry)(); |
25 | 25 |
26 TestCase(RunEntry* run, const char* name); | 26 TestCase(RunEntry* run, const char* name); |
27 virtual ~TestCase() {} | 27 virtual ~TestCase() {} |
28 | 28 |
29 const char* name() const { return name_; } | 29 const char* name() const { return name_; } |
30 | 30 |
31 virtual void Run(); | 31 virtual void Run(); |
32 static void RunAll(); | 32 static void RunAll(); |
33 | 33 |
34 private: | 34 private: |
35 static TestCase* first_; | 35 static TestCase* first_; |
36 static TestCase* current_; | 36 static TestCase* current_; |
37 | 37 |
38 TestCase* next_; | 38 TestCase* next_; |
39 RunEntry* const run_; | 39 RunEntry* const run_; |
40 const char* name_; | 40 const char* name_; |
41 | 41 |
42 DISALLOW_COPY_AND_ASSIGN(TestCase); | 42 DISALLOW_COPY_AND_ASSIGN(TestCase); |
43 }; | 43 }; |
44 | 44 |
45 } // namespace fletch | 45 } // namespace dartino |
46 | 46 |
47 #endif // SRC_SHARED_TEST_CASE_H_ | 47 #endif // SRC_SHARED_TEST_CASE_H_ |
OLD | NEW |