changeset 2472:7138df30b3be

Add testing of ARGV_INT and ARGV_LONG
author stever <stever>
date Sat, 03 Jan 2009 20:59:13 +0000
parents 8105456c3289
children a175020f8b47
files testdir/run_test_arg_parse.sh testdir/test_arg_parse.c
diffstat 2 files changed, 42 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/testdir/run_test_arg_parse.sh
+++ b/testdir/run_test_arg_parse.sh
@@ -6,7 +6,9 @@
 
 check() { #args expected
     out=`./test_arg_parse $1`
-    echo $out | grep "$2" >/dev/null && return
+    leftovers=`echo $out | sed "/^$2\$/d"`
+    test -z "$leftovers" && return
+
     echo "Args    : $1"
     echo "Output  : $out"
     echo "Expected: $2"
@@ -14,11 +16,29 @@
 }
 
 
-check ''                   'const_a:0 const_b:0'
-check '-const_a'           'const_a:1 const_b:0'
-check '-const_b'           'const_a:0 const_b:1'
-check '-const_a -const_b'  'const_a:1 const_b:1'
-check '-const_b -const_a'  'const_a:1 const_b:1'
+check ''                   'const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:0'
+check '-const_a'           'const_a:1 const_b:0 int_a:0 int_b:0 long_a:0 long_b:0'
+check '-const_b'           'const_a:0 const_b:1 int_a:0 int_b:0 long_a:0 long_b:0'
+check '-const_a -const_b'  'const_a:1 const_b:1 int_a:0 int_b:0 long_a:0 long_b:0'
+check '-const_b -const_a'  'const_a:1 const_b:1 int_a:0 int_b:0 long_a:0 long_b:0'
+
+check '-int_a 33'          'const_a:0 const_b:0 int_a:33 int_b:0 long_a:0 long_b:0'
+check '-int_a -3'          'const_a:0 const_b:0 int_a:-3 int_b:0 long_a:0 long_b:0'
+check '-int_b 22'          'const_a:0 const_b:0 int_a:0 int_b:22 long_a:0 long_b:0'
+check '-int_b -2'          'const_a:0 const_b:0 int_a:0 int_b:-2 long_a:0 long_b:0'
+check '-int_a -1 -int_b 3' 'const_a:0 const_b:0 int_a:-1 int_b:3 long_a:0 long_b:0'
+check '-int_b -1 -int_a 3' 'const_a:0 const_b:0 int_a:3 int_b:-1 long_a:0 long_b:0'
+
+check '-long_a 12'            'const_a:0 const_b:0 int_a:0 int_b:0 long_a:12 long_b:0'
+check '-long_a -99'           'const_a:0 const_b:0 int_a:0 int_b:0 long_a:-99 long_b:0'
+check '-long_b -12'           'const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:-12'
+check '-long_b 99'            'const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:99'
+check '-long_a 3 -long_b -9'  'const_a:0 const_b:0 int_a:0 int_b:0 long_a:3 long_b:-9'
+check '-long_b 3 -long_a -9'  'const_a:0 const_b:0 int_a:0 int_b:0 long_a:-9 long_b:3'
+
+check '-long_a -99 -int_b 3 -const_b'  'const_a:0 const_b:1 int_a:0 int_b:3 long_a:-99 long_b:0'
+
+check '-nonsense'          'const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:0'
 
 test $fail = yes && exit 1
 exit 0
--- a/testdir/test_arg_parse.c
+++ b/testdir/test_arg_parse.c
@@ -4,11 +4,24 @@
 int const_a = 0;
 int const_b = 0;
 
+int int_a = 0;
+int int_b = 0;
+
+long long_a = 0;
+long long_b = 0;
+
 
 ArgvInfo argTable[] = 
 {
     {"-const_a", ARGV_CONSTANT, (char *)1, (char *)&const_a, "const_a option"},
     {"-const_b", ARGV_CONSTANT, (char *)1, (char *)&const_b, "const_b option"},
+
+    {"-int_a", ARGV_INT, (char *)1, (char *)&int_a, "int_a option"},
+    {"-int_b", ARGV_INT, (char *)1, (char *)&int_b, "int_b option"},
+
+    {"-long_a", ARGV_LONG, (char *)1, (char *)&long_a, "long_a option"},
+    {"-long_b", ARGV_LONG, (char *)1, (char *)&long_b, "long_b option"},
+
     {NULL, ARGV_END, NULL, NULL, NULL}
 };
 
@@ -18,6 +31,8 @@
 {
    ParseArgv(&argc, argv, argTable, 0);
 
-   printf("const_a:%d const_b:%d\n", const_a, const_b);
+   printf( "const_a:%d const_b:%d int_a:%d int_b:%d long_a:%ld long_b:%ld\n", 
+	   const_a, const_b, int_a, int_b, long_a, long_b );
+
    return(0);
 }