Tests started on Mon Jun 3 10:21:17 PM PDT 2024 and finished on Mon Jun 3 10:22:03 PM PDT 2024
Start running libaddr tests v1.0.37 on Mon Jun 3 10:21:37 PM PDT 2024 libaddr v1.0.37 [4140797]:unittest: seed is 1717478497 source directory: "/home/snapwebsites/snapcpp/contrib/libaddr" binary directory: "/home/snapwebsites/snapcpp/BUILD/Debug/contrib/libaddr/coverage/BUILDdist directory: "/home/snapwebsites/snapcpp/BUILD/Debug/dist" temporary directory: "/home/snapwebsites/snapcpp/BUILD/Debug/contrib/libaddr/tmp" Randomness seeded to: 1753376568 SECTION: version: verify runtime vs compile time versions SECTION: verify list SECTION: ipv4::invalid_input: set IPv4 with an invalid family SECTION: addr_parser(): invalid allow flags (too small) SECTION: addr_parser(): invalid allow flags (too large) SECTION: addr_parser(): bad address SECTION: addr_parser(): required address SECTION: addr_parser(): required port SECTION: addr_parser(): port not allowed SECTION: addr_parser(): invalid port SECTION: addr_parser(): really large numbers (over 1000) SECTION: addr_parser(): ipv4 mask is limited between 0 and 32 SECTION: addr_parser(): ipv4 mask cannot use name SECTION: addr_parser(): ipv4 mask mismatch (mask uses ipv6) SECTION: addr_parser(): ipv4 mask mismatch (mask uses ipv6 without [...]) SECTION: addr_parser(): invalid names SECTION: addr_parser(): invalid numbers SECTION: addr: not an IPv4 SECTION: addr: default network type (0.0.0.0) SECTION: addr: IPv6 ANY SECTION: addr: IPv4 or IPv6 string SECTION: addr: interface determination SECTION: addr: default name/service/port/protocol SECTION: addr: compare with self SECTION: addr: compare with another 0.0.0.0 SECTION: addr: compare with IPv4 127.0.0.1 SECTION: addr: set_ipv4() / get_ipv4() SECTION: addr: set_ipv4() / to_ipv4_string() SECTION: addr: name of various IPs SECTION: addr: verify basics SECTION: addr: verify default address SECTION: addr: verify default mask SECTION: addr: verify default allow flags SECTION: addr: verify contradictory flags SECTION: addr: default address SECTION: addr: address, no port allowed SECTION: addr: 3 IPs separated by commas SECTION: addr: 3 IPs separated by spaces SECTION: addr: 3 IPs separated by commas and/or spaces SECTION: addr: 3 IPs with hash (#) comments SECTION: addr: 3 IPs with semicolon (;) comments SECTION: addr: 3 IPs with hash (#) and semicolon (;) comments SECTION: addr: simple numeric IPv4 SECTION: addr: invalid domain name address when we only accept numeric IPs SECTION: addr: invalid port: service name not allowed SECTION: addr: IP as hostname SECTION: addr: set interface SECTION: addr: verify port SECTION: addr: default address with various port SECTION: addr: address with default port SECTION: addr: mask allowed, but no mask SECTION: addr: empty mask SECTION: addr: one number masks SECTION: addr: address like mask SECTION: addr: address like mask when not allowed SECTION: addr: address like default mask SECTION: addr: address like mask with a default SECTION: addr: address like default mask SECTION: addr: two addresses and a mask for a match / no match SECTION: addr: default protocol SECTION: addr: set_protocol() SECTION: addr: verify default SECTION: addr: test 3 allowed protocols SECTION: addr: verify clearing works SECTION: addr: get address with all protocols SECTION: addr: any (0.0.0.0) SECTION: addr: private address 10.x.x.x/8 SECTION: addr: private address 172.16.x.x/12 SECTION: addr: private address 192.168.x.x/16 SECTION: addr: private address 100.66.x.x/10 SECTION: addr: private address 169.254.x.x/16 SECTION: addr: private address 224.x.x.x/4 SECTION: addr: private address 127.x.x.x/8 SECTION: addr: invalid socket SECTION: addr: non-opened file descriptor SECTION: addr: unknown socket type SECTION: addr/addr_parser: create a server (bind), but do not test it (yet)... SECTION: addr/addr_parser: connect() with TCP to 127.0.0.1 SECTION: addr/addr_parser: connect() with UDP to 127.0.0.1:53 which fails SECTION: addr/addr_parser: bind() with UDP to 127.0.0.1:(as a "client") which works SECTION: string_to_addr: empty address without defaults SECTION: string_to_addr: explicit defaults SECTION: string_to_addr: defaults SECTION: string_to_addr: addr & default addr SECTION: string_to_addr: no addr, expect default addr SECTION: string_to_addr: addr and port, with a default port SECTION: string_to_addr: addr without port, with a default port SECTION: string_to_addr: addr without port but protocol SECTION: string_to_addr: addr with port and protocol SECTION: string_to_addr: addr with port and protocol but no mask, albeit allowed SECTION: string_to_addr: addr with port and protocol and mask, albeit allowed SECTION: string_to_addr: addr with port and protocol and mask, albeit allowed SECTION: string_to_addr: addr with port and invalid protocol so we get an exception SECTION: string_to_addr: definitely not a valid address SECTION: ipv6::invalid_input: set IPv6 with an invalid family SECTION: ipv6::invalid_input: bad address SECTION: ipv6::invalid_input: missing ']' SECTION: ipv6::invalid_input: required address SECTION: ipv6::invalid_input: required port SECTION: ipv6::invalid_input: port not allowed SECTION: ipv6::invalid_input: really large numbers (over 1000) SECTION: ipv6::invalid_input: ipv6 mask is limited between 0 and 128 SECTION: ipv6::invalid_input: ipv6 mask cannot use name SECTION: ipv6::invalid_input: ipv6 mask must be between '[...]' SECTION: ipv6::invalid_input: ipv6 mask missing the ']' SECTION: ipv6::invalid_input: ipv6 mask with an ipv4 in the '[...]' SECTION: ipv6::invalid_input: verify default address SECTION: ipv6::invalid_input: verify default mask SECTION: ipv6::address: default is 128 bit set to zero SECTION: ipv6::address: parse the default IPv6 address "[::]" and "::" SECTION: ipv6::address: verify last IPv6 address SECTION: ipv6::address: set_ipv6() / get_ipv6() SECTION: ipv6::address: set_ipv6() check to_ipv6_string() SECTION: ipv6::address: name of various IPs SECTION: ipv6::address: verify basics SECTION: ipv6::address: default address SECTION: ipv6::address: address, no port allowed SECTION: ipv6::address: simple numeric IPv6 SECTION: ipv6::address: invalid IPv6 domain name address when we only accept numeric IPs SECTION: ipv6::address: invalid IPv6 domain name address when we only accept numeric IPs SECTION: ipv6::address: parse and no sort SECTION: ipv6::address: parse and ignore empty SECTION: ipv6::address: parse and full sort SECTION: ipv6::address: parse and put IPv6 addresses first SECTION: ipv6::address: parse and put IPv4 addresses first SECTION: ipv6::address: parse, sort, and merge SECTION: ipv6::address: parse, sort, merge, and put IPv4 first SECTION: ipv6::address: parse, sort, merge, and put IPv6 first SECTION: ipv6::address: parse, sort, merge, and put IPv6 first SECTION: ipv6::address: one side ranges SECTION: ipv6::address: test invalid sort (IPv4 vs IPv6) SECTION: ipv6::address: parse & sort multi-address separated by '\n' with '#' comments SECTION: ipv6::address: parse & sort multi-address separated by '\n' with ';' comments SECTION: ipv6::address: parse invalid range (IP which becomes multiple entries) SECTION: ipv6::ports: default port SECTION: ipv6::ports: set_port() SECTION: ipv6::ports: known ports to test get_service() SECTION: ipv6::ports: verify port by parser SECTION: ipv6::port: default address with various port SECTION: ipv6::port: port when not allowed check as IPv6 SECTION: ipv6::port: space before port SECTION: ipv6::masks: default mask SECTION: ipv6::masks: set_mask_count() SECTION: ipv6::masks: set_mask() SECTION: ipv6::masks: set_mask() SECTION: ipv6::masks: mask allowed, but no mask SECTION: ipv6::masks: empty mask SECTION: ipv6::masks: empty mask including the '[]' SECTION: ipv6::masks: empty mask '[]' with address mask not allowed SECTION: ipv6::masks: one number masks SECTION: ipv6::masks: address like mask SECTION: ipv6::masks: address like default mask SECTION: ipv6::masks: address like mask with a default SECTION: ipv6::masks: no address, but one IPv6 number masks SECTION: ipv6::masks: no address, but one IPv6 masks SECTION: ipv6::network_type: any (::) SECTION: ipv6::network_type: private address fd00::/8 SECTION: ipv6::network_type: private address fe80::/10 SECTION: ipv6::network_type: private address ff02::/16 SECTION: ipv6::network_type: private address ff00::/8 SECTION: ipv6::network_type: private address ffx1::/8 SECTION: ipv6::network_type: private address ::1 SECTION: ipv6::network: create a server, but do not test it (yet)... SECTION: ipv6::network: connect with TCP to [::1] SECTION: ipv6::network: connect with UDP to [::1] SECTION: addr_range: verify defaults SECTION: addr_range: test normal range (from <= to) SECTION: addr_range: test empty range (from > to) SECTION: addr_range: compare "from" ranges against each other SECTION: addr_range: compare "to" ranges against each other SECTION: addr_range: compare "from" against "to" ranges SECTION: addr_range: compare full ranges ("from" and "to" defined) SECTION: addr_range: compare mixed IPs SECTION: addr_range: create range from CIDR SECTION: addr_range: intersection of two ranges that overlap SECTION: addr_range: intersection of two ranges that do not overlap SECTION: addr_range: union of two ranges that overlap SECTION: addr_range: union of two ranges that touch SECTION: addr_range: union two ranges that do not overlap SECTION: addr_range: to_cidr() without ranges SECTION: addr_range: valid network range /16 SECTION: addr_range: valid network range /24 SECTION: addr_range: valid network range but not for a cidr SECTION: addr_range: optimize IPv4 addresses SECTION: routes: verify list SECTION: routes: verify a search without a default route SECTION: addr_unix() defaults (a.k.a. unnamed address) SECTION: addr_unix() with an unnamed address SECTION: addr_unix() with an unnamed string SECTION: addr_unix() with a forced unnamed URI SECTION: addr_unix() with an unnamed which we re-collect from socket SECTION: addr_unix() with a relative file name SECTION: addr_unix() with a relative file name; string constructor SECTION: addr_unix() with a relative file name using set_file() SECTION: addr_unix() with a full file name SECTION: addr_unix() with a long file name SECTION: addr_unix() verify that file gets unlink()'ed SECTION: addr_unix() with a file name which we re-collect from socket SECTION: addr_unix() with a relative abstract name SECTION: addr_unix() with a relative abstract name with string constructor SECTION: addr_unix() with an abstract name using set_abstract() SECTION: addr_unix() with a full abstract name SECTION: addr_unix() with a long abstract name SECTION: addr_unix() with an abstract name which we re-collect from socket SECTION: two addr_unix() to compare with ==, !=, <, <=, >, >= SECTION: two sockaddr_un to compare with ==, !=, <, <=, >, >= SECTION: addr_unix() with a relative file name then unnamed SECTION: addr_unix() with a full abstract name then unnamed SECTION: addr_unix() with various set_uri() SECTION: addr_unix() with an invalid address family SECTION: addr_unix() with an unnamed string but marked abstract SECTION: addr_unix() with a URI and a missing path SECTION: addr_unix() with too long a file name SECTION: addr_unix() with too long an abstract name SECTION: addr_unix() with a long filename (missing '\0') SECTION: addr_unix() with a long abstrat name (missing '\0') SECTION: addr_unix() with a long abstrat name (missing '\0') SECTION: addr_unix() with invalid characters (controls) SECTION: addr_unix() with invalid UTF-8 characters SECTION: get addr_unix() of socket set to -1 SECTION: get addr_unix() of socket set to UDP SECTION: validator: default validation SECTION: validator: allow all SECTION: validator: allow "nothing" SECTION: validator: unknown option SECTION: validator: address=no prevents any other option SECTION: validator: address= SECTION: validator: address= SECTION: validator: = =============================================================================== All tests passed (2367012 assertions in 26 test cases) Finished running libaddr tests v1.0.37 on Mon Jun 3 10:21:50 PM PDT 2024