run-all-unittests.cc 1.23 KB
Newer Older
Michael Lippautz's avatar
Michael Lippautz committed
1 2 3 4
// Copyright 2020 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.

5 6
#include "include/cppgc/platform.h"
#include "test/unittests/heap/cppgc/test-platform.h"
Michael Lippautz's avatar
Michael Lippautz committed
7 8
#include "testing/gmock/include/gmock/gmock.h"

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
namespace {

class DefaultPlatformEnvironment final : public ::testing::Environment {
 public:
  DefaultPlatformEnvironment() = default;

  void SetUp() override {
    platform_ =
        std::make_unique<cppgc::internal::testing::TestPlatform>(nullptr);
    cppgc::InitializeProcess(platform_->GetPageAllocator());
  }

  void TearDown() override { cppgc::ShutdownProcess(); }

 private:
  std::shared_ptr<cppgc::internal::testing::TestPlatform> platform_;
};

}  // namespace

Michael Lippautz's avatar
Michael Lippautz committed
29 30 31 32 33 34 35 36 37
int main(int argc, char** argv) {
  // Don't catch SEH exceptions and continue as the following tests might hang
  // in an broken environment on windows.
  testing::GTEST_FLAG(catch_exceptions) = false;

  // Most unit-tests are multi-threaded, so enable thread-safe death-tests.
  testing::FLAGS_gtest_death_test_style = "threadsafe";

  testing::InitGoogleMock(&argc, argv);
38
  testing::AddGlobalTestEnvironment(new DefaultPlatformEnvironment);
Michael Lippautz's avatar
Michael Lippautz committed
39 40
  return RUN_ALL_TESTS();
}