]> git.lizzy.rs Git - nothing.git/blob - test/tokenizer_suite.h
TODO(#456)
[nothing.git] / test / tokenizer_suite.h
1 #ifndef TOKENIZER_SUITE_H_
2 #define TOKENIZER_SUITE_H_
3
4 #include <assert.h>
5 #include <stdio.h>
6 #include <string.h>
7
8 #include "test.h"
9 #include "script/tokenizer.h"
10
11 TEST(tokenizer_number_list_test)
12 {
13     struct Token token = next_token("(1 2 3)");
14     ASSERT_STREQN("(", token.begin, (size_t) (token.end - token.begin));
15
16     token = next_token(token.end);
17     ASSERT_STREQN("1", token.begin, (size_t) (token.end - token.begin));
18
19     token = next_token(token.end);
20     ASSERT_STREQN("2", token.begin, (size_t) (token.end - token.begin));
21
22     token = next_token(token.end);
23     ASSERT_STREQN("3", token.begin, (size_t) (token.end - token.begin));
24
25     token = next_token(token.end);
26     ASSERT_STREQN(")", token.begin, (size_t) (token.end - token.begin));
27
28     return 0;
29 }
30
31 TEST(tokenizer_string_list_test)
32 {
33     struct Token token = next_token("(\"foo\" \"bar\" \"baz\")");
34     ASSERT_STREQN("(", token.begin, (size_t) (token.end - token.begin));
35
36     token = next_token(token.end);
37     ASSERT_STREQN("\"foo\"", token.begin, (size_t) (token.end - token.begin));
38
39     token = next_token(token.end);
40     ASSERT_STREQN("\"bar\"", token.begin, (size_t) (token.end - token.begin));
41
42     token = next_token(token.end);
43     ASSERT_STREQN("\"baz\"", token.begin, (size_t) (token.end - token.begin));
44
45     token = next_token(token.end);
46     ASSERT_STREQN(")", token.begin, (size_t) (token.end - token.begin));
47
48     return 0;
49 }
50
51 TEST_SUITE(tokenizer_suite)
52 {
53     TEST_RUN(tokenizer_number_list_test);
54     TEST_RUN(tokenizer_string_list_test);
55     return 0;
56 }
57
58 #endif  // TOKENIZER_SUITE_H_