Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
test.qh File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _TEST_ASSERT(statement)
#define ADD_FAILURE(msg)
 Add a failure, but continue.
#define ASSERT_EQ(expected, actual)
#define ASSERT_FALSE(condition)
#define ASSERT_GE(val1, val2)
#define ASSERT_GT(val1, val2)
#define ASSERT_LE(val1, val2)
#define ASSERT_LT(val1, val2)
#define ASSERT_NE(val1, val2)
#define ASSERT_NO_FATAL_FAILURE(statement)
#define ASSERT_TRUE(condition)
#define EXPECT_EQ(expected_, actual_)
#define EXPECT_FALSE(condition)
#define EXPECT_GE(val1, val2)
#define EXPECT_GT(val1, val2)
#define EXPECT_LE(val1, val2)
#define EXPECT_LT(val1, val2)
#define EXPECT_NE(val1, val2)
#define EXPECT_NO_FATAL_FAILURE(statement)
#define EXPECT_NO_FATAL_FAILURE_(statement, then)
#define EXPECT_NO_FATAL_FAILURE__(statement, then)
#define EXPECT_TRUE(condition)
#define FAIL(msg)
 Add a failure and return.
#define HasFatalFailure()
#define SUCCEED()
 Must be present at the end of a test.
#define TEST(suite, test)
 Use UpperCamelCase for suite and test only.

Functions

bool RUN_ALL_TESTS ()
bool TEST_Run (string test)

Variables

int TEST_failed
int TEST_fatal
bool TEST_ok

Macro Definition Documentation

◆ _TEST_ASSERT

#define _TEST_ASSERT ( statement)
Value:
MACRO_BEGIN \
LAMBDA(statement); \
++TEST_fatal; return; \
#define MACRO_END
Definition macro.qh:7
int TEST_fatal
Definition test.qh:73

Definition at line 77 of file test.qh.

77#define _TEST_ASSERT(statement) \
78 MACRO_BEGIN \
79 LAMBDA(statement); \
80 ++TEST_fatal; return; \
81 MACRO_END

◆ ADD_FAILURE

#define ADD_FAILURE ( msg)
Value:
LOG_WARN(msg); \
#define MACRO_BEGIN
Definition macro.qh:6
int TEST_failed
Definition test.qh:75

Add a failure, but continue.

Definition at line 18 of file test.qh.

18#define ADD_FAILURE(msg) MACRO_BEGIN \
19 ++TEST_failed; \
20 LOG_WARN(msg); \
21MACRO_END

◆ ASSERT_EQ

#define ASSERT_EQ ( expected,
actual )
Value:
_TEST_ASSERT(EXPECT_EQ(expected, actual))
#define EXPECT_EQ(expected_, actual_)
Definition test.qh:32
#define _TEST_ASSERT(statement)
Definition test.qh:77

Definition at line 44 of file test.qh.

◆ ASSERT_FALSE

#define ASSERT_FALSE ( condition)
Value:
ASSERT_EQ(false, condition)
#define ASSERT_EQ(expected, actual)
Definition test.qh:44

Definition at line 50 of file test.qh.

◆ ASSERT_GE

#define ASSERT_GE ( val1,
val2 )
Value:
_TEST_ASSERT(EXPECT_GE(val1, val2))
#define EXPECT_GE(val1, val2)
Definition test.qh:64

Definition at line 65 of file test.qh.

◆ ASSERT_GT

#define ASSERT_GT ( val1,
val2 )
Value:
_TEST_ASSERT(EXPECT_GT(val1, val2))
#define EXPECT_GT(val1, val2)
Definition test.qh:61

Definition at line 62 of file test.qh.

◆ ASSERT_LE

#define ASSERT_LE ( val1,
val2 )
Value:
_TEST_ASSERT(EXPECT_LE(val1, val2))
#define EXPECT_LE(val1, val2)
Definition test.qh:58

Definition at line 59 of file test.qh.

◆ ASSERT_LT

#define ASSERT_LT ( val1,
val2 )
Value:
_TEST_ASSERT(EXPECT_LT(val1, val2))
#define EXPECT_LT(val1, val2)
Definition test.qh:55

Definition at line 56 of file test.qh.

◆ ASSERT_NE

#define ASSERT_NE ( val1,
val2 )
Value:
_TEST_ASSERT(EXPECT_NE(val1, val2))
#define EXPECT_NE(val1, val2)
Definition test.qh:52

Definition at line 53 of file test.qh.

◆ ASSERT_NO_FATAL_FAILURE

#define ASSERT_NO_FATAL_FAILURE ( statement)
Value:
EXPECT_NO_FATAL_FAILURE_(statement, { ++TEST_fatal; return; })
#define EXPECT_NO_FATAL_FAILURE_(statement, then)
Definition test.qh:91

Definition at line 68 of file test.qh.

◆ ASSERT_TRUE

#define ASSERT_TRUE ( condition)
Value:
ASSERT_EQ(true, condition)

Definition at line 47 of file test.qh.

◆ EXPECT_EQ

#define EXPECT_EQ ( expected_,
actual_ )
Value:
MACRO_BEGIN \
int expected = expected_; \
int actual = actual_; \
if ((expected) != (actual)) { \
ADD_FAILURE(sprintf( \
"Value of: " #actual_ "\n" \
" Actual: %d\n" \
"Expected: %d\n", \
actual, expected \
)); \
} \

Definition at line 32 of file test.qh.

32#define EXPECT_EQ(expected_, actual_) MACRO_BEGIN \
33 int expected = expected_; \
34 int actual = actual_; \
35 if ((expected) != (actual)) { \
36 ADD_FAILURE(sprintf( \
37 "Value of: " #actual_ "\n" \
38 " Actual: %d\n" \
39 "Expected: %d\n", \
40 actual, expected \
41 )); \
42 } \
43MACRO_END

Referenced by TEST().

◆ EXPECT_FALSE

#define EXPECT_FALSE ( condition)
Value:
EXPECT_EQ(false, condition)

Definition at line 49 of file test.qh.

◆ EXPECT_GE

#define EXPECT_GE ( val1,
val2 )
Value:
EXPECT_TRUE((val1) >= (val2))
#define EXPECT_TRUE(condition)
Definition test.qh:46

Definition at line 64 of file test.qh.

◆ EXPECT_GT

#define EXPECT_GT ( val1,
val2 )
Value:
EXPECT_TRUE((val1) > (val2))

Definition at line 61 of file test.qh.

◆ EXPECT_LE

#define EXPECT_LE ( val1,
val2 )
Value:
EXPECT_TRUE((val1) <= (val2))

Definition at line 58 of file test.qh.

◆ EXPECT_LT

#define EXPECT_LT ( val1,
val2 )
Value:
EXPECT_TRUE((val1) < (val2))

Definition at line 55 of file test.qh.

Referenced by TEST().

◆ EXPECT_NE

#define EXPECT_NE ( val1,
val2 )
Value:
EXPECT_TRUE((val1) != (val2))

Definition at line 52 of file test.qh.

Referenced by MX_Messages_(), MX_Sync_(), PlayerStats_PlayerBasic_Handler(), TEST(), and test_weapons_hurt().

◆ EXPECT_NO_FATAL_FAILURE

#define EXPECT_NO_FATAL_FAILURE ( statement)
Value:
EXPECT_NO_FATAL_FAILURE_(statement, { })

Definition at line 67 of file test.qh.

◆ EXPECT_NO_FATAL_FAILURE_

#define EXPECT_NO_FATAL_FAILURE_ ( statement,
then )
Value:
LOG_WARNF( \
" Actual: %d fatal failures\n" \
"Expected: no fatal failures\n", \
TEST_fatal - TEST_prevfatal \
); \
LAMBDA(then); \
})
#define EXPECT_NO_FATAL_FAILURE__(statement, then)
Definition test.qh:83

Definition at line 91 of file test.qh.

91#define EXPECT_NO_FATAL_FAILURE_(statement, then) \
92 EXPECT_NO_FATAL_FAILURE__(statement, { \
93 LOG_WARNF( \
94 " Actual: %d fatal failures\n" \
95 "Expected: no fatal failures\n", \
96 TEST_fatal - TEST_prevfatal \
97 ); \
98 LAMBDA(then); \
99 })

◆ EXPECT_NO_FATAL_FAILURE__

#define EXPECT_NO_FATAL_FAILURE__ ( statement,
then )
Value:
MACRO_BEGIN \
int TEST_prevfatal = TEST_fatal; \
LAMBDA(statement); \
if (TEST_fatal != TEST_prevfatal) \
LAMBDA(then); \

Definition at line 83 of file test.qh.

83#define EXPECT_NO_FATAL_FAILURE__(statement, then) \
84 MACRO_BEGIN \
85 int TEST_prevfatal = TEST_fatal; \
86 LAMBDA(statement); \
87 if (TEST_fatal != TEST_prevfatal) \
88 LAMBDA(then); \
89 MACRO_END

◆ EXPECT_TRUE

#define EXPECT_TRUE ( condition)
Value:
EXPECT_EQ(true, condition)

Definition at line 46 of file test.qh.

Referenced by TEST().

◆ FAIL

#define FAIL ( msg)
Value:
#define ADD_FAILURE(msg)
Add a failure, but continue.
Definition test.qh:18

Add a failure and return.

Definition at line 24 of file test.qh.

◆ HasFatalFailure

#define HasFatalFailure ( )
Value:

Definition at line 26 of file test.qh.

◆ SUCCEED

#define SUCCEED ( )
Value:
(TEST_ok = true)
bool TEST_ok
Definition test.qh:74

Must be present at the end of a test.

Definition at line 15 of file test.qh.

Referenced by TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ TEST

#define TEST ( suite,
test )
Value:
void _TEST_##suite##_##test(); \
if (!TEST_Run(#suite "_" #test)) ++f; \
return = f; \
} \
void _TEST_##suite##_##test()
#define ACCUMULATE
Definition _all.inc:31
int TEST_RunAll_accumulated(int init)
bool TEST_Run(string s)
Definition test.qc:19

Use UpperCamelCase for suite and test only.

Definition at line 6 of file test.qh.

6#define TEST(suite, test) \
7 void _TEST_##suite##_##test(); \
8 ACCUMULATE int TEST_RunAll_accumulated(int f) { \
9 if (!TEST_Run(#suite "_" #test)) ++f; \
10 return = f; \
11 } \
12 void _TEST_##suite##_##test()

Function Documentation

◆ RUN_ALL_TESTS()

bool RUN_ALL_TESTS ( )

Definition at line 4 of file test.qc.

5{
7 if (f)
8 {
9 LOG_HELPF("%d tests failed", f);
10 return true;
11 }
12 else
13 {
14 LOG_HELP("All tests OK");
15 return false;
16 }
17}
#define LOG_HELP(...)
Definition log.qh:85
#define LOG_HELPF(...)
Definition log.qh:86

References LOG_HELP, LOG_HELPF, and TEST_RunAll_accumulated().

Referenced by GenericCommand_runtest().

◆ TEST_Run()

bool TEST_Run ( string test)

Definition at line 19 of file test.qc.

20{
21 LOG_HELPF("%s: testing...", s);
22 TEST_failed = 0;
23 TEST_fatal = 0;
24 TEST_ok = false;
25 string fn = strcat("_TEST_", s);
26 if (isfunction(fn)) callfunction(fn);
27 if (TEST_failed > 0)
28 {
29 LOG_HELPF("%s: %d items failed.", s, TEST_failed);
30 return false;
31 }
32 else if (!TEST_ok)
33 {
34 LOG_HELPF("%s: did not complete.", s);
35 return false;
36 }
37 return true;
38}
void callfunction(...)
float isfunction(string function_name)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))

References callfunction(), isfunction(), LOG_HELPF, strcat(), TEST_failed, TEST_fatal, and TEST_ok.

Referenced by GenericCommand_runtest().

Variable Documentation

◆ TEST_failed

int TEST_failed

Definition at line 75 of file test.qh.

Referenced by TEST_Run().

◆ TEST_fatal

int TEST_fatal

Definition at line 73 of file test.qh.

Referenced by TEST_Run().

◆ TEST_ok

bool TEST_ok

Definition at line 74 of file test.qh.

Referenced by TEST_Run().