zeek/testing/btest/scripts/base/frameworks/logging/ascii-double.zeek
Robin Sommer 789cb376fd GH-239: Rename bro to zeek, bro-config to zeek-config, and bro-path-dev to zeek-path-dev.
This also installs symlinks from "zeek" and "bro-config" to a wrapper
script that prints a deprecation warning.

The btests pass, but this is still WIP. broctl renaming is still
missing.

#239
2019-05-01 21:43:45 +00:00

85 lines
1.5 KiB
Text

# @TEST-DOC: Test that the ASCII writer logs values of type "double" correctly.
#
# @TEST-EXEC: zeek -b %INPUT test-json.zeek
# @TEST-EXEC: mv test.log json.log
# @TEST-EXEC: zeek -b %INPUT
# @TEST-EXEC: btest-diff test.log
# @TEST-EXEC: btest-diff json.log
#
# Make sure we do not write out scientific notation for doubles.
module Test;
export {
redef enum Log::ID += { LOG };
type Info: record {
d: double &log;
};
}
function logwrite(val: double)
{
Log::write(Test::LOG, [$d=val]);
}
event zeek_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.zeek
redef LogAscii::use_json = T;
# @TEST-END-FILE