From 03aee9197d68e9dd10440937fa209b35a20dafa2 Mon Sep 17 00:00:00 2001 From: Daniel Thayer Date: Thu, 24 May 2012 16:33:19 -0500 Subject: [PATCH] Add more tests for previously-untested BIFs --- testing/btest/Baseline/bifs.all_set/out | 3 +++ testing/btest/Baseline/bifs.any_set/out | 3 +++ testing/btest/Baseline/bifs.clear_table/out | 2 ++ testing/btest/Baseline/bifs.exit/out | 1 + testing/btest/Baseline/bifs.getsetenv/out | 3 +++ testing/btest/Baseline/bifs.length/out | 6 +++++ testing/btest/Baseline/bifs.md5/output | 2 ++ testing/btest/Baseline/bifs.rand/out | 6 +++++ testing/btest/Baseline/bifs.resize/out | 4 ++++ testing/btest/Baseline/bifs.sort/out | 2 ++ testing/btest/Baseline/bifs.system/out | 1 + testing/btest/Baseline/bifs.system_env/out | 1 + testing/btest/Baseline/bifs.val_size/out | 2 ++ testing/btest/bifs/all_set.bro | 15 ++++++++++++ testing/btest/bifs/any_set.bro | 15 ++++++++++++ testing/btest/bifs/clear_table.bro | 14 +++++++++++ testing/btest/bifs/exit.bro | 9 +++++++ testing/btest/bifs/getsetenv.bro | 20 ++++++++++++++++ testing/btest/bifs/length.bro | 22 +++++++++++++++++ testing/btest/bifs/md5.test | 3 +++ testing/btest/bifs/order.bro | 18 ++++++++++++++ testing/btest/bifs/piped_exec.bro | 6 +++-- testing/btest/bifs/rand.bro | 24 +++++++++++++++++++ testing/btest/bifs/resize.bro | 26 +++++++++++++++++++++ testing/btest/bifs/sort.bro | 18 ++++++++++++++ testing/btest/bifs/system.bro | 15 ++++++++++++ testing/btest/bifs/system_env.bro | 21 +++++++++++++++++ testing/btest/bifs/val_size.bro | 12 ++++++++++ 28 files changed, 272 insertions(+), 2 deletions(-) create mode 100644 testing/btest/Baseline/bifs.all_set/out create mode 100644 testing/btest/Baseline/bifs.any_set/out create mode 100644 testing/btest/Baseline/bifs.clear_table/out create mode 100644 testing/btest/Baseline/bifs.exit/out create mode 100644 testing/btest/Baseline/bifs.getsetenv/out create mode 100644 testing/btest/Baseline/bifs.length/out create mode 100644 testing/btest/Baseline/bifs.rand/out create mode 100644 testing/btest/Baseline/bifs.resize/out create mode 100644 testing/btest/Baseline/bifs.sort/out create mode 100644 testing/btest/Baseline/bifs.system/out create mode 100644 testing/btest/Baseline/bifs.system_env/out create mode 100644 testing/btest/Baseline/bifs.val_size/out create mode 100644 testing/btest/bifs/all_set.bro create mode 100644 testing/btest/bifs/any_set.bro create mode 100644 testing/btest/bifs/clear_table.bro create mode 100644 testing/btest/bifs/exit.bro create mode 100644 testing/btest/bifs/getsetenv.bro create mode 100644 testing/btest/bifs/length.bro create mode 100644 testing/btest/bifs/order.bro create mode 100644 testing/btest/bifs/rand.bro create mode 100644 testing/btest/bifs/resize.bro create mode 100644 testing/btest/bifs/sort.bro create mode 100644 testing/btest/bifs/system.bro create mode 100644 testing/btest/bifs/system_env.bro create mode 100644 testing/btest/bifs/val_size.bro diff --git a/testing/btest/Baseline/bifs.all_set/out b/testing/btest/Baseline/bifs.all_set/out new file mode 100644 index 0000000000..ed4964b655 --- /dev/null +++ b/testing/btest/Baseline/bifs.all_set/out @@ -0,0 +1,3 @@ +F +F +T diff --git a/testing/btest/Baseline/bifs.any_set/out b/testing/btest/Baseline/bifs.any_set/out new file mode 100644 index 0000000000..3ea3c39b0d --- /dev/null +++ b/testing/btest/Baseline/bifs.any_set/out @@ -0,0 +1,3 @@ +T +F +F diff --git a/testing/btest/Baseline/bifs.clear_table/out b/testing/btest/Baseline/bifs.clear_table/out new file mode 100644 index 0000000000..b261da18d5 --- /dev/null +++ b/testing/btest/Baseline/bifs.clear_table/out @@ -0,0 +1,2 @@ +1 +0 diff --git a/testing/btest/Baseline/bifs.exit/out b/testing/btest/Baseline/bifs.exit/out new file mode 100644 index 0000000000..ce01362503 --- /dev/null +++ b/testing/btest/Baseline/bifs.exit/out @@ -0,0 +1 @@ +hello diff --git a/testing/btest/Baseline/bifs.getsetenv/out b/testing/btest/Baseline/bifs.getsetenv/out new file mode 100644 index 0000000000..0eabe36713 --- /dev/null +++ b/testing/btest/Baseline/bifs.getsetenv/out @@ -0,0 +1,3 @@ +OK +OK +OK diff --git a/testing/btest/Baseline/bifs.length/out b/testing/btest/Baseline/bifs.length/out new file mode 100644 index 0000000000..ad43182650 --- /dev/null +++ b/testing/btest/Baseline/bifs.length/out @@ -0,0 +1,6 @@ +1 +4 +2 +0 +0 +0 diff --git a/testing/btest/Baseline/bifs.md5/output b/testing/btest/Baseline/bifs.md5/output index 71c0fbfcb8..a560286854 100644 --- a/testing/btest/Baseline/bifs.md5/output +++ b/testing/btest/Baseline/bifs.md5/output @@ -2,3 +2,5 @@ f97c5d29941bfb1b2fdab0874906ab82 7b0391feb2e0cd271f1cf39aafb4376f f97c5d29941bfb1b2fdab0874906ab82 7b0391feb2e0cd271f1cf39aafb4376f +571c0a35c7858ad5a0e16b8fdb41adcd +1751cbd623726f423f734e23a8c7ec06 diff --git a/testing/btest/Baseline/bifs.rand/out b/testing/btest/Baseline/bifs.rand/out new file mode 100644 index 0000000000..367833f80a --- /dev/null +++ b/testing/btest/Baseline/bifs.rand/out @@ -0,0 +1,6 @@ +185 +236 +805 +47 +996 +498 diff --git a/testing/btest/Baseline/bifs.resize/out b/testing/btest/Baseline/bifs.resize/out new file mode 100644 index 0000000000..fcefeaf4df --- /dev/null +++ b/testing/btest/Baseline/bifs.resize/out @@ -0,0 +1,4 @@ +3 +5 +0 +7 diff --git a/testing/btest/Baseline/bifs.sort/out b/testing/btest/Baseline/bifs.sort/out new file mode 100644 index 0000000000..21d24208fb --- /dev/null +++ b/testing/btest/Baseline/bifs.sort/out @@ -0,0 +1,2 @@ +[5, 3, 8] +[3, 5, 8] diff --git a/testing/btest/Baseline/bifs.system/out b/testing/btest/Baseline/bifs.system/out new file mode 100644 index 0000000000..ae782e3280 --- /dev/null +++ b/testing/btest/Baseline/bifs.system/out @@ -0,0 +1 @@ +thistest diff --git a/testing/btest/Baseline/bifs.system_env/out b/testing/btest/Baseline/bifs.system_env/out new file mode 100644 index 0000000000..31e0fce560 --- /dev/null +++ b/testing/btest/Baseline/bifs.system_env/out @@ -0,0 +1 @@ +helloworld diff --git a/testing/btest/Baseline/bifs.val_size/out b/testing/btest/Baseline/bifs.val_size/out new file mode 100644 index 0000000000..16b548f269 --- /dev/null +++ b/testing/btest/Baseline/bifs.val_size/out @@ -0,0 +1,2 @@ +72 +72 diff --git a/testing/btest/bifs/all_set.bro b/testing/btest/bifs/all_set.bro new file mode 100644 index 0000000000..31544eb31e --- /dev/null +++ b/testing/btest/bifs/all_set.bro @@ -0,0 +1,15 @@ +# +# @TEST-EXEC: bro %INPUT >out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = vector( T, F, T ); + print all_set(a); + + local b = vector(); + print all_set(b); + + local c = vector( T ); + print all_set(c); + } diff --git a/testing/btest/bifs/any_set.bro b/testing/btest/bifs/any_set.bro new file mode 100644 index 0000000000..5fe046cdf4 --- /dev/null +++ b/testing/btest/bifs/any_set.bro @@ -0,0 +1,15 @@ +# +# @TEST-EXEC: bro %INPUT >out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = vector( F, T, F ); + print any_set(a); + + local b = vector(); + print any_set(b); + + local c = vector( F ); + print any_set(c); + } diff --git a/testing/btest/bifs/clear_table.bro b/testing/btest/bifs/clear_table.bro new file mode 100644 index 0000000000..94779285af --- /dev/null +++ b/testing/btest/bifs/clear_table.bro @@ -0,0 +1,14 @@ +# +# @TEST-EXEC: bro %INPUT > out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local mytable: table[string] of string = { ["key1"] = "val1" }; + + print |mytable|; + + clear_table(mytable); + + print |mytable|; + } diff --git a/testing/btest/bifs/exit.bro b/testing/btest/bifs/exit.bro new file mode 100644 index 0000000000..e551144caa --- /dev/null +++ b/testing/btest/bifs/exit.bro @@ -0,0 +1,9 @@ +# +# @TEST-EXEC: bro %INPUT >out || test $? -eq 7 +# @TEST-EXEC: btest-diff out + +event bro_init() + { + print "hello"; + exit(7); + } diff --git a/testing/btest/bifs/getsetenv.bro b/testing/btest/bifs/getsetenv.bro new file mode 100644 index 0000000000..b4ee9a0931 --- /dev/null +++ b/testing/btest/bifs/getsetenv.bro @@ -0,0 +1,20 @@ +# +# @TEST-EXEC: TESTBRO=testvalue bro %INPUT >out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = getenv("NOTDEFINED"); + local b = getenv("TESTBRO"); + if ( |a| == 0 ) + print "OK"; + if ( b == "testvalue" ) + print "OK"; + + if ( setenv("NOTDEFINED", "now defined" ) == T ) + { + if ( getenv("NOTDEFINED") == "now defined" ) + print "OK"; + } + + } diff --git a/testing/btest/bifs/length.bro b/testing/btest/bifs/length.bro new file mode 100644 index 0000000000..335223c124 --- /dev/null +++ b/testing/btest/bifs/length.bro @@ -0,0 +1,22 @@ +# +# @TEST-EXEC: bro %INPUT > out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local mytable: table[string] of string = { ["key1"] = "val1" }; + local myset: set[count] = set( 3, 6, 2, 7 ); + local myvec: vector of string = vector( "value1", "value2" ); + + print length(mytable); + print length(myset); + print length(myvec); + + mytable = table(); + myset = set(); + myvec = vector(); + + print length(mytable); + print length(myset); + print length(myvec); + } diff --git a/testing/btest/bifs/md5.test b/testing/btest/bifs/md5.test index 2632d76cb4..5a9715edf1 100644 --- a/testing/btest/bifs/md5.test +++ b/testing/btest/bifs/md5.test @@ -14,3 +14,6 @@ md5_hash_update("b", "three"); print md5_hash_finish("a"); print md5_hash_finish("b"); + +print md5_hmac("one"); +print md5_hmac("one", "two", "three"); diff --git a/testing/btest/bifs/order.bro b/testing/btest/bifs/order.bro new file mode 100644 index 0000000000..176e733cfe --- /dev/null +++ b/testing/btest/bifs/order.bro @@ -0,0 +1,18 @@ +# +# @TEST-EXEC: bro %INPUT >out +# @TEST-EXEC: btest-diff out + +function myfunc(a: count, b: count): bool + { + return a < b; + } + +event bro_init() + { + local a = vector( 5, 3, 8 ); + + print order(a, myfunc); + + print a; + + } diff --git a/testing/btest/bifs/piped_exec.bro b/testing/btest/bifs/piped_exec.bro index 32fd5c5f80..3a76eba8f5 100644 --- a/testing/btest/bifs/piped_exec.bro +++ b/testing/btest/bifs/piped_exec.bro @@ -5,8 +5,10 @@ global cmds = "print \"hello world\";"; cmds = string_cat(cmds, "\nprint \"foobar\";"); -piped_exec("bro", cmds); +if ( piped_exec("bro", cmds) != T ) + exit(1); # Test null output. -piped_exec("cat > test.txt", "\x00\x00hello\x00\x00"); +if ( piped_exec("cat > test.txt", "\x00\x00hello\x00\x00") != T ) + exit(1); diff --git a/testing/btest/bifs/rand.bro b/testing/btest/bifs/rand.bro new file mode 100644 index 0000000000..229645944e --- /dev/null +++ b/testing/btest/bifs/rand.bro @@ -0,0 +1,24 @@ +# +# @TEST-EXEC: bro %INPUT >out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = rand(1000); + local b = rand(1000); + local c = rand(1000); + + print a; + print b; + print c; + + srand(575); + + local d = rand(1000); + local e = rand(1000); + local f = rand(1000); + + print d; + print e; + print f; + } diff --git a/testing/btest/bifs/resize.bro b/testing/btest/bifs/resize.bro new file mode 100644 index 0000000000..37e4ac38d9 --- /dev/null +++ b/testing/btest/bifs/resize.bro @@ -0,0 +1,26 @@ +# +# @TEST-EXEC: bro %INPUT >out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = vector( 5, 3, 8 ); + + print |a|; + + if ( resize(a, 5) != 3 ) + exit(1); + + print |a|; + + if ( resize(a, 0) != 5 ) + exit(1); + + print |a|; + + if ( resize(a, 7) != 0 ) + exit(1); + + print |a|; + + } diff --git a/testing/btest/bifs/sort.bro b/testing/btest/bifs/sort.bro new file mode 100644 index 0000000000..2d6d82129f --- /dev/null +++ b/testing/btest/bifs/sort.bro @@ -0,0 +1,18 @@ +# +# @TEST-EXEC: bro %INPUT >out +# @TEST-EXEC: btest-diff out + +function myfunc(a: count, b: count): bool + { + return a < b; + } + +event bro_init() + { + local a = vector( 5, 3, 8 ); + + print sort(a, myfunc); + + print a; + + } diff --git a/testing/btest/bifs/system.bro b/testing/btest/bifs/system.bro new file mode 100644 index 0000000000..b73aed4d79 --- /dev/null +++ b/testing/btest/bifs/system.bro @@ -0,0 +1,15 @@ +# +# @TEST-EXEC: bro %INPUT +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = system("echo thistest > out"); + if ( a != 0 ) + exit(1); + + local b = system(""); + if ( b == 0 ) + exit(1); + + } diff --git a/testing/btest/bifs/system_env.bro b/testing/btest/bifs/system_env.bro new file mode 100644 index 0000000000..d8e54a8709 --- /dev/null +++ b/testing/btest/bifs/system_env.bro @@ -0,0 +1,21 @@ +# +# @TEST-EXEC: bro %INPUT +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local vars: table[string] of string = { ["TESTBRO"] = "helloworld" }; + + # make sure the env. variable is not set + local myvar = getenv("TESTBRO"); + if ( |myvar| != 0 ) + exit(1); + + local a = system_env("echo $TESTBRO > out", vars); + if ( a != 0 ) + exit(1); + + myvar = getenv("TESTBRO"); + if ( |myvar| != 0 ) + exit(1); + } diff --git a/testing/btest/bifs/val_size.bro b/testing/btest/bifs/val_size.bro new file mode 100644 index 0000000000..b779460b9b --- /dev/null +++ b/testing/btest/bifs/val_size.bro @@ -0,0 +1,12 @@ +# +# @TEST-EXEC: bro %INPUT > out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local a = 1; + local b = T; + + print val_size(a); + print val_size(b); + }