Add more test cases to ascii-double.bro

This commit is contained in:
Daniel Thayer 2017-11-02 16:16:06 -05:00
parent b6e3603481
commit aee307f02b
3 changed files with 104 additions and 12 deletions

View file

@ -0,0 +1,22 @@
{"d":2.153226e+09}
{"d":2.153226e+09}
{"d":2.153226e+09}
{"d":1.0}
{"d":1.1}
{"d":1.123457}
{"d":-1.123457}
{"d":1.1234}
{"d":0.1234}
{"d":50000.0}
{"d":-50000.0}
{"d":3.140000e+15}
{"d":-3.140000e+15}
{"d":1.790000e+308}
{"d":-1.790000e+308}
{"d":0.000012}
{"d":0}
{"d":-0}
{"d":inf}
{"d":-inf}
{"d":0.0}
{"d":nan}

View file

@ -3,7 +3,7 @@
#empty_field (empty) #empty_field (empty)
#unset_field - #unset_field -
#path test #path test
#open 2016-05-23-22-44-54 #open 2017-11-02-21-00-25
#fields d #fields d
#types double #types double
2153226000.0 2153226000.0
@ -12,6 +12,20 @@
1.0 1.0
1.1 1.1
1.123457 1.123457
-1.123457
1.1234 1.1234
0.1234
50000.0
-50000.0
3140000000000000.0 3140000000000000.0
#close 2016-05-23-22-44-54 -3140000000000000.0
NAN.0
NAN.0
0.000012
0
-0
inf
-inf
0.0
nan
#close 2017-11-02-21-00-25

View file

@ -1,6 +1,10 @@
# @TEST-DOC: Test that the ASCII writer logs values of type "double" correctly.
# #
# @TEST-EXEC: bro -b %INPUT test-json.bro
# @TEST-EXEC: mv test.log json.log
# @TEST-EXEC: bro -b %INPUT # @TEST-EXEC: bro -b %INPUT
# @TEST-EXEC: btest-diff test.log # @TEST-EXEC: btest-diff test.log
# @TEST-EXEC: btest-diff json.log
# #
# Make sure we do not write out scientific notation for doubles. # Make sure we do not write out scientific notation for doubles.
@ -14,16 +18,68 @@ export {
}; };
} }
event bro_init() function logwrite(val: double)
{ {
Log::create_stream(Test::LOG, [$columns=Info]); Log::write(Test::LOG, [$d=val]);
Log::write(Test::LOG, [$d=2153226000.0]);
Log::write(Test::LOG, [$d=2153226000.1]);
Log::write(Test::LOG, [$d=2153226000.123456789]);
Log::write(Test::LOG, [$d=1.0]);
Log::write(Test::LOG, [$d=1.1]);
Log::write(Test::LOG, [$d=1.123456789]);
Log::write(Test::LOG, [$d=1.1234]);
Log::write(Test::LOG, [$d=3.14e15]);
} }
event bro_init()
{
local d: double;
local dmax: double = 1.79e308;
local dmin: double = 2.23e-308;
Log::create_stream(Test::LOG, [$columns=Info]);
# relatively large values
logwrite(2153226000.0);
logwrite(2153226000.1);
logwrite(2153226000.123456789);
# relatively small values
logwrite(1.0);
logwrite(1.1);
logwrite(1.123456789);
logwrite(-1.123456789);
logwrite(1.1234);
logwrite(.1234);
# scientific notation (positive exponents)
logwrite(5e4);
logwrite(-5e4);
logwrite(3.14e15);
logwrite(-3.14e15);
logwrite(dmax);
logwrite(-dmax);
# scientific notation (negative exponents)
logwrite(1.23456789e-5);
logwrite(dmin);
logwrite(-dmin);
# inf
d = dmax; # ok
d = d * 2.0; # inf
logwrite(d);
# -inf
d = -dmax; # ok
d = d * 2.0; # -inf
logwrite(d);
# negative zero (compares equal to 0.0, but has different representation)
d = -0.0;
logwrite(d);
# nan
d = dmax; # ok
d = d * 2.0; # inf
d = d * 0.0; # nan
logwrite(d);
}
# @TEST-START-FILE test-json.bro
redef LogAscii::use_json = T;
# @TEST-END-FILE