3
* Luabins Lua-less write API
4
* See copyright notice in luabins.h
7
/* Note this file intentionally does not have include guards */
10
* Depends on following symbols:
19
* -- RUN_GENERATED_TESTS
22
TEST (TEST_NAME(TupleSize),
27
unsigned char tuple_size = 0xAB;
29
CALL_NAME(TupleSize)(BUFFER_NAME, tuple_size);
30
CHECK_BUFFER(BUFFER_NAME, "\xAB", 1);
36
/******************************************************************************/
38
TEST (TEST_NAME(TableHeader),
43
int array_size = 0xAB;
46
CALL_NAME(TableHeader)(BUFFER_NAME, array_size, hash_size);
49
"T" "\xAB\x00\x00\x00" "\xCD\x00\x00\x00",
57
/******************************************************************************/
64
CALL_NAME(Nil)(BUFFER_NAME);
65
CHECK_BUFFER(BUFFER_NAME, "-", 1);
71
/******************************************************************************/
73
TEST (TEST_NAME(Boolean),
78
CALL_NAME(Boolean)(BUFFER_NAME, 1);
79
CHECK_BUFFER(BUFFER_NAME, "1", 1);
81
CALL_NAME(Boolean)(BUFFER_NAME, 0);
82
CHECK_BUFFER(BUFFER_NAME, "10", 1 + 1);
88
/******************************************************************************/
90
TEST (TEST_NAME(Number),
95
/* Note number is a double */
96
CALL_NAME(Number)(BUFFER_NAME, 1.0);
97
CHECK_BUFFER(BUFFER_NAME, "N" "\x00\x00\x00\x00\x00\x00\xF0\x3F", 1 + 8);
103
/******************************************************************************/
105
TEST (TEST_NAME(Integer),
110
/* Note integer is alsow written as a double */
111
CALL_NAME(Integer)(BUFFER_NAME, 1);
112
CHECK_BUFFER(BUFFER_NAME, "N" "\x00\x00\x00\x00\x00\x00\xF0\x3F", 1 + 8);
118
/******************************************************************************/
120
TEST (TEST_NAME(StringEmpty),
125
CALL_NAME(String)(BUFFER_NAME, "", 0);
126
CHECK_BUFFER(BUFFER_NAME, "S" "\x00\x00\x00\x00", 1 + 4);
132
TEST (TEST_NAME(StringSimple),
137
CALL_NAME(String)(BUFFER_NAME, "Luabins", 7);
140
"S" "\x07\x00\x00\x00" "Luabins",
148
TEST (TEST_NAME(StringEmbeddedZero),
153
CALL_NAME(String)(BUFFER_NAME, "Embedded\0Zero", 13);
156
"S" "\x0D\x00\x00\x00" "Embedded\0Zero",
164
/******************************************************************************/
166
#define RUN_GENERATED_TESTS \
167
TEST_NAME(TupleSize)(); \
168
TEST_NAME(TableHeader)(); \
170
TEST_NAME(Boolean)(); \
171
TEST_NAME(Number)(); \
172
TEST_NAME(Integer)(); \
173
TEST_NAME(StringEmpty)(); \
174
TEST_NAME(StringSimple)(); \
175
TEST_NAME(StringEmbeddedZero)();