summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bx/tests/macros_test.cpp
blob: 092bbd61726ceb827104b3ef0c2fd66b8c8943d7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 * Copyright 2010-2017 Branimir Karadzic. All rights reserved.
 * License: https://github.com/bkaradzic/bx#license-bsd-2-clause
 */

#include "test.h"
#include <bx/bx.h>
#include <bx/string.h>

BX_STATIC_ASSERT(false
	|| BX_CRT_BIONIC
	|| BX_CRT_GLIBC
	|| BX_CRT_LIBCXX
	|| BX_CRT_MINGW
	|| BX_CRT_MSVC
	|| BX_CRT_MUSL
	|| BX_CRT_NEWLIB
	);

BX_STATIC_ASSERT(1 == BX_VA_ARGS_COUNT(1) );
BX_STATIC_ASSERT(2 == BX_VA_ARGS_COUNT(1, 2) );
BX_STATIC_ASSERT(3 == BX_VA_ARGS_COUNT(1, 2, 3) );
BX_STATIC_ASSERT(4 == BX_VA_ARGS_COUNT(1, 2, 3, 4) );
BX_STATIC_ASSERT(5 == BX_VA_ARGS_COUNT(1, 2, 3, 4, 5) );
BX_STATIC_ASSERT(6 == BX_VA_ARGS_COUNT(1, 2, 3, 4, 5, 6) );

BX_STATIC_ASSERT(  0 == BX_ALIGN_16(  0) );
BX_STATIC_ASSERT( 16 == BX_ALIGN_16(  1) );
BX_STATIC_ASSERT( 16 == BX_ALIGN_16( 15) );
BX_STATIC_ASSERT( 16 == BX_ALIGN_16( 16) );
BX_STATIC_ASSERT(256 == BX_ALIGN_16(255) );

BX_STATIC_ASSERT(  0 == BX_ALIGN_256(  0) );
BX_STATIC_ASSERT(256 == BX_ALIGN_256(  1) );
BX_STATIC_ASSERT(256 == BX_ALIGN_256( 15) );
BX_STATIC_ASSERT(256 == BX_ALIGN_256(255) );
BX_STATIC_ASSERT(256 == BX_ALIGN_256(256) );
BX_STATIC_ASSERT(256 == BX_ALIGN_256(256) );
BX_STATIC_ASSERT(512 == BX_ALIGN_256(511) );

BX_NO_INLINE void unusedFunction()
{
	CHECK(false);
}

TEST(macros)
{
	uint32_t unused0;
	BX_UNUSED(unused0);

	uint32_t unused1;
	BX_UNUSED(unused0, unused1);

	uint32_t unused2;
	BX_UNUSED(unused0, unused1, unused2, unusedFunction() );

	CHECK_EQUAL(1, BX_VA_ARGS_COUNT(1) );
	CHECK_EQUAL(2, BX_VA_ARGS_COUNT(1, 2) );
	CHECK_EQUAL(3, BX_VA_ARGS_COUNT(1, 2, 3) );
	CHECK_EQUAL(4, BX_VA_ARGS_COUNT(1, 2, 3, 4) );
	CHECK_EQUAL(5, BX_VA_ARGS_COUNT(1, 2, 3, 4, 5) );
	CHECK_EQUAL(6, BX_VA_ARGS_COUNT(1, 2, 3, 4, 5, 6) );

	CHECK_EQUAL(0, bx::strCmp(BX_STRINGIZE(TEST 1234 %^&*), "TEST 1234 %^&*") );
}