]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/ntp/tests/sec-2853/sec-2853.c
Upgrade NTP to 4.2.8p4.
[FreeBSD/releng/10.2.git] / contrib / ntp / tests / sec-2853 / sec-2853.c
1 #include <config.h>
2
3 #include <rc_cmdlength.h>
4
5 #include "unity.h"
6
7 void setUp(void);
8 void tearDown(void);
9
10 void test_main( void );
11 int basic_good( void );
12 int embedded_nul( void );
13 int trailing_space( void );
14
15 static int verbose = 1;        // if not 0, also print results if test passed
16 static int exit_on_err = 0;    // if not 0, exit if test failed
17
18
19 void setUp(void)
20 {
21 }
22
23
24 void tearDown(void)
25 {
26 }
27
28
29 /*
30  * Test function calling the remote config buffer checker
31  * http://bugs.ntp.org/show_bug.cgi?id=2853
32  *
33  * size_t remoteconfig_cmdlength(const char *src_buf, const char *src_end)
34  * - trims whitespace & garbage from the right
35  * then looks for only \tSP-\127 starting from the left.
36  * It returns the number of "good" characters it found.
37  */
38
39
40 void test_main( void )
41 {
42         TEST_ASSERT_EQUAL(0, basic_good());
43         TEST_ASSERT_EQUAL(0, embedded_nul());
44         TEST_ASSERT_EQUAL(0, trailing_space());
45 }
46
47
48 int basic_good( void )
49 {
50         const char string[] = "good";
51         const char *EOstring;
52         char *cp;
53         size_t len;
54         int failed;
55
56         EOstring = string + sizeof string;
57
58         len = remoteconfig_cmdlength(string, EOstring);
59
60         failed = ( 4 != len );
61
62         if ( failed || verbose )
63                 printf( "remoteconfig_cmdlength(\"%s\") returned %d, expected %d: %s\n",
64                         string,
65                         len,
66                         4,
67                         failed ? "NO <<" : "yes" );
68
69         return failed ? -1 : 0;
70 }
71
72
73 int embedded_nul( void )
74 {
75         const char string[] = "nul\0 there";
76         const char *EOstring;
77         char *cp;
78         size_t len;
79         int failed;
80
81         EOstring = string + sizeof string;
82
83         len = remoteconfig_cmdlength(string, EOstring);
84
85         failed = ( 3 != len );
86
87         if ( failed || verbose )
88                 printf( "remoteconfig_cmdlength(\"%s\") returned %d, expected %d: %s\n",
89                         string,
90                         len,
91                         3,
92                         failed ? "NO <<" : "yes" );
93
94         return failed ? -1 : 0;
95 }
96
97
98 int trailing_space( void )
99 {
100         const char string[] = "trailing space ";
101         const char *EOstring;
102         char *cp;
103         size_t len;
104         int failed;
105
106         EOstring = string + sizeof string;
107
108         len = remoteconfig_cmdlength(string, EOstring);
109
110         failed = ( 14 != len );
111
112         if ( failed || verbose )
113                 printf( "remoteconfig_cmdlength(\"%s\") returned %d, expected %d: %s\n",
114                         string,
115                         len,
116                         14,
117                         failed ? "NO <<" : "yes" );
118
119         return failed ? -1 : 0;
120 }