diff options
Diffstat (limited to 'deps/v8/src/test/test-utils.h')
-rw-r--r-- | deps/v8/src/test/test-utils.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/deps/v8/src/test/test-utils.h b/deps/v8/src/test/test-utils.h new file mode 100644 index 0000000000..05d1ea641d --- /dev/null +++ b/deps/v8/src/test/test-utils.h @@ -0,0 +1,86 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_TEST_TEST_UTILS_H_ +#define V8_TEST_TEST_UTILS_H_ + +#include "include/v8.h" +#include "src/base/macros.h" +#include "src/zone.h" +#include "testing/gtest-support.h" + +namespace v8 { + +class TestWithIsolate : public ::testing::Test { + public: + TestWithIsolate(); + virtual ~TestWithIsolate(); + + Isolate* isolate() const { return isolate_; } + + static void SetUpTestCase(); + static void TearDownTestCase(); + + private: + static Isolate* isolate_; + Isolate::Scope isolate_scope_; + HandleScope handle_scope_; + + DISALLOW_COPY_AND_ASSIGN(TestWithIsolate); +}; + + +class TestWithContext : public virtual TestWithIsolate { + public: + TestWithContext(); + virtual ~TestWithContext(); + + const Local<Context>& context() const { return context_; } + + private: + Local<Context> context_; + Context::Scope context_scope_; + + DISALLOW_COPY_AND_ASSIGN(TestWithContext); +}; + + +namespace internal { + +// Forward declarations. +class Factory; + + +class TestWithIsolate : public virtual ::v8::TestWithIsolate { + public: + TestWithIsolate() {} + virtual ~TestWithIsolate(); + + Factory* factory() const; + Isolate* isolate() const { + return reinterpret_cast<Isolate*>(::v8::TestWithIsolate::isolate()); + } + + private: + DISALLOW_COPY_AND_ASSIGN(TestWithIsolate); +}; + + +class TestWithZone : public TestWithIsolate { + public: + TestWithZone() : zone_(isolate()) {} + virtual ~TestWithZone(); + + Zone* zone() { return &zone_; } + + private: + Zone zone_; + + DISALLOW_COPY_AND_ASSIGN(TestWithZone); +}; + +} // namespace internal +} // namespace v8 + +#endif // V8_TEST_TEST_UTILS_H_ |