1/* $NetBSD: sec-2853.c,v 1.2 2020/05/25 20:47:37 christos Exp $ */ 2 3#include <config.h> 4 5#include <rc_cmdlength.h> 6 7#include "unity.h" 8 9void setUp(void); 10void tearDown(void); 11 12void test_main( void ); 13int basic_good( void ); 14int embedded_nul( void ); 15int trailing_space( void ); 16 17static 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 21void setUp(void) 22{ 23} 24 25 26void 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 42void 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 50int 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 74int 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 98int 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