1 /* $NetBSD: t-ntp_scanner.c,v 1.3 2020/05/25 20:47:36 christos Exp $ */
2
3 #include "config.h"
4
5 #include "unity.h"
6
7 #include "ntp_scanner.c"
8 /* ntp_keyword.h declares finite state machine and token text */
9
10 extern void test_keywordIncorrectToken(void);
test_keywordIncorrectToken(void)11 void test_keywordIncorrectToken(void)
12 {
13 const char * temp = keyword(999);
14 //printf("%s\n",temp);
15 TEST_ASSERT_EQUAL_STRING("(keyword #999 not found)",temp);
16 }
17
18 extern void test_keywordServerToken(void);
test_keywordServerToken(void)19 void test_keywordServerToken(void)
20 {
21 const char * temp = keyword(T_Server);
22 //printf("%s",temp); //143 or 401 ?
23 TEST_ASSERT_EQUAL_STRING("server",temp);
24 }
25
26 extern void test_DropUninitializedStack(void);
test_DropUninitializedStack(void)27 void test_DropUninitializedStack(void)
28 {
29 lex_drop_stack();
30 }
31
32 extern void test_IncorrectlyInitializeLexStack(void);
test_IncorrectlyInitializeLexStack(void)33 void test_IncorrectlyInitializeLexStack(void)
34 {
35
36 TEST_ASSERT_FALSE(lex_init_stack(NULL,NULL));
37 lex_drop_stack();
38 }
39
40 extern void test_InitializeLexStack(void);
test_InitializeLexStack(void)41 void test_InitializeLexStack(void)
42 {
43
44 //Some sort of server is required for this to work.
45 char origin[128] ={ "" } ;
46 strcat(origin,"127.0.0.1");
47 TEST_ASSERT_TRUE(lex_init_stack(origin,NULL)); //path, mode -> NULL is ok!
48 lex_drop_stack();
49 }
50
51 extern void test_PopEmptyStack(void);
test_PopEmptyStack(void)52 void test_PopEmptyStack(void)
53 {
54 int temp = lex_pop_file();
55
56 TEST_ASSERT_FALSE(temp);
57 }
58
59 extern void test_IsInteger(void);
test_IsInteger(void)60 void test_IsInteger(void)
61 {
62 int temp = is_integer("123");
63 TEST_ASSERT_TRUE(temp);
64 temp = is_integer("-999");
65 TEST_ASSERT_TRUE(temp);
66 temp = is_integer("0"); //what about -0?
67 TEST_ASSERT_TRUE(temp);
68 temp = is_integer("16.5");
69 TEST_ASSERT_FALSE(temp);
70 temp = is_integer("12ab");
71 TEST_ASSERT_FALSE(temp);
72 temp = is_integer("2147483647");
73 TEST_ASSERT_TRUE(temp);
74 temp = is_integer("2347483647"); //too big for signed int
75 TEST_ASSERT_FALSE(temp);
76 }
77
78 extern void test_IsUint(void);
test_IsUint(void)79 void test_IsUint(void)
80 {
81 int temp;
82 temp = is_u_int("-123");
83 TEST_ASSERT_FALSE(temp);
84 temp = is_u_int("0");
85 TEST_ASSERT_TRUE(temp); //-0 fails btw
86 temp = is_u_int("2347483647"); //fits into u_int
87 TEST_ASSERT_TRUE(temp);
88 temp = is_u_int("112347483647"); //too big even for uint
89 TEST_ASSERT_TRUE(temp);
90 }
91
92 extern void test_IsDouble(void);
test_IsDouble(void)93 void test_IsDouble(void)
94 {
95 int temp;
96 temp = is_double("0");
97 TEST_ASSERT_TRUE(temp);
98 temp = is_double("123");
99 TEST_ASSERT_TRUE(temp);
100 temp = is_double("123.45"); //DOESN'T WORK WITH 123,45, not sure if intented?
101 TEST_ASSERT_TRUE(temp);
102 temp = is_double("-123.45"); //DOESN'T WORK WITH 123,45, not sure if intented?
103 TEST_ASSERT_TRUE(temp);
104 }
105
106 extern void test_SpecialSymbols(void);
test_SpecialSymbols(void)107 void test_SpecialSymbols(void)
108 {
109 int temp ;
110 temp = is_special('a');
111 TEST_ASSERT_FALSE(temp);
112 temp = is_special('?');
113 TEST_ASSERT_FALSE(temp);
114
115 }
116
117 extern void test_EOC(void);
test_EOC(void)118 void test_EOC(void)
119 {
120 int temp;
121 if(old_config_style){
122 temp = is_EOC('\n');
123 TEST_ASSERT_TRUE(temp);
124 }
125 else {
126 temp = is_EOC(';');
127 TEST_ASSERT_TRUE(temp);
128 }
129 temp = is_EOC('A');
130 TEST_ASSERT_FALSE(temp);
131 temp = is_EOC('1');
132 TEST_ASSERT_FALSE(temp);
133 }
134
135