zeek/testing/btest/istate/persistence.bro
Robin Sommer bc39f9f048 Porting the istate tests to btest.
Note that currently most of them don't pass because (i) the code
adding the environment variable for seeding the RNG has not been
merged into master yet; and (2) Broccoli to Bro communication is
currently broken because of the int64 problem. Once these are fixed,
then baselines need to be recreated and checked.

Therefore, the istate tests aren't activated in btest.cfg yet.
2011-03-29 21:46:06 -07:00

113 lines
3.1 KiB
Text

#
# @TEST-EXEC: bro -r $TRACES/empty.trace write.bro %INPUT
# @TEST-EXEC: cp vars.log vars.write.log
# @TEST-EXEC: bro read.bro %INPUT
# @TEST-EXEC: cp vars.log vars.read.log
# @TEST-EXEC: btest-diff vars.read.log
# @TEST-EXEC: btest-diff vars.write.log
# @TEST-EXEC: cmp vars.read.log vars.write.log
### Common code for reader and writer.
event bro_done()
{
local out = open("vars.log");
print out, foo1;
print out, foo2;
print out, foo3;
print out, foo4;
print out, foo5;
print out, foo6;
print out, foo7;
print out, foo8;
print out, foo9;
print out, foo10;
print out, foo11;
print out, foo12;
print out, foo13;
print out, foo14;
print out, foo15;
print out, foo16;
print out, foo17;
}
@TEST-START-FILE read.bro
global foo1: count &persistent &synchronized;
global foo2: int &persistent &synchronized;
global foo3: string &persistent &synchronized;
global foo4: addr &persistent &synchronized;
global foo5: subnet &persistent &synchronized;
global foo6: double &persistent &synchronized;
global foo7: net &persistent &synchronized;
global foo8: interval &persistent &synchronized;
global foo9: table[count] of string &persistent &synchronized;
global foo10: file &persistent &synchronized;
global foo11: pattern &persistent &synchronized;
global foo12: set[count] &persistent &synchronized;
global foo13: table[count, string] of count &persistent &synchronized;
global foo14: table[count] of pattern &persistent &synchronized;
global foo15: port &persistent &synchronized;
global foo16: vector of count &persistent &synchronized;
type type1: record {
a: string;
b: count &default=42;
c: double &optional;
};
type type2: record {
a: string;
b: type1;
c: type1;
d: double;
};
global foo17: type2 &persistent &synchronized;
@TEST-END-FILE
@TEST-START-FILE write.bro
global foo1 = 42 &persistent &synchronized;
global foo2 = -42 &persistent &synchronized;
global foo3 = "Hallihallo" &persistent &synchronized;
global foo4 = 1.2.3.4 &persistent &synchronized;
global foo5 = 1.2.0.0/16 &persistent &synchronized;
global foo6 = 3.14 &persistent &synchronized;
global foo7 = 131.159. &persistent &synchronized;
global foo8 = 42 secs &persistent &synchronized;
global foo9 = { [1] = "qwerty", [2] = "uiop" } &persistent &synchronized;
global foo10 = open("test") &persistent &synchronized;
global foo11 = /12345/ &persistent &synchronized;
global foo12 = { 1,2,3,4,5 } &persistent &synchronized;
global foo13 = { [1,"ABC"] = 101, [2,"DEF"] = 102, [3,"GHI"] = 103 } &persistent &synchronized;
global foo14 = { [12345] = foo11, [12346] = foo11 } &persistent &synchronized;
global foo15 = 42/udp &persistent &synchronized;
global foo16: vector of count = [1,2,3] &persistent &synchronized;
type type1: record {
a: string;
b: count &default=42;
c: double &optional;
};
type type2: record {
a: string;
b: type1;
c: type1;
d: double;
};
global foo17: type2 = [
$a = "yuyuyu",
$b = [$a="rec1", $b=100, $c=1.24],
$c = [$a="rec2", $b=200, $c=2.24],
$d = 7.77
] &persistent &synchronized;
@TEST-END-FILE