Blame tests/field_ipv6_jsoncnf.sh

Packit 1422b7
# added 2015-06-23 by Rainer Gerhards
Packit 1422b7
# This file is part of the liblognorm project, released under ASL 2.0
Packit 1422b7
. $srcdir/exec.sh
Packit 1422b7
Packit 1422b7
test_def $0 "IPv6 parser"
Packit 1422b7
add_rule 'version=2'
Packit 1422b7
add_rule 'rule=:%{"name":"f", "type":"ipv6"}%'
Packit 1422b7
Packit 1422b7
# examples from RFC4291, sect. 2.2
Packit 1422b7
execute 'ABCD:EF01:2345:6789:ABCD:EF01:2345:6789'
Packit 1422b7
assert_output_json_eq '{ "f": "ABCD:EF01:2345:6789:ABCD:EF01:2345:6789" }'
Packit 1422b7
execute 'ABCD:EF01:2345:6789:abcd:EF01:2345:6789' # mixed hex case
Packit 1422b7
assert_output_json_eq '{ "f": "ABCD:EF01:2345:6789:abcd:EF01:2345:6789" }'
Packit 1422b7
execute '2001:DB8:0:0:8:800:200C:417A'
Packit 1422b7
assert_output_json_eq '{ "f": "2001:DB8:0:0:8:800:200C:417A" }'
Packit 1422b7
Packit 1422b7
execute '0:0:0:0:0:0:0:1'
Packit 1422b7
assert_output_json_eq '{ "f": "0:0:0:0:0:0:0:1" }'
Packit 1422b7
Packit 1422b7
execute '2001:DB8::8:800:200C:417A'
Packit 1422b7
assert_output_json_eq '{ "f": "2001:DB8::8:800:200C:417A" }'
Packit 1422b7
execute 'FF01::101'
Packit 1422b7
assert_output_json_eq '{ "f": "FF01::101" }'
Packit 1422b7
execute '::1'
Packit 1422b7
assert_output_json_eq '{ "f": "::1" }'
Packit 1422b7
execute '::'
Packit 1422b7
assert_output_json_eq '{ "f": "::" }'
Packit 1422b7
Packit 1422b7
execute '0:0:0:0:0:0:13.1.68.3'
Packit 1422b7
assert_output_json_eq '{ "f": "0:0:0:0:0:0:13.1.68.3" }'
Packit 1422b7
execute '::13.1.68.3'
Packit 1422b7
assert_output_json_eq '{ "f": "::13.1.68.3" }'
Packit 1422b7
execute '::FFFF:129.144.52.38'
Packit 1422b7
assert_output_json_eq '{ "f": "::FFFF:129.144.52.38" }'
Packit 1422b7
Packit 1422b7
# invalid samples
Packit 1422b7
execute '2001:DB8::8::800:200C:417A' # two :: sequences
Packit 1422b7
assert_output_json_eq '{ "originalmsg": "2001:DB8::8::800:200C:417A", "unparsed-data": "2001:DB8::8::800:200C:417A" }'
Packit 1422b7
Packit 1422b7
execute 'ABCD:EF01:2345:6789:ABCD:EF01:2345::6789' # :: with too many blocks
Packit 1422b7
assert_output_json_eq '{ "originalmsg": "ABCD:EF01:2345:6789:ABCD:EF01:2345::6789", "unparsed-data": "ABCD:EF01:2345:6789:ABCD:EF01:2345::6789" }'
Packit 1422b7
Packit 1422b7
execute 'ABCD:EF01:2345:6789:ABCD:EF01:2345:1:6798' # too many blocks (9)
Packit 1422b7
assert_output_json_eq '{"originalmsg": "ABCD:EF01:2345:6789:ABCD:EF01:2345:1:6798", "unparsed-data": "ABCD:EF01:2345:6789:ABCD:EF01:2345:1:6798" }'
Packit 1422b7
Packit 1422b7
execute ':0:0:0:0:0:0:1' # missing first digit
Packit 1422b7
assert_output_json_eq '{ "originalmsg": ":0:0:0:0:0:0:1", "unparsed-data": ":0:0:0:0:0:0:1" }'
Packit 1422b7
Packit 1422b7
execute '0:0:0:0:0:0:0:' # missing last digit
Packit 1422b7
assert_output_json_eq '{ "originalmsg": "0:0:0:0:0:0:0:", "unparsed-data": "0:0:0:0:0:0:0:" }'
Packit 1422b7
Packit 1422b7
execute '13.1.68.3' # pure IPv4 address
Packit 1422b7
assert_output_json_eq '{ "originalmsg": "13.1.68.3", "unparsed-data": "13.1.68.3" }'
Packit 1422b7
Packit 1422b7
Packit 1422b7
cleanup_tmp_files
Packit 1422b7