Upstream version 10.38.222.0
[platform/framework/web/crosswalk.git] / src / v8 / test / compiler-unittests / compiler-unittests.h
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef V8_COMPILER_UNITTESTS_COMPILER_UNITTESTS_H_
6 #define V8_COMPILER_UNITTESTS_COMPILER_UNITTESTS_H_
7
8 #include "include/v8.h"
9 #include "src/zone.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace v8 {
13 namespace internal {
14 namespace compiler {
15
16 // The COMPILER_TEST(Case, Name) macro works just like
17 // TEST(Case, Name), except that the test is disabled
18 // if the platform is not a supported TurboFan target.
19 #if V8_TURBOFAN_TARGET
20 #define COMPILER_TEST(Case, Name) TEST(Case, Name)
21 #else
22 #define COMPILER_TEST(Case, Name) TEST(Case, DISABLED_##Name)
23 #endif
24
25
26 // The COMPILER_TEST_F(Case, Name) macro works just like
27 // TEST_F(Case, Name), except that the test is disabled
28 // if the platform is not a supported TurboFan target.
29 #if V8_TURBOFAN_TARGET
30 #define COMPILER_TEST_F(Case, Name) TEST_F(Case, Name)
31 #else
32 #define COMPILER_TEST_F(Case, Name) TEST_F(Case, DISABLED_##Name)
33 #endif
34
35
36 class CompilerTest : public ::testing::Test {
37  public:
38   CompilerTest();
39   virtual ~CompilerTest();
40
41   Isolate* isolate() const { return reinterpret_cast<Isolate*>(isolate_); }
42   Zone* zone() { return &zone_; }
43
44  protected:
45   static void SetUpTestCase();
46   static void TearDownTestCase();
47
48  private:
49   static v8::Isolate* isolate_;
50   v8::Isolate::Scope isolate_scope_;
51   v8::HandleScope handle_scope_;
52   v8::Context::Scope context_scope_;
53   Zone zone_;
54 };
55
56 }  // namespace compiler
57 }  // namespace internal
58 }  // namespace v8
59
60 #endif  // V8_COMPILER_UNITTESTS_COMPILER_UNITTESTS_H_