71#ifndef _GREENSOCS_GSUTILS_TESTS_TEST_BENCH_H 
   72#define _GREENSOCS_GSUTILS_TESTS_TEST_BENCH_H 
   76#include <gtest/gtest.h> 
   77#include <scp/report.h> 
   82    virtual void test_bench_body() = 0;
 
   85    TestBench(
const sc_core::sc_module_name& 
n): sc_core::sc_module(
n) {}
 
 
   94    void SetUp()
 override { instance = 
new T(); }
 
   95    void TearDown()
 override { 
delete instance; }
 
   96    T* get() { 
return instance; }
 
 
  100#include <sys/types.h> 
  105static inline void run_test_bench(
T* instance)
 
  107    sc_spawn(
sc_bind(&T::test_bench_body, instance));
 
  114static inline void run_test_bench()
 
  116    SCP_ERR(
"test_bench") << 
"Running tests on Windows is not supported.";
 
  122#define TEST_BENCH_NAME(name) TestBench__##name 
  124#define TEST_BENCH(test_bench, name)                                                         \ 
  125    class TEST_BENCH_NAME(name): public test_bench                                           \ 
  128        void test_bench_body() override;                                                     \ 
  130        TEST_BENCH_NAME(name)(): test_bench(#name) {}                                        \ 
  132    testing::Environment* const test_bench_env##name = testing::AddGlobalTestEnvironment(    \ 
  133        new TestBenchEnv<TEST_BENCH_NAME(name)>());                                          \ 
  134    TEST(TEST_BENCH_NAME(name), name)                                                        \ 
  136        run_test_bench<TEST_BENCH_NAME(name)>(                                               \ 
  137            static_cast<TestBenchEnv<TEST_BENCH_NAME(name)>*>(test_bench_env##name)->get()); \ 
  139    void TEST_BENCH_NAME(name)::test_bench_body() 
Definition test-bench.h:89
 
Definition test-bench.h:80