Add missing tests for broker data BIFs

Added tests for the table_clear and vector_clear BIFs, and added
more tests for container types (e.g. adding the same element twice
to a set or table, or overwriting a record field value, etc.).
Also reorganized several test cases.
This commit is contained in:
Daniel Thayer 2016-04-26 23:03:28 -05:00
parent b1876bf744
commit fbab6490ec
2 changed files with 76 additions and 24 deletions

View file

@ -30,12 +30,21 @@ hello
42.0
180.0
Broker::BOOL
***************************
{
two,
one,
three
}
{
[two] = 2,
[one] = 1,
[three] = 3
}
[zero, one, two]
[a=<uninitialized>, b=bee, c=1]
[a=test, b=bee, c=1]
[a=test, b=testagain, c=1]
***************************
0
T
1
@ -43,19 +52,20 @@ T
F
T
2
F
2
T
1
F
{
bye
}
T
0
***************************
{
[two] = 2,
[one] = 1,
[three] = 3
}
***************************
0
[d=<uninitialized>]
1
@ -69,8 +79,14 @@ F
37
[d=broker::data{42}]
1
[d=<uninitialized>]
1
T
0
{
}
***************************
[zero, one, two]
0
T
T
@ -85,10 +101,10 @@ T
[d=broker::data{bah}]
[hi, salutations, greetings]
3
T
0
[]
***************************
[a=<uninitialized>, b=bee, c=1]
[a=test, b=bee, c=1]
[a=test, b=testagain, c=1]
3
T
T
@ -97,3 +113,6 @@ T
[d=broker::data{hello}]
[d=broker::data{37}]
3
T
3
[d=broker::data{goodbye}]

View file

@ -103,6 +103,9 @@ function broker_to_bro_vector(d: Broker::Data): bro_vector
event bro_init()
{
Broker::enable();
### Print every broker data type
print Broker::data_type(Broker::data(T));
print Broker::data_type(Broker::data(+1));
print Broker::data_type(Broker::data(1));
@ -125,6 +128,8 @@ print Broker::data_type(Broker::data(r));
print "***************************";
### Convert a Bro value to a broker value, then print the result
print Broker::refine_to_bool(Broker::data(T));
print Broker::refine_to_bool(Broker::data(F));
print Broker::refine_to_int(Broker::data(+1));
@ -142,10 +147,30 @@ print Broker::refine_to_time(Broker::data(double_to_time(42)));
print Broker::refine_to_interval(Broker::data(3min));
print Broker::refine_to_enum_name(Broker::data(Broker::BOOL));
print "***************************";
local cs = Broker::data(s);
print broker_to_bro_set(cs);
local ct = Broker::data(t);
print broker_to_bro_table(ct);
local cv = Broker::data(v);
print broker_to_bro_vector(cv);
local cr = Broker::data(r);
print broker_to_bro_record(cr);
r$a = "test";
cr = Broker::data(r);
print broker_to_bro_record(cr);
r$b = "testagain";
cr = Broker::data(r);
print broker_to_bro_record(cr);
print "***************************";
### Test the broker set BIFs
cs = Broker::set_create();
print Broker::set_size(cs);
print Broker::set_insert(cs, Broker::data("hi"));
@ -154,17 +179,20 @@ print Broker::set_contains(cs, Broker::data("hi"));
print Broker::set_contains(cs, Broker::data("bye"));
print Broker::set_insert(cs, Broker::data("bye"));
print Broker::set_size(cs);
print Broker::set_insert(cs, Broker::data("bye"));
print Broker::set_size(cs);
print Broker::set_remove(cs, Broker::data("hi"));
print Broker::set_size(cs);
print Broker::set_remove(cs, Broker::data("hi"));
print broker_to_bro_set(cs);
Broker::set_clear(cs);
print Broker::set_clear(cs);
print Broker::set_size(cs);
print broker_to_bro_set(cs);
print "***************************";
local ct = Broker::data(t);
print broker_to_bro_table(ct);
### Test the broker table BIFs
ct = Broker::table_create();
print Broker::table_size(ct);
print Broker::table_insert(ct, Broker::data("hi"), Broker::data(42));
@ -179,11 +207,16 @@ print Broker::table_size(ct);
print Broker::refine_to_count(Broker::table_lookup(ct, Broker::data("bye")));
print Broker::table_remove(ct, Broker::data("hi"));
print Broker::table_size(ct);
print Broker::table_remove(ct, Broker::data("hi"));
print Broker::table_size(ct);
print Broker::table_clear(ct);
print Broker::table_size(ct);
print broker_to_bro_table(ct);
print "***************************";
local cv = Broker::data(v);
print broker_to_bro_vector(cv);
### Test the broker vector BIFs
cv = Broker::vector_create();
print Broker::vector_size(cv);
print Broker::vector_insert(cv, Broker::data("hi"), 0);
@ -199,17 +232,14 @@ print broker_to_bro_vector(cv);
print Broker::vector_remove(cv, 2);
print broker_to_bro_vector(cv);
print Broker::vector_size(cv);
print Broker::vector_clear(cv);
print Broker::vector_size(cv);
print broker_to_bro_vector(cv);
print "***************************";
local cr = Broker::data(r);
print broker_to_bro_record(cr);
r$a = "test";
cr = Broker::data(r);
print broker_to_bro_record(cr);
r$b = "testagain";
cr = Broker::data(r);
print broker_to_bro_record(cr);
### Test the broker record BIFs
cr = Broker::record_create(3);
print Broker::record_size(cr);
print Broker::record_assign(cr, Broker::data("hi"), 0);
@ -219,4 +249,7 @@ print Broker::record_lookup(cr, 0);
print Broker::record_lookup(cr, 1);
print Broker::record_lookup(cr, 2);
print Broker::record_size(cr);
print Broker::record_assign(cr, Broker::data("goodbye"), 1);
print Broker::record_size(cr);
print Broker::record_lookup(cr, 1);
}