Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
gtest_wrapper.h
1// SPDX-FileCopyrightText: © 2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __ZRYTHM_UTILS_GTEST_WRAPPER_H__
5#define __ZRYTHM_UTILS_GTEST_WRAPPER_H__
6
7#include <gtest/gtest.h>
8
9extern bool g_running_in_test;
10
11bool
12get_running_in_test ();
13
14void
15set_running_in_test (bool value);
16
17#define ZRYTHM_TESTING (get_running_in_test ())
18
19#ifndef REQUIRE
20# define REQUIRE(condition) ASSERT_TRUE (condition)
21#endif
22
23#ifndef EXPECT_NONNULL
24# define EXPECT_NONNULL(ptr) EXPECT_NE (ptr, nullptr)
25#endif
26
27#ifndef ASSERT_NONNULL
28# define ASSERT_NONNULL(ptr) ASSERT_NE (ptr, nullptr)
29#endif
30
31#ifndef ASSERT_NULL
32# define ASSERT_NULL(ptr) ASSERT_EQ (ptr, nullptr)
33#endif
34
35#ifndef ASSERT_EMPTY
36# define ASSERT_EMPTY(ptr) ASSERT_TRUE ((ptr).empty ())
37#endif
38
39#ifndef ASSERT_NONEMPTY
40# define ASSERT_NONEMPTY(ptr) ASSERT_TRUE (!(ptr).empty ())
41#endif
42
43#ifndef EXPECT_NONEMPTY
44# define EXPECT_NONEMPTY(ptr) EXPECT_TRUE (!(ptr).empty ())
45#endif
46
47#ifndef ASSERT_SIZE_EQ
48# define ASSERT_SIZE_EQ(ptr, _size) ASSERT_EQ ((ptr).size (), _size)
49#endif
50
51#ifndef EXPECT_SIZE_EQ
52# define EXPECT_SIZE_EQ(ptr, _size) EXPECT_EQ ((ptr).size (), _size)
53#endif
54
55constexpr double POSITION_EQ_EPSILON = 0.0001;
56
57#ifndef ASSERT_POSITION_EQ
58# define ASSERT_POSITION_EQ(a, b) \
59 ASSERT_NEAR ((a).ticks_, (b).ticks_, POSITION_EQ_EPSILON); \
60 ASSERT_TRUE ((a).frames_ == (b).frames_)
61#endif
62
63#ifndef EXPECT_POSITION_EQ
64# define EXPECT_POSITION_EQ(a, b) \
65 EXPECT_NEAR ((a).ticks_, (b).ticks_, POSITION_EQ_EPSILON); \
66 EXPECT_TRUE ((a).frames_ == (b).frames_)
67#endif
68
69#ifndef ASSERT_FLOAT_EQ
70# define ASSERT_FLOAT_EQ(a, b) ASSERT_NEAR (a, b, FLT_EPSILON)
71#endif
72
73#ifndef ASSERT_HAS_VALUE
74# define ASSERT_HAS_VALUE(opt) ASSERT_TRUE ((opt).has_value ())
75#endif
76
77#ifndef EXPECT_HAS_VALUE
78# define EXPECT_HAS_VALUE(opt) EXPECT_TRUE ((opt).has_value ())
79#endif
80
81#ifndef ASSERT_UNREACHABLE
82# define ASSERT_UNREACHABLE() ASSERT_TRUE (false)
83#endif
84
85#ifndef EXPECT_UNREACHABLE
86# define EXPECT_UNREACHABLE() EXPECT_TRUE (false)
87#endif
88
89#endif // __ZRYTHM_UTILS_GTEST_WRAPPER_H__