1 /* $NetBSD: sec-2853.c,v 1.1.1.5 2016/01/08 21:21:33 christos Exp $ */ 2 3 #include <config.h> 4 5 #include <rc_cmdlength.h> 6 7 #include "unity.h" 8 9 void setUp(void); 10 void tearDown(void); 11 12 void test_main( void ); 13 int basic_good( void ); 14 int embedded_nul( void ); 15 int trailing_space( void ); 16 17 static int verbose = 1; // if not 0, also print results if test passed 18 // static int exit_on_err = 0; // if not 0, exit if test failed 19 20 21 void setUp(void) 22 { 23 } 24 25 26 void tearDown(void) 27 { 28 } 29 30 31 /* 32 * Test function calling the remote config buffer checker 33 * http://bugs.ntp.org/show_bug.cgi?id=2853 34 * 35 * size_t remoteconfig_cmdlength(const char *src_buf, const char *src_end) 36 * - trims whitespace & garbage from the right 37 * then looks for only \tSP-\127 starting from the left. 38 * It returns the number of "good" characters it found. 39 */ 40 41 42 void test_main( void ) 43 { 44 TEST_ASSERT_EQUAL(0, basic_good()); 45 TEST_ASSERT_EQUAL(0, embedded_nul()); 46 TEST_ASSERT_EQUAL(0, trailing_space()); 47 } 48 49 50 int basic_good( void ) 51 { 52 const char string[] = "good"; 53 const char *EOstring; 54 size_t len; 55 int failed; 56 57 EOstring = string + sizeof string; 58 59 len = remoteconfig_cmdlength(string, EOstring); 60 61 failed = ( 4 != len ); 62 63 if ( failed || verbose ) 64 printf( "remoteconfig_cmdlength(\"%s\") returned %llu, expected %u: %s\n", 65 string, 66 (unsigned long long)len, 67 4, 68 failed ? "NO <<" : "yes" ); 69 70 return failed ? -1 : 0; 71 } 72 73 74 int embedded_nul( void ) 75 { 76 const char string[] = "nul\0 there"; 77 const char *EOstring; 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 %llu, expected %u: %s\n", 89 string, 90 (unsigned long long)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 size_t len; 103 int failed; 104 105 EOstring = string + sizeof string; 106 107 len = remoteconfig_cmdlength(string, EOstring); 108 109 failed = ( 14 != len ); 110 111 if ( failed || verbose ) 112 printf( "remoteconfig_cmdlength(\"%s\") returned %llu, expected %u: %s\n", 113 string, 114 (unsigned long long)len, 115 14, 116 failed ? "NO <<" : "yes" ); 117 118 return failed ? -1 : 0; 119 } 120