zeek/testing/btest/bifs/sort.bro
2012-06-01 14:24:42 -05:00

70 lines
1.4 KiB
Text

#
# @TEST-EXEC: bro %INPUT >out
# @TEST-EXEC: btest-diff out
function myfunc1(a: addr, b: addr): int
{
local x = addr_to_counts(a);
local y = addr_to_counts(b);
if (x[0] < y[0])
return -1;
else
return 1;
}
function myfunc2(a: double, b: double): int
{
if (a < b)
return -1;
else
return 1;
}
event bro_init()
{
# Tests without supplying a comparison function
local a1 = vector( 5, 2, 8, 3 );
local b1 = sort(a1);
print a1;
print b1;
local a2: vector of interval = vector( 5hr, 2days, 1sec, -7min );
local b2 = sort(a2);
print a2;
print b2;
local a3: vector of bool = vector( T, F, F, T );
local b3 = sort(a3);
print a3;
print b3;
local a4: vector of port = vector( 12/icmp, 123/tcp, 500/udp, 7/udp, 57/tcp );
local b4 = sort(a4);
print a4;
print b4;
# this one is expected to fail (i.e., "sort" doesn't sort the vector)
local a5: vector of double = vector( 3.03, 3.01, 3.02, 3.015 );
local b5 = sort(a5);
print a5;
print b5;
# this one is expected to fail (i.e., "sort" doesn't sort the vector)
local a6: vector of addr = vector( 192.168.123.200, 10.0.0.157, 192.168.0.3 );
local b6 = sort(a6);
print a6;
print b6;
# Tests with a comparison function
local c1: vector of addr = vector( 192.168.123.200, 10.0.0.157, 192.168.0.3 );
local d1 = sort(c1, myfunc1);
print c1;
print d1;
local c2: vector of double = vector( 3.03, 3.01, 3.02, 3.015 );
local d2 = sort(c2, myfunc2);
print c2;
print d2;
}