t/basic.t ........ 1..3 ok 1 - use DNSQuery::Resolver; ok 2 - use DNSQuery::Output; ok 3 - use DNSQuery::Interactive; ok Failed to load cache from disk: Magic number checking on storable file failed at /usr/lib/x86_64-linux-gnu/perl/5.38/Storable.pm line 421, at /home/willem/svn/regression-testing/App-dnsq-1.1.0/t/../lib/DNSQuery/Cache.pm line 267. t/cache.t ........ ok 1 - use DNSQuery::Cache; # Subtest: Basic cache operations ok 1 - Set and get value ok 2 - Non-existent key returns undef ok 3 - Cache size is 1 ok 4 - Deleted key returns undef ok 5 - Cache size is 0 after delete 1..5 ok 2 - Basic cache operations # Subtest: TTL expiration ok 1 - Value exists before expiration ok 2 - Value expired after TTL 1..2 ok 3 - TTL expiration # Subtest: LRU eviction ok 1 - Cache at max size ok 2 - Cache still at max size ok 3 - Recently accessed key1 still exists ok 4 - LRU key2 was evicted ok 5 - New key4 exists 1..5 ok 4 - LRU eviction # Subtest: Cache statistics ok 1 - Hit count is 1 ok 2 - Miss count is 1 ok 3 - Cache size is 1 ok 4 - Hit rate calculated 1..4 ok 5 - Cache statistics # Subtest: Clear cache ok 1 - Cache has 2 entries ok 2 - Cache cleared ok 3 - Key1 gone after clear 1..3 ok 6 - Clear cache # Subtest: Cache persistence ok 1 - Value persisted to disk ok 2 - Second value persisted to disk 1..2 ok 7 - Cache persistence 1..7 ok t/integration.t .. ok 1 - dnsq is executable ok 2 - Basic A query returns IP address ok 3 - JSON output contains domain ok 4 - JSON output contains type ok 5 - MX query returns mail server ok 6 - Custom server query works ok 7 - Help output works ok 8 - Version output works 1..8 ok Name "DNSQuery::Constants::VALID_QUERY_CLASSES" used only once: possible typo at t/validator.t line 124. Name "DNSQuery::Constants::MIN_PORT" used only once: possible typo at t/validator.t line 126. Name "DNSQuery::Constants::MAX_PORT" used only once: possible typo at t/validator.t line 127. Name "DNSQuery::Constants::MAX_DOMAIN_LENGTH" used only once: possible typo at t/validator.t line 128. t/validator.t .... ok 1 - use DNSQuery::Validator; ok 2 - use DNSQuery::Constants; # Subtest: Domain validation ok 1 - Valid domain: google.com ok 2 - Valid domain: sub.example.co.uk ok 3 - Empty domain rejected ok 4 - Consecutive dots rejected ok 5 - Leading hyphen rejected ok 6 - Too long domain rejected 1..6 ok 3 - Domain validation # Subtest: IP validation ok 1 - Valid IPv4: 8.8.8.8 ok 2 - Valid IPv4: 192.168.1.1 ok 3 - Valid IPv6: 2001:4860:4860::8888 ok 4 - Invalid IPv4 octet rejected ok 5 - Non-IP string rejected 1..5 ok 4 - IP validation # Subtest: Query type validation ok 1 - Valid type: A ok 2 - Valid type: AAAA ok 3 - Valid type: mx (case insensitive) ok 4 - Invalid type rejected ok 5 - Empty type rejected 1..5 ok 5 - Query type validation # Subtest: Port validation ok 1 - Valid port: 53 ok 2 - Valid port: 8053 ok 3 - Port 0 rejected ok 4 - Port > 65535 rejected ok 5 - Non-numeric port rejected 1..5 ok 6 - Port validation # Subtest: Timeout validation ok 1 - Valid timeout: 5 ok 2 - Valid timeout: 1 ok 3 - Timeout 0 rejected ok 4 - Negative timeout rejected 1..4 ok 7 - Timeout validation # Subtest: Constants ok 1 - A type exists in constants ok 2 - AAAA type exists in constants ok 3 - MX type exists in constants ok 4 - IN class exists in constants ok 5 - MIN_PORT is 1 ok 6 - MAX_PORT is 65535 ok 7 - MAX_DOMAIN_LENGTH is 253 1..7 ok 8 - Constants 1..8 ok All tests successful. Files=4, Tests=26, 3 wallclock secs ( 0.02 usr 0.00 sys + 0.41 cusr 0.17 csys = 0.60 CPU) Result: PASS