|
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 |
add_rule 'version=2'
|
|
Packit |
1422b7 |
test_def $0 "IPv6 parser"
|
|
Packit |
1422b7 |
add_rule 'rule=:%f: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 |
|