Mail-SPF-Query v1.999.1 Perl 5 v5.41.7 x86_64-linux-thread-multi

Status
Fail
From
Andreas J. König (ANDK)
Dist
Mail-SPF-Query v1.999.1
Platform
Perl 5 v5.41.7 x86_64-linux-thread-multi
Date
2025-01-05 09:43:25
ID
82a8cd7e-cb49-11ef-9cf4-b0eec3418ff8
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Julian Mehnle,

This is a computer-generated report for Mail-SPF-Query-1.999.1
on perl 5.41.7, created by CPAN-Reporter-1.2020.

Thank you for uploading your work to CPAN.  However, there was a problem
testing your distribution.

If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/tmp/basesmoker-reloperl-W0Fp/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Test 3 got: "softfail" (t/00_all.t at line 127 fail #2)
#   Expected: "neutral"
#  t/00_all.t line 127 is:         my $ok = ok($result,         $expected_result);
# Detailed debug log for test(s) 3:
# |         01.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=01.spf1-test.mailzone.com, helo=01.spf1-test.mailzone.com
# |        postmaster 01.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 01.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 01.spf1-test.mailzone.com
# ||       postmaster 01.spf1-test.mailzone.com   myquery: doing TXT query on 01.spf1-test.mailzone.com
# ||       postmaster 01.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 01.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 01.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 01.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 01.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 01.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 01.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 01.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=01.spf1-test.mailzone.com
# ||       postmaster 01.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 01.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ae92ec8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 01.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 01.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9aea1318)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 01.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ae9d708)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ae646f8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b0e7588)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 01.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 01.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 01.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 01.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=01.spf1-test.mailzone.com
# |||      postmaster 01.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 01.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 01.spf1-test.mailzone.com header_comment: spf_source = domain of 01.spf1-test.mailzone.com
# |||      postmaster 01.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 4 got: "softfail" (t/00_all.t at line 127 fail #3)
#   Expected: "fail"
# Detailed debug log for test(s) 4:
# |         02.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=02.spf1-test.mailzone.com, helo=02.spf1-test.mailzone.com
# |        postmaster 02.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 02.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 02.spf1-test.mailzone.com
# ||       postmaster 02.spf1-test.mailzone.com   myquery: doing TXT query on 02.spf1-test.mailzone.com
# ||       postmaster 02.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 02.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 02.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 02.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 02.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 02.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 02.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 02.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=02.spf1-test.mailzone.com
# ||       postmaster 02.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 02.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 02.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 02.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9aea1768)
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 02.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9087b0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 02.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b0e7588)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9aea1c90)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ae92598)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 02.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 02.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 02.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=02.spf1-test.mailzone.com
# |||      postmaster 02.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 02.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 02.spf1-test.mailzone.com header_comment: spf_source = domain of 02.spf1-test.mailzone.com
# |||      postmaster 02.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 6 got: "softfail" (t/00_all.t at line 127 fail #5)
#   Expected: "fail"
# Detailed debug log for test(s) 6:
# |         05.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=05.spf1-test.mailzone.com, helo=05.spf1-test.mailzone.com
# |        postmaster 05.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 05.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 05.spf1-test.mailzone.com
# ||       postmaster 05.spf1-test.mailzone.com   myquery: doing TXT query on 05.spf1-test.mailzone.com
# ||       postmaster 05.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 05.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 05.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 05.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 05.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 05.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 05.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 05.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=05.spf1-test.mailzone.com
# ||       postmaster 05.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 05.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bf9b0)
# ||       postmaster spf.messagingengine.com clone:               sender = 05.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 05.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 05.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9aea1648)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 05.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ae92838)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b924568)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b969230)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 05.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 05.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 05.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=05.spf1-test.mailzone.com
# |||      postmaster 05.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 05.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 05.spf1-test.mailzone.com header_comment: spf_source = domain of 05.spf1-test.mailzone.com
# |||      postmaster 05.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 7 got: "softfail" (t/00_all.t at line 127 fail #6)
#   Expected: "neutral"
# Test 9 got: "transitioning domain of 06.spf1-test.mailzone.com does not designate 192.0.2.1 as permitted sender" (t/00_all.t at line 130)
#   Expected: "192.0.2.1 is neither permitted nor denied by domain of 06.spf1-test.mailzone.com"
#  t/00_all.t line 130 is:            $ok = ok($header_comment, $expected_header_comment) && $ok;
# Detailed debug log for test(s) 7,8,9:
# |         06.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=06.spf1-test.mailzone.com, helo=06.spf1-test.mailzone.com
# |        postmaster 06.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 06.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 06.spf1-test.mailzone.com
# ||       postmaster 06.spf1-test.mailzone.com   myquery: doing TXT query on 06.spf1-test.mailzone.com
# ||       postmaster 06.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 06.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 06.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 06.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 06.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 06.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 06.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 06.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=06.spf1-test.mailzone.com
# ||       postmaster 06.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 06.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9690e0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b02b2e0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c59b8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 06.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c59d0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 06.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ae928f8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 06.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 06.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 06.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 06.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 06.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=06.spf1-test.mailzone.com
# |||      postmaster 06.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 06.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 06.spf1-test.mailzone.com header_comment: spf_source = domain of 06.spf1-test.mailzone.com
# |||      postmaster 06.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 10 got: "softfail" (t/00_all.t at line 127 fail #7)
#    Expected: "none"
# Detailed debug log for test(s) 10:
# |         07.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=07.spf1-test.mailzone.com, helo=07.spf1-test.mailzone.com
# |        postmaster 07.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 07.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 07.spf1-test.mailzone.com
# ||       postmaster 07.spf1-test.mailzone.com   myquery: doing TXT query on 07.spf1-test.mailzone.com
# ||       postmaster 07.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 07.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 07.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 07.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 07.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 07.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 07.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 07.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=07.spf1-test.mailzone.com
# ||       postmaster 07.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 07.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 07.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 07.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 07.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b989c78)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bf6b0)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 07.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ae92e80)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9088e8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9087b0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 07.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 07.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 07.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=07.spf1-test.mailzone.com
# |||      postmaster 07.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 07.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 07.spf1-test.mailzone.com header_comment: spf_source = domain of 07.spf1-test.mailzone.com
# |||      postmaster 07.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 11 got: "softfail" (t/00_all.t at line 127 fail #8)
#    Expected: "fail"
# Detailed debug log for test(s) 11:
# |         08.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=08.spf1-test.mailzone.com, helo=08.spf1-test.mailzone.com
# |        postmaster 08.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 08.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 08.spf1-test.mailzone.com
# ||       postmaster 08.spf1-test.mailzone.com   myquery: doing TXT query on 08.spf1-test.mailzone.com
# ||       postmaster 08.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 08.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 08.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 08.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 08.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 08.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 08.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 08.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=08.spf1-test.mailzone.com
# ||       postmaster 08.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 08.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9087b0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bf980)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c5820)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 08.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9aa930)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 08.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 08.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9c0b10)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 08.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 08.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 08.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 08.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=08.spf1-test.mailzone.com
# |||      postmaster 08.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 08.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 08.spf1-test.mailzone.com header_comment: spf_source = domain of 08.spf1-test.mailzone.com
# |||      postmaster 08.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 12 got: "softfail" (t/00_all.t at line 127 fail #9)
#    Expected: "fail"
# Detailed debug log for test(s) 12:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9aa8d0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bfb78)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c5a48)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b99af50)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9aea14c8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 13 got: "softfail" (t/00_all.t at line 127 fail #10)
#    Expected: "pass"
# Detailed debug log for test(s) 13:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.10, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 10.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c0df8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bf608)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ae92ec8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.10
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bfc20)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb0f8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.10 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.10 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 14 got: "softfail" (t/00_all.t at line 127 fail #11)
#    Expected: "pass"
# Detailed debug log for test(s) 14:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.11, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bf650)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.11
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c5a60)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c6818)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 11.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bf980)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9c5868)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.11 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.11 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 15 got: "softfail" (t/00_all.t at line 127 fail #12)
#    Expected: "pass"
# Detailed debug log for test(s) 15:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.12, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bb458)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9c0d98)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c00b8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 12.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bf740)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ae92d78)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.12
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.12 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.12 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 16 got: "softfail" (t/00_all.t at line 127 fail #13)
#    Expected: "pass"
# Detailed debug log for test(s) 16:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.13, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d6510)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.13
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9a9ee0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bb0f8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 13.2.0.192
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c0cf0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb740)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.13 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.13 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 17 got: "softfail" (t/00_all.t at line 127 fail #14)
#    Expected: "pass"
# Detailed debug log for test(s) 17:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.20, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.20
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bfea8)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb188)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 20.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c5a60)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9aea1378)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c6398)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.20 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.20 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 18 got: "softfail" (t/00_all.t at line 127 fail #15)
#    Expected: "pass"
# Detailed debug log for test(s) 18:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.21, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 21.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bf740)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d6018)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c69b0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.21
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d5bc8)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb518)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.21 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.21 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 19 got: "softfail" (t/00_all.t at line 127 fail #16)
#    Expected: "pass"
# Detailed debug log for test(s) 19:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.22, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c0cd8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d6288)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9a9ee0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 22.2.0.192
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9c0c90)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.22
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb4b8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.22 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.22 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 20 got: "softfail" (t/00_all.t at line 127 fail #17)
#    Expected: "pass"
# Detailed debug log for test(s) 20:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.23, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 23.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bb188)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d1678)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bfb90)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d1648)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.23
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bb980)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.23 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.23 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 21 got: "softfail" (t/00_all.t at line 127 fail #18)
#    Expected: "pass"
# Detailed debug log for test(s) 21:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.30, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9aaca8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bb7b8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 30.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bb518)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.30
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bb230)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb488)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.30 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.30 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 22 got: "softfail" (t/00_all.t at line 127 fail #19)
#    Expected: "pass"
# Detailed debug log for test(s) 22:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.31, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.31
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d18b8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ae92f88)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 31.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bfb18)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb278)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d5a18)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.31 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.31 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 23 got: "softfail" (t/00_all.t at line 127 fail #20)
#    Expected: "pass"
# Detailed debug log for test(s) 23:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.32, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bbba8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 32.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d5e80)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d65a0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d95b8)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.32
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bffb0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.32 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.32 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 24 got: "softfail" (t/00_all.t at line 127 fail #21)
#    Expected: "pass"
# Detailed debug log for test(s) 24:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d15e8)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e4c90)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b8539e8)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9a9fa0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d66f0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 25 got: "softfail" (t/00_all.t at line 127 fail #22)
#    Expected: "fail"
# Detailed debug log for test(s) 25:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.34, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b0e7588)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e4ed0)
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.34
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ae92718)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 34.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c5910)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d1558)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.34 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.34 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 26 got: "softfail" (t/00_all.t at line 127 fail #23)
#    Expected: "fail"
# Detailed debug log for test(s) 26:
# |         11.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=11.spf1-test.mailzone.com, helo=11.spf1-test.mailzone.com
# |        postmaster 11.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   myquery: doing TXT query on 11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 11.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 11.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 11.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bffb0)
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d9468)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c68f0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d14f8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e5230)
# ||       postmaster spf.messagingengine.com clone:               sender = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 11.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=11.spf1-test.mailzone.com
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 11.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 11.spf1-test.mailzone.com header_comment: spf_source = domain of 11.spf1-test.mailzone.com
# |||      postmaster 11.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 27 got: "softfail" (t/00_all.t at line 127 fail #24)
#    Expected: "pass"
# Detailed debug log for test(s) 27:
# |         11.spf1-test.mailzone.com new: ipv4=192.0.2.10, sender=11.spf1-test.mailzone.com, helo=11.spf1-test.mailzone.com
# |        postmaster 11.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   myquery: doing TXT query on 11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 11.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 11.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 11.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e4b88)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.10
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e5410)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9e52d8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c1878)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 10.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b1a9d28)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 11.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.10.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 11.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=11.spf1-test.mailzone.com
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 11.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 11.spf1-test.mailzone.com header_comment: spf_source = domain of 11.spf1-test.mailzone.com
# |||      postmaster 11.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 28 got: "softfail" (t/00_all.t at line 127 fail #25)
#    Expected: "pass"
# Detailed debug log for test(s) 28:
# |         11.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=11.spf1-test.mailzone.com, helo=11.spf1-test.mailzone.com
# |        postmaster 11.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   myquery: doing TXT query on 11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 11.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 11.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 11.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 11.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=11.spf1-test.mailzone.com
# ||       postmaster 11.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 11.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d6228)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d5868)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e4dc8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d92b8)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9bb4e8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 11.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.33.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 11.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=11.spf1-test.mailzone.com
# |||      postmaster 11.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 11.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 11.spf1-test.mailzone.com header_comment: spf_source = domain of 11.spf1-test.mailzone.com
# |||      postmaster 11.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 29 got: "softfail" (t/00_all.t at line 127 fail #26)
#    Expected: "fail"
# Detailed debug log for test(s) 29:
# |         12.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=12.spf1-test.mailzone.com, helo=12.spf1-test.mailzone.com
# |        postmaster 12.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   myquery: doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 12.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 12.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9aea1438)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9c0c90)
# ||       postmaster spf.messagingengine.com clone:               sender = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d6228)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9e4fa8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9d1f48)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 12.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 12.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 12.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source = domain of 12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 30 got: "softfail" (t/00_all.t at line 127 fail #27)
#    Expected: "pass"
# Detailed debug log for test(s) 30:
# |         12.spf1-test.mailzone.com new: ipv4=192.0.2.10, sender=12.spf1-test.mailzone.com, helo=12.spf1-test.mailzone.com
# |        postmaster 12.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   myquery: doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 12.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 12.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 10.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e5428)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb668)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c5040)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d9210)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.10
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9687f8)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.10.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 12.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 12.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source = domain of 12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 31 got: "softfail" (t/00_all.t at line 127 fail #28)
#    Expected: "pass"
# Detailed debug log for test(s) 31:
# |         12.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=12.spf1-test.mailzone.com, helo=12.spf1-test.mailzone.com
# |        postmaster 12.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   myquery: doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 12.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 12.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9c0d98)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba04f48)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e4d08)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9e4900)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9e50c8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.33.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 12.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 12.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source = domain of 12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 32 got: "softfail" (t/00_all.t at line 127 fail #29)
#    Expected: "fail"
# Detailed debug log for test(s) 32:
# |         12.spf1-test.mailzone.com new: ipv4=208.210.124.192, sender=12.spf1-test.mailzone.com, helo=12.spf1-test.mailzone.com
# |        postmaster 12.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   myquery: doing TXT query on 12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 12.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 12.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 12.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=12.spf1-test.mailzone.com
# ||       postmaster 12.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 12.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 192.124.210.208
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e4d50)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb8c0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9aea1378)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.192
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 12.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9a9eb0)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e4e28)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.192 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.192 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 12.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 12.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source = domain of 12.spf1-test.mailzone.com
# |||      postmaster 12.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 33 got: "softfail" (t/00_all.t at line 127 fail #30)
#    Expected: "fail"
# Detailed debug log for test(s) 33:
# |         13.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=13.spf1-test.mailzone.com, helo=13.spf1-test.mailzone.com
# |        postmaster 13.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   myquery: doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 13.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 13.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e4c18)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9aa930)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bfc80)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bb668)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d1b58)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                 helo = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 13.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 13.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source = domain of 13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 34 got: "softfail" (t/00_all.t at line 127 fail #31)
#    Expected: "pass"
# Detailed debug log for test(s) 34:
# |         13.spf1-test.mailzone.com new: ipv4=192.0.2.10, sender=13.spf1-test.mailzone.com, helo=13.spf1-test.mailzone.com
# |        postmaster 13.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   myquery: doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 13.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 13.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e5368)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.10
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba051d0)
# ||       postmaster spf.messagingengine.com clone:               sender = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 10.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba04f48)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba05800)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d1498)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.10.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 13.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 13.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source = domain of 13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 35 got: "softfail" (t/00_all.t at line 127 fail #32)
#    Expected: "pass"
# Detailed debug log for test(s) 35:
# |         13.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=13.spf1-test.mailzone.com, helo=13.spf1-test.mailzone.com
# |        postmaster 13.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   myquery: doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 13.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 13.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d1558)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba05878)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb530)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d1498)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba05260)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.33.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 13.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 13.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source = domain of 13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 36 got: "softfail" (t/00_all.t at line 127 fail #33)
#    Expected: "fail"
# Detailed debug log for test(s) 36:
# |         13.spf1-test.mailzone.com new: ipv4=208.210.124.192, sender=13.spf1-test.mailzone.com, helo=13.spf1-test.mailzone.com
# |        postmaster 13.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   myquery: doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 13.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 13.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9d58c8)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 192.124.210.208
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d1498)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba05ad0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba056c8)
# ||       postmaster spf.messagingengine.com clone:               sender = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.192
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba05620)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.192.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 13.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070175
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 13.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source = domain of 13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 37 got: "softfail" (t/00_all.t at line 127 fail #34)
#    Expected: "pass"
# Detailed debug log for test(s) 37:
# |         13.spf1-test.mailzone.com new: ipv4=192.0.2.40, sender=13.spf1-test.mailzone.com, helo=13.spf1-test.mailzone.com
# |        postmaster 13.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   myquery: doing TXT query on 13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 13.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 13.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 13.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=13.spf1-test.mailzone.com
# ||       postmaster 13.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 13.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba05680)
# ||       postmaster spf.messagingengine.com clone:               sender = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.40
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c59d0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 13.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba057d0)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 40.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d1498)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba05848)
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.40 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.40 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 13.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 13.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source = domain of 13.spf1-test.mailzone.com
# |||      postmaster 13.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 38 got: "softfail" (t/00_all.t at line 127 fail #35)
#    Expected: "fail"
# Detailed debug log for test(s) 38:
# |         14.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=14.spf1-test.mailzone.com, helo=14.spf1-test.mailzone.com
# |        postmaster 14.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   myquery: doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 14.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 14.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba058c0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9e5158)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e4ed0)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08068)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba05290)
# ||       postmaster spf.messagingengine.com clone:               sender = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 14.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 14.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 14.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source = domain of 14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 39 got: "softfail" (t/00_all.t at line 127 fail #36)
#    Expected: "pass"
# Detailed debug log for test(s) 39:
# |         14.spf1-test.mailzone.com new: ipv4=192.0.2.10, sender=14.spf1-test.mailzone.com, helo=14.spf1-test.mailzone.com
# |        postmaster 14.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   myquery: doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 14.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 14.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 10.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba05578)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba08578)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9aea15e8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba056b0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.10
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e4a20)
# ||       postmaster spf.messagingengine.com clone:               sender = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.10.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 14.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 14.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source = domain of 14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 40 got: "softfail" (t/00_all.t at line 127 fail #37)
#    Expected: "pass"
# Detailed debug log for test(s) 40:
# |         14.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=14.spf1-test.mailzone.com, helo=14.spf1-test.mailzone.com
# |        postmaster 14.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   myquery: doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 14.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 14.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba057e8)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba05b48)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba05c38)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba086b0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e5440)
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.33.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 14.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070174
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 14.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source = domain of 14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 41 got: "softfail" (t/00_all.t at line 127 fail #38)
#    Expected: "fail"
# Detailed debug log for test(s) 41:
# |         14.spf1-test.mailzone.com new: ipv4=208.210.124.192, sender=14.spf1-test.mailzone.com, helo=14.spf1-test.mailzone.com
# |        postmaster 14.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   myquery: doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 14.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 14.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba081d0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba05b48)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 192.124.210.208
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08128)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.192
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d1888)
# ||       postmaster spf.messagingengine.com clone:               sender = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08338)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.192.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 14.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070175
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 14.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source = domain of 14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 42 got: "softfail" (t/00_all.t at line 127 fail #39)
#    Expected: "pass"
# Detailed debug log for test(s) 42:
# |         14.spf1-test.mailzone.com new: ipv4=192.0.2.40, sender=14.spf1-test.mailzone.com, helo=14.spf1-test.mailzone.com
# |        postmaster 14.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   myquery: doing TXT query on 14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 14.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 14.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 14.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=14.spf1-test.mailzone.com
# ||       postmaster 14.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 14.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.40
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba05b00)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba04d20)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 14.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 40.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08380)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb740)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9e4c18)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.40.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 14.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070175
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 14.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source = domain of 14.spf1-test.mailzone.com
# |||      postmaster 14.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 43 got: "softfail" (t/00_all.t at line 127 fail #40)
#    Expected: "fail"
# Detailed debug log for test(s) 43:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e5170)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba084b8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba081e8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba089b0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba08140)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 44 got: "softfail" (t/00_all.t at line 127 fail #41)
#    Expected: "pass"
# Detailed debug log for test(s) 44:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.120, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9aea1bd0)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.120
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08cf8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba083e0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba05398)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9a9f40)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 120.2.0.192
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.120 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.120 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 45 got: "softfail" (t/00_all.t at line 127 fail #42)
#    Expected: "fail"
# Detailed debug log for test(s) 45:
# |         21.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=21.spf1-test.mailzone.com, helo=21.spf1-test.mailzone.com
# |        postmaster 21.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   myquery: doing TXT query on 21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 21.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 21.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 21.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba05920)
# ||       postmaster spf.messagingengine.com clone:               sender = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba05c98)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba04df8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08e00)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba05b60)
# ||       postmaster spf.messagingengine.com clone:                local = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 21.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=21.spf1-test.mailzone.com
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 21.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 21.spf1-test.mailzone.com header_comment: spf_source = domain of 21.spf1-test.mailzone.com
# |||      postmaster 21.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 46 got: "softfail" (t/00_all.t at line 127 fail #43)
#    Expected: "fail"
# Detailed debug log for test(s) 46:
# |         21.spf1-test.mailzone.com new: ipv4=192.0.2.121, sender=21.spf1-test.mailzone.com, helo=21.spf1-test.mailzone.com
# |        postmaster 21.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   myquery: doing TXT query on 21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 21.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 21.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 21.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d8e0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08e00)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 121.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba084b8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08860)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.121
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0daa8)
# ||       postmaster spf.messagingengine.com clone:               sender = 21.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.121 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.121 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 21.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=21.spf1-test.mailzone.com
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 21.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 21.spf1-test.mailzone.com header_comment: spf_source = domain of 21.spf1-test.mailzone.com
# |||      postmaster 21.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 47 got: "softfail" (t/00_all.t at line 127 fail #44)
#    Expected: "pass"
# Detailed debug log for test(s) 47:
# |         21.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=21.spf1-test.mailzone.com, helo=21.spf1-test.mailzone.com
# |        postmaster 21.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   myquery: doing TXT query on 21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 21.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 21.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 21.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 21.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=21.spf1-test.mailzone.com
# ||       postmaster 21.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 21.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0d538)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:               sender = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba08728)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08f38)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba08ab8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba055a8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 21.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.200 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.200 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 21.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=21.spf1-test.mailzone.com
# |||      postmaster 21.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 21.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 21.spf1-test.mailzone.com header_comment: spf_source = domain of 21.spf1-test.mailzone.com
# |||      postmaster 21.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 48 got: "softfail" (t/00_all.t at line 127 fail #45)
#    Expected: "fail"
# Detailed debug log for test(s) 48:
# |         22.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=22.spf1-test.mailzone.com, helo=22.spf1-test.mailzone.com
# |        postmaster 22.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   myquery: doing TXT query on 22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 22.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 22.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 22.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba082c0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d1b58)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba05c98)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08290)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e078)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 22.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=22.spf1-test.mailzone.com
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 22.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 22.spf1-test.mailzone.com header_comment: spf_source = domain of 22.spf1-test.mailzone.com
# |||      postmaster 22.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 49 got: "softfail" (t/00_all.t at line 127 fail #46)
#    Expected: "pass"
# Detailed debug log for test(s) 49:
# |         22.spf1-test.mailzone.com new: ipv4=192.0.2.122, sender=22.spf1-test.mailzone.com, helo=22.spf1-test.mailzone.com
# |        postmaster 22.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   myquery: doing TXT query on 22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 22.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 22.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 22.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0dca0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e210)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.122
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba088d8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d670)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba05320)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 122.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 22.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.122 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.122 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 22.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=22.spf1-test.mailzone.com
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 22.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 22.spf1-test.mailzone.com header_comment: spf_source = domain of 22.spf1-test.mailzone.com
# |||      postmaster 22.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 50 got: "softfail" (t/00_all.t at line 127 fail #47)
#    Expected: "pass"
# Detailed debug log for test(s) 50:
# |         22.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=22.spf1-test.mailzone.com, helo=22.spf1-test.mailzone.com
# |        postmaster 22.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   myquery: doing TXT query on 22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 22.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 22.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 22.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 22.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=22.spf1-test.mailzone.com
# ||       postmaster 22.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 22.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08140)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0e1b0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba0dd60)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08908)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba08db8)
# ||       postmaster spf.messagingengine.com clone:               sender = 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 22.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 22.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 22.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=22.spf1-test.mailzone.com
# |||      postmaster 22.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 22.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 22.spf1-test.mailzone.com header_comment: spf_source = domain of 22.spf1-test.mailzone.com
# |||      postmaster 22.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 51 got: "softfail" (t/00_all.t at line 127 fail #48)
#    Expected: "fail"
# Detailed debug log for test(s) 51:
# |         30.spf1-test.mailzone.com new: ipv4=64.236.24.4, sender=30.spf1-test.mailzone.com, helo=30.spf1-test.mailzone.com
# |        postmaster 30.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 30.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 30.spf1-test.mailzone.com
# ||       postmaster 30.spf1-test.mailzone.com   myquery: doing TXT query on 30.spf1-test.mailzone.com
# ||       postmaster 30.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 30.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 30.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 30.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 30.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 30.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 30.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=30.spf1-test.mailzone.com
# ||       postmaster 30.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 30.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 4.24.236.64
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08d70)
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d1e28)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0da78)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 64.236.24.4
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e360)
# ||       postmaster spf.messagingengine.com clone:               sender = 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba10e40)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 64.236.24.4 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 64.236.24.4 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 30.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=30.spf1-test.mailzone.com
# |||      postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 30.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 30.spf1-test.mailzone.com header_comment: spf_source = domain of 30.spf1-test.mailzone.com
# |||      postmaster 30.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 52 got: "softfail" (t/00_all.t at line 127 fail #49)
#    Expected: "pass"
# Detailed debug log for test(s) 52:
# |         30.spf1-test.mailzone.com new: ipv4=208.210.124.130, sender=30.spf1-test.mailzone.com, helo=30.spf1-test.mailzone.com
# |        postmaster 30.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 30.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 30.spf1-test.mailzone.com
# ||       postmaster 30.spf1-test.mailzone.com   myquery: doing TXT query on 30.spf1-test.mailzone.com
# ||       postmaster 30.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 30.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 30.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 30.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 30.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 30.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 30.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=30.spf1-test.mailzone.com
# ||       postmaster 30.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 30.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.124.210.208
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba0d4d8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0e468)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba04df8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0e060)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.130
# ||       postmaster spf.messagingengine.com clone:               sender = 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e198)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 30.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.130 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.130 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 30.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=30.spf1-test.mailzone.com
# |||      postmaster 30.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 30.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 30.spf1-test.mailzone.com header_comment: spf_source = domain of 30.spf1-test.mailzone.com
# |||      postmaster 30.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 53 got: "softfail" (t/00_all.t at line 127 fail #50)
#    Expected: "fail"
# Detailed debug log for test(s) 53:
# |         31.spf1-test.mailzone.com new: ipv4=64.236.24.4, sender=31.spf1-test.mailzone.com, helo=31.spf1-test.mailzone.com
# |        postmaster 31.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   myquery: doing TXT query on 31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 31.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 31.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 31.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08908)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 4.24.236.64
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11050)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0e090)
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e1f8)
# ||       postmaster spf.messagingengine.com clone:               sender = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 64.236.24.4
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11080)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 64.236.24.4.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 31.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=31.spf1-test.mailzone.com
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 31.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 31.spf1-test.mailzone.com header_comment: spf_source = domain of 31.spf1-test.mailzone.com
# |||      postmaster 31.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 54 got: "softfail" (t/00_all.t at line 127 fail #51)
#    Expected: "pass"
# Detailed debug log for test(s) 54:
# |         31.spf1-test.mailzone.com new: ipv4=208.210.124.130, sender=31.spf1-test.mailzone.com, helo=31.spf1-test.mailzone.com
# |        postmaster 31.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   myquery: doing TXT query on 31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 31.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 31.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 31.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba11320)
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.130
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0d748)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0dec8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba11098)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba10e40)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.124.210.208
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 31.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=31.spf1-test.mailzone.com
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 31.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 31.spf1-test.mailzone.com header_comment: spf_source = domain of 31.spf1-test.mailzone.com
# |||      postmaster 31.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 55 got: "softfail" (t/00_all.t at line 127 fail #52)
#    Expected: "pass"
# Detailed debug log for test(s) 55:
# |         31.spf1-test.mailzone.com new: ipv4=208.210.124.192, sender=31.spf1-test.mailzone.com, helo=31.spf1-test.mailzone.com
# |        postmaster 31.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   myquery: doing TXT query on 31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 31.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 31.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 31.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 31.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=31.spf1-test.mailzone.com
# ||       postmaster 31.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 31.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d598)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0d9e8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 192.124.210.208
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba0def8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.192
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 31.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba11878)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0e258)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.192.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 31.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070175
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=31.spf1-test.mailzone.com
# |||      postmaster 31.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 31.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 31.spf1-test.mailzone.com header_comment: spf_source = domain of 31.spf1-test.mailzone.com
# |||      postmaster 31.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 56 got: "softfail" (t/00_all.t at line 127 fail #53)
#    Expected: "fail"
# Detailed debug log for test(s) 56:
# |         32.spf1-test.mailzone.com new: ipv4=64.236.24.4, sender=32.spf1-test.mailzone.com, helo=32.spf1-test.mailzone.com
# |        postmaster 32.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   myquery: doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 32.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 32.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11938)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0da90)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 64.236.24.4
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba112c0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 4.24.236.64
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0dce8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d9a0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                 helo = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 64.236.24.4.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 32.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 32.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source = domain of 32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 57 got: "softfail" (t/00_all.t at line 127 fail #54)
#    Expected: "pass"
# Detailed debug log for test(s) 57:
# |         32.spf1-test.mailzone.com new: ipv4=208.210.124.130, sender=32.spf1-test.mailzone.com, helo=32.spf1-test.mailzone.com
# |        postmaster 32.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   myquery: doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 32.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 32.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11a70)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.130
# ||       postmaster spf.messagingengine.com clone:               sender = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0dc88)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba080f8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11620)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.124.210.208
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba117b8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 32.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 32.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 32.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source = domain of 32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 58 got: "softfail" (t/00_all.t at line 127 fail #55)
#    Expected: "pass"
# Detailed debug log for test(s) 58:
# |         32.spf1-test.mailzone.com new: ipv4=208.210.124.131, sender=32.spf1-test.mailzone.com, helo=32.spf1-test.mailzone.com
# |        postmaster 32.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   myquery: doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 32.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 32.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11ab8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0dd48)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e51a0)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 131.124.210.208
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11cb0)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba05410)
# ||       postmaster spf.messagingengine.com clone:               sender = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.131
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.131 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.131 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 32.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 32.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source = domain of 32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 59 got: "softfail" (t/00_all.t at line 127 fail #56)
#    Expected: "pass"
# Detailed debug log for test(s) 59:
# |         32.spf1-test.mailzone.com new: ipv4=208.210.124.192, sender=32.spf1-test.mailzone.com, helo=32.spf1-test.mailzone.com
# |        postmaster 32.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   myquery: doing TXT query on 32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 32.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 32.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 32.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=32.spf1-test.mailzone.com
# ||       postmaster 32.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 32.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08da0)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 192.124.210.208
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11c80)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d610)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               sender = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e078)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 32.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.192
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba052c0)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.192.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 32.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070175
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 32.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source = domain of 32.spf1-test.mailzone.com
# |||      postmaster 32.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 60 got: "softfail" (t/00_all.t at line 127 fail #57)
#    Expected: "pass"
# Detailed debug log for test(s) 60:
# |         40.spf1-test.mailzone.com new: ipv4=192.0.2.100, sender=40.spf1-test.mailzone.com, helo=40.spf1-test.mailzone.com
# |        postmaster 40.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   myquery: doing TXT query on 40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 40.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 40.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 40.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 100.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba11ad0)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba11128)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16770)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.100
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba11308)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba058a8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.100 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.100 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 40.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=40.spf1-test.mailzone.com
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 40.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 40.spf1-test.mailzone.com header_comment: spf_source = domain of 40.spf1-test.mailzone.com
# |||      postmaster 40.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 61 got: "softfail" (t/00_all.t at line 127 fail #58)
#    Expected: "pass"
# Detailed debug log for test(s) 61:
# |         40.spf1-test.mailzone.com new: ipv4=192.0.2.101, sender=40.spf1-test.mailzone.com, helo=40.spf1-test.mailzone.com
# |        postmaster 40.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   myquery: doing TXT query on 40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 40.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 40.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 40.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e4bb8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.101
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba169f8)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba16728)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 101.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16a10)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba16b30)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.101 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.101 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 40.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=40.spf1-test.mailzone.com
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 40.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 40.spf1-test.mailzone.com header_comment: spf_source = domain of 40.spf1-test.mailzone.com
# |||      postmaster 40.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 62 got: "softfail" (t/00_all.t at line 127 fail #59)
#    Expected: "fail"
# Detailed debug log for test(s) 62:
# |         40.spf1-test.mailzone.com new: ipv4=192.0.2.102, sender=40.spf1-test.mailzone.com, helo=40.spf1-test.mailzone.com
# |        postmaster 40.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   myquery: doing TXT query on 40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 40.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 40.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 40.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 40.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=40.spf1-test.mailzone.com
# ||       postmaster 40.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 40.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba05368)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba173e8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.102
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba11668)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 102.2.0.192
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16980)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17040)
# ||       postmaster spf.messagingengine.com clone:                 helo = 40.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.102 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.102 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 40.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=40.spf1-test.mailzone.com
# |||      postmaster 40.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 40.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 40.spf1-test.mailzone.com header_comment: spf_source = domain of 40.spf1-test.mailzone.com
# |||      postmaster 40.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 63 got: "softfail" (t/00_all.t at line 127 fail #60)
#    Expected: "fail"
# Detailed debug log for test(s) 63:
# |         41.spf1-test.mailzone.com new: ipv4=192.0.2.100, sender=41.spf1-test.mailzone.com, helo=41.spf1-test.mailzone.com
# |        postmaster 41.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   myquery: doing TXT query on 41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 41.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 41.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 41.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba16890)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba172e0)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.100
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16ec0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba118f0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba110f8)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 100.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 41.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.100.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 41.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=41.spf1-test.mailzone.com
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 41.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 41.spf1-test.mailzone.com header_comment: spf_source = domain of 41.spf1-test.mailzone.com
# |||      postmaster 41.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 64 got: "softfail" (t/00_all.t at line 127 fail #61)
#    Expected: "pass"
# Detailed debug log for test(s) 64:
# |         41.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=41.spf1-test.mailzone.com, helo=41.spf1-test.mailzone.com
# |        postmaster 41.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   myquery: doing TXT query on 41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 41.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 41.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 41.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba169f8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba11ba8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16b00)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba18b50)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba117a0)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 41.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=41.spf1-test.mailzone.com
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 41.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 41.spf1-test.mailzone.com header_comment: spf_source = domain of 41.spf1-test.mailzone.com
# |||      postmaster 41.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 65 got: "softfail" (t/00_all.t at line 127 fail #62)
#    Expected: "pass"
# Detailed debug log for test(s) 65:
# |         41.spf1-test.mailzone.com new: ipv4=192.0.2.111, sender=41.spf1-test.mailzone.com, helo=41.spf1-test.mailzone.com
# |        postmaster 41.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   myquery: doing TXT query on 41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 41.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 41.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 41.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 41.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=41.spf1-test.mailzone.com
# ||       postmaster 41.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 41.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.111
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba16740)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11a88)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 41.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 111.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba11c98)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba16f68)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16f20)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.111 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.111 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 41.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=41.spf1-test.mailzone.com
# |||      postmaster 41.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 41.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 41.spf1-test.mailzone.com header_comment: spf_source = domain of 41.spf1-test.mailzone.com
# |||      postmaster 41.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 66 got: "softfail" (t/00_all.t at line 127 fail #63)
#    Expected: "fail"
# Detailed debug log for test(s) 66:
# |         42.spf1-test.mailzone.com new: ipv4=192.0.2.100, sender=42.spf1-test.mailzone.com, helo=42.spf1-test.mailzone.com
# |        postmaster 42.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   myquery: doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 42.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 42.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba04d20)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11c68)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 100.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba16890)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.100
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba19150)
# ||       postmaster spf.messagingengine.com clone:               sender = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11c38)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.100.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 42.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 42.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source = domain of 42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 67 got: "softfail" (t/00_all.t at line 127 fail #64)
#    Expected: "pass"
# Detailed debug log for test(s) 67:
# |         42.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42.spf1-test.mailzone.com, helo=42.spf1-test.mailzone.com
# |        postmaster 42.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   myquery: doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 42.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 42.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18ec8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba192d0)
# ||       postmaster spf.messagingengine.com clone:               sender = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08cc8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba18bb0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba18b20)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 42.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.110.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 42.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 42.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source = domain of 42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 68 got: "softfail" (t/00_all.t at line 127 fail #65)
#    Expected: "pass"
# Detailed debug log for test(s) 68:
# |         42.spf1-test.mailzone.com new: ipv4=192.0.2.130, sender=42.spf1-test.mailzone.com, helo=42.spf1-test.mailzone.com
# |        postmaster 42.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   myquery: doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 42.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 42.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0d598)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0dc88)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.130
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba10ed0)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.2.0.192
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16f50)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba18c88)
# ||       postmaster spf.messagingengine.com clone:                 helo = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.130 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.130 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 42.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 42.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source = domain of 42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 69 got: "softfail" (t/00_all.t at line 127 fail #66)
#    Expected: "pass"
# Detailed debug log for test(s) 69:
# |         42.spf1-test.mailzone.com new: ipv4=192.0.2.131, sender=42.spf1-test.mailzone.com, helo=42.spf1-test.mailzone.com
# |        postmaster 42.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   myquery: doing TXT query on 42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 42.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 42.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 42.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=42.spf1-test.mailzone.com
# ||       postmaster 42.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 42.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.131
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e3a8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba166e0)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 42.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba18cd0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba18d00)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 131.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba16dd0)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.131 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.131 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 42.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 42.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source = domain of 42.spf1-test.mailzone.com
# |||      postmaster 42.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 70 got: "softfail" (t/00_all.t at line 127 fail #67)
#    Expected: "fail"
# Detailed debug log for test(s) 70:
# |         45.spf1-test.mailzone.com new: ipv4=192.0.2.140, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1dff8)
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.140
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18a90)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba17118)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 140.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11c50)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e058)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.140 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.140 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 71 got: "softfail" (t/00_all.t at line 127 fail #68)
#    Expected: "fail"
# Detailed debug log for test(s) 71:
# |         45.spf1-test.mailzone.com new: ipv4=192.0.2.145, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08968)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 145.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08a40)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba16e78)
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1e160)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e190)
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.145
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.145 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.145 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 72 got: "softfail" (t/00_all.t at line 127 fail #69)
#    Expected: "fail"
# Detailed debug log for test(s) 72:
# |         45.spf1-test.mailzone.com new: ipv4=192.0.2.146, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e5c8)
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.146
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0dc88)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba166e0)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 146.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba18f40)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17358)
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.146 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.146 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 73 got: "softfail" (t/00_all.t at line 127 fail #70)
#    Expected: "fail"
# Detailed debug log for test(s) 73:
# |         45.spf1-test.mailzone.com new: ipv4=192.0.2.147, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba058a8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.147
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e910)
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 147.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba18a90)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17520)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0e378)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.147 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.147 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 74 got: "softfail" (t/00_all.t at line 127 fail #71)
#    Expected: "fail"
# Detailed debug log for test(s) 74:
# |         45.spf1-test.mailzone.com new: ipv4=192.0.2.148, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0e078)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.148
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1eb80)
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e100)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba1e490)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 148.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1e160)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.148 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.148 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 75 got: "softfail" (t/00_all.t at line 127 fail #72)
#    Expected: "pass"
# Detailed debug log for test(s) 75:
# |         45.spf1-test.mailzone.com new: ipv4=208.210.124.192, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9e4e40)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16938)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 192.124.210.208
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba0dc88)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba174a8)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.192
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e4d8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.192.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070175
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 76 got: "softfail" (t/00_all.t at line 127 fail #73)
#    Expected: "pass"
# Detailed debug log for test(s) 76:
# |         45.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=45.spf1-test.mailzone.com, helo=45.spf1-test.mailzone.com
# |        postmaster 45.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   myquery: doing TXT query on 45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 45.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 45.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 45.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=45.spf1-test.mailzone.com
# ||       postmaster 45.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 45.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba195a0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba19318)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1e340)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e9d0)
# ||       postmaster spf.messagingengine.com clone:               sender = 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 45.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18e98)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 45.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 45.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source = domain of 45.spf1-test.mailzone.com
# |||      postmaster 45.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 77 got: "softfail" (t/00_all.t at line 127 fail #74)
#    Expected: "unknown"
# Detailed debug log for test(s) 77:
# |         50.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=50.spf1-test.mailzone.com, helo=50.spf1-test.mailzone.com
# |        postmaster 50.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 50.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 50.spf1-test.mailzone.com
# ||       postmaster 50.spf1-test.mailzone.com   myquery: doing TXT query on 50.spf1-test.mailzone.com
# ||       postmaster 50.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 50.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 50.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 50.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 50.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 50.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 50.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 50.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=50.spf1-test.mailzone.com
# ||       postmaster 50.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 50.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 50.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba19630)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 50.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 50.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba119f8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 50.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba19318)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e190)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba0dd48)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 50.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 50.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 50.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=50.spf1-test.mailzone.com
# |||      postmaster 50.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 50.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 50.spf1-test.mailzone.com header_comment: spf_source = domain of 50.spf1-test.mailzone.com
# |||      postmaster 50.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 78 got: "softfail" (t/00_all.t at line 127 fail #75)
#    Expected: "fail"
# Detailed debug log for test(s) 78:
# |         51.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=51.spf1-test.mailzone.com, helo=51.spf1-test.mailzone.com
# |        postmaster 51.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 51.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 51.spf1-test.mailzone.com
# ||       postmaster 51.spf1-test.mailzone.com   myquery: doing TXT query on 51.spf1-test.mailzone.com
# ||       postmaster 51.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 51.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 51.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 51.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 51.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 51.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 51.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=51.spf1-test.mailzone.com
# ||       postmaster 51.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 51.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb3e0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:               sender = 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e328)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1e6d0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba16a88)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba19318)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 51.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=51.spf1-test.mailzone.com
# |||      postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 51.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 51.spf1-test.mailzone.com header_comment: spf_source = domain of 51.spf1-test.mailzone.com
# |||      postmaster 51.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 79 got: "softfail" (t/00_all.t at line 127 fail #76)
#    Expected: "pass"
# Detailed debug log for test(s) 79:
# |         51.spf1-test.mailzone.com new: ipv4=192.0.2.130, sender=51.spf1-test.mailzone.com, helo=51.spf1-test.mailzone.com
# |        postmaster 51.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 51.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 51.spf1-test.mailzone.com
# ||       postmaster 51.spf1-test.mailzone.com   myquery: doing TXT query on 51.spf1-test.mailzone.com
# ||       postmaster 51.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 51.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 51.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 51.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 51.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 51.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 51.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=51.spf1-test.mailzone.com
# ||       postmaster 51.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 51.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e5b0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba19888)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1e478)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.130
# ||       postmaster spf.messagingengine.com clone:               sender = 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e880)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 51.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1ecb8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 51.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=51.spf1-test.mailzone.com
# |||      postmaster 51.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 51.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 51.spf1-test.mailzone.com header_comment: spf_source = domain of 51.spf1-test.mailzone.com
# |||      postmaster 51.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 80 got: "softfail" (t/00_all.t at line 127 fail #77)
#    Expected: "fail"
# Detailed debug log for test(s) 80:
# |         52.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=52.spf1-test.mailzone.com, helo=52.spf1-test.mailzone.com
# |        postmaster 52.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 52.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 52.spf1-test.mailzone.com
# ||       postmaster 52.spf1-test.mailzone.com   myquery: doing TXT query on 52.spf1-test.mailzone.com
# ||       postmaster 52.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 52.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 52.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 52.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 52.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 52.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 52.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=52.spf1-test.mailzone.com
# ||       postmaster 52.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 52.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0e198)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba192b8)
# ||       postmaster spf.messagingengine.com clone:               sender = 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba17490)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1eb20)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba1ed00)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 52.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=52.spf1-test.mailzone.com
# |||      postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 52.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 52.spf1-test.mailzone.com header_comment: spf_source = domain of 52.spf1-test.mailzone.com
# |||      postmaster 52.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 81 got: "softfail" (t/00_all.t at line 127 fail #78)
#    Expected: "pass"
# Detailed debug log for test(s) 81:
# |         52.spf1-test.mailzone.com new: ipv4=192.0.2.130, sender=52.spf1-test.mailzone.com, helo=52.spf1-test.mailzone.com
# |        postmaster 52.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 52.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 52.spf1-test.mailzone.com
# ||       postmaster 52.spf1-test.mailzone.com   myquery: doing TXT query on 52.spf1-test.mailzone.com
# ||       postmaster 52.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 52.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 52.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 52.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 52.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 52.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 52.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=52.spf1-test.mailzone.com
# ||       postmaster 52.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 52.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11d28)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0d598)
# ||       postmaster spf.messagingengine.com clone:               sender = 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.130
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 52.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba18fa0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba110b0)
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e5470)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 52.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 52.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=52.spf1-test.mailzone.com
# |||      postmaster 52.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 52.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 52.spf1-test.mailzone.com header_comment: spf_source = domain of 52.spf1-test.mailzone.com
# |||      postmaster 52.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 82 got: "softfail" (t/00_all.t at line 127 fail #79)
#    Expected: "unknown"
# Detailed debug log for test(s) 82:
# |         55.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=55.spf1-test.mailzone.com, helo=55.spf1-test.mailzone.com
# |        postmaster 55.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 55.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 55.spf1-test.mailzone.com
# ||       postmaster 55.spf1-test.mailzone.com   myquery: doing TXT query on 55.spf1-test.mailzone.com
# ||       postmaster 55.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 55.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 55.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 55.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 55.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 55.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 55.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=55.spf1-test.mailzone.com
# ||       postmaster 55.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 55.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba17238)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba17658)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba197c8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1ed60)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba116b0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 55.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=55.spf1-test.mailzone.com
# |||      postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 55.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 55.spf1-test.mailzone.com header_comment: spf_source = domain of 55.spf1-test.mailzone.com
# |||      postmaster 55.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 83 got: "softfail" (t/00_all.t at line 127 fail #80)
#    Expected: "unknown"
# Detailed debug log for test(s) 83:
# |         55.spf1-test.mailzone.com new: ipv4=192.0.2.130, sender=55.spf1-test.mailzone.com, helo=55.spf1-test.mailzone.com
# |        postmaster 55.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 55.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 55.spf1-test.mailzone.com
# ||       postmaster 55.spf1-test.mailzone.com   myquery: doing TXT query on 55.spf1-test.mailzone.com
# ||       postmaster 55.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 55.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 55.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 55.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 55.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 55.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 55.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=55.spf1-test.mailzone.com
# ||       postmaster 55.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 55.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba195a0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1ee08)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1ecd0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c0c48)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e100)
# ||       postmaster spf.messagingengine.com clone:               sender = 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 55.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.130
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 55.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 55.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=55.spf1-test.mailzone.com
# |||      postmaster 55.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 55.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 55.spf1-test.mailzone.com header_comment: spf_source = domain of 55.spf1-test.mailzone.com
# |||      postmaster 55.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 84 got: "softfail" (t/00_all.t at line 127 fail #81)
#    Expected: "unknown"
# Detailed debug log for test(s) 84:
# |         56.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=56.spf1-test.mailzone.com, helo=56.spf1-test.mailzone.com
# |        postmaster 56.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 56.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 56.spf1-test.mailzone.com
# ||       postmaster 56.spf1-test.mailzone.com   myquery: doing TXT query on 56.spf1-test.mailzone.com
# ||       postmaster 56.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 56.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 56.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 56.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 56.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 56.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 56.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 56.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=56.spf1-test.mailzone.com
# ||       postmaster 56.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 56.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba225a8)
# ||       postmaster spf.messagingengine.com clone:               sender = 56.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 56.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 56.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1eb50)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 56.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bfbc0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba195a0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17448)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 56.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 56.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 56.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=56.spf1-test.mailzone.com
# |||      postmaster 56.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 56.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 56.spf1-test.mailzone.com header_comment: spf_source = domain of 56.spf1-test.mailzone.com
# |||      postmaster 56.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 85 got: "softfail" (t/00_all.t at line 127 fail #82)
#    Expected: "unknown"
# Detailed debug log for test(s) 85:
# |         57.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=57.spf1-test.mailzone.com, helo=57.spf1-test.mailzone.com
# |        postmaster 57.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 57.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 57.spf1-test.mailzone.com
# ||       postmaster 57.spf1-test.mailzone.com   myquery: doing TXT query on 57.spf1-test.mailzone.com
# ||       postmaster 57.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 57.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 57.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 57.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 57.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 57.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 57.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=57.spf1-test.mailzone.com
# ||       postmaster 57.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 57.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba11bd8)
# ||       postmaster spf.messagingengine.com clone:               sender = 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22b90)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22680)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba1ece8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1eb20)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 57.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=57.spf1-test.mailzone.com
# |||      postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 57.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 57.spf1-test.mailzone.com header_comment: spf_source = domain of 57.spf1-test.mailzone.com
# |||      postmaster 57.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 86 got: "softfail" (t/00_all.t at line 127 fail #83)
#    Expected: "unknown"
# Detailed debug log for test(s) 86:
# |         57.spf1-test.mailzone.com new: ipv4=192.0.2.130, sender=57.spf1-test.mailzone.com, helo=57.spf1-test.mailzone.com
# |        postmaster 57.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 57.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 57.spf1-test.mailzone.com
# ||       postmaster 57.spf1-test.mailzone.com   myquery: doing TXT query on 57.spf1-test.mailzone.com
# ||       postmaster 57.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 57.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 57.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 57.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 57.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 57.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 57.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=57.spf1-test.mailzone.com
# ||       postmaster 57.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 57.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.130
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba18af0)
# ||       postmaster spf.messagingengine.com clone:               sender = 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11038)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 57.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1ee98)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba056f8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22848)
# ||       postmaster spf.messagingengine.com clone:                local = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 57.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=57.spf1-test.mailzone.com
# |||      postmaster 57.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 57.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 57.spf1-test.mailzone.com header_comment: spf_source = domain of 57.spf1-test.mailzone.com
# |||      postmaster 57.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 87 got: "softfail" (t/00_all.t at line 127 fail #84)
#    Expected: "unknown"
# Detailed debug log for test(s) 87:
# |         58.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=58.spf1-test.mailzone.com, helo=58.spf1-test.mailzone.com
# |        postmaster 58.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 58.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 58.spf1-test.mailzone.com
# ||       postmaster 58.spf1-test.mailzone.com   myquery: doing TXT query on 58.spf1-test.mailzone.com
# ||       postmaster 58.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 58.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 58.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 58.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 58.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 58.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 58.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 58.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=58.spf1-test.mailzone.com
# ||       postmaster 58.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 58.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba056f8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17238)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1ec88)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 58.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1df80)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba17358)
# ||       postmaster spf.messagingengine.com clone:               sender = 58.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 58.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 58.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 58.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 58.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 58.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=58.spf1-test.mailzone.com
# |||      postmaster 58.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 58.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 58.spf1-test.mailzone.com header_comment: spf_source = domain of 58.spf1-test.mailzone.com
# |||      postmaster 58.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 88 got: "softfail" (t/00_all.t at line 127 fail #85)
#    Expected: "unknown"
# Detailed debug log for test(s) 88:
# |         59.spf1-test.mailzone.com new: ipv4=192.0.2.130, sender=59.spf1-test.mailzone.com, helo=59.spf1-test.mailzone.com
# |        postmaster 59.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 59.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 59.spf1-test.mailzone.com
# ||       postmaster 59.spf1-test.mailzone.com   myquery: doing TXT query on 59.spf1-test.mailzone.com
# ||       postmaster 59.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 59.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 59.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 59.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 59.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 59.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 59.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 59.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=59.spf1-test.mailzone.com
# ||       postmaster 59.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 59.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22e00)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 59.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.130
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 59.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba10de0)
# ||       postmaster spf.messagingengine.com clone:               sender = 59.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba22bd8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25298)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 130.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22d58)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 59.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.130.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 59.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070177
# |||      postmaster 59.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 59.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=59.spf1-test.mailzone.com
# |||      postmaster 59.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 59.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 59.spf1-test.mailzone.com header_comment: spf_source = domain of 59.spf1-test.mailzone.com
# |||      postmaster 59.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 89 got: "softfail" (t/00_all.t at line 127 fail #86)
#    Expected: "fail"
# Detailed debug log for test(s) 89:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=droid@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        droid 70.spf1-test.mailzone.com localpart is droid
# ||       droid 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       droid 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       droid 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       droid 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       droid 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       droid 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       droid 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       droid 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       droid 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       droid 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       droid 70.spf1-test.mailzone.com   clone: new object:
# ||       droid spf.messagingengine.com clone:         lookup_count = 1
# ||       droid spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       droid spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1eb50)
# ||       droid spf.messagingengine.com clone:               sender = droid@70.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:           spf_source = domain of droid@70.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:              trusted = 
# ||       droid spf.messagingengine.com clone:                debug = 1
# ||       droid spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       droid spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       droid spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18f58)
# ||       droid spf.messagingengine.com clone:            localpart = droid
# ||       droid spf.messagingengine.com clone:       default_record = 
# ||       droid spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       droid spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       droid spf.messagingengine.com clone:  default_explanation = explanation
# ||       droid spf.messagingengine.com clone:                local = 
# ||       droid spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba18e98)
# ||       droid spf.messagingengine.com clone:           myhostname = k93focal
# ||       droid spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       droid spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba22c50)
# ||       droid spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25538)
# ||       droid spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       droid spf.messagingengine.com clone:                guess = 
# |||      droid spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      droid spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      droid spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      droid spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      droid spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      droid spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      droid spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      droid spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      droid spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      droid spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      droid spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      droid spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      droid spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      droid spf.messagingengine.com   saving result fail to cache point and returning.
# |||      droid 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      droid 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      droid 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      droid 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      droid 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      droid 70.spf1-test.mailzone.com header_comment: spf_source = domain of droid@70.spf1-test.mailzone.com
# |||      droid 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 90 got: "softfail" (t/00_all.t at line 127 fail #87)
#    Expected: "pass"
# Detailed debug log for test(s) 90:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=bob+1@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        bob+1 70.spf1-test.mailzone.com localpart is bob+1
# ||       bob+1 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       bob+1 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       bob+1 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       bob+1 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       bob+1 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       bob+1 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       bob+1 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       bob+1 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       bob+1 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       bob+1 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       bob+1 70.spf1-test.mailzone.com   clone: new object:
# ||       bob+1 spf.messagingengine.com clone:                debug = 1
# ||       bob+1 spf.messagingengine.com clone:              trusted = 
# ||       bob+1 spf.messagingengine.com clone:               sender = bob+1@70.spf1-test.mailzone.com
# ||       bob+1 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba22e48)
# ||       bob+1 spf.messagingengine.com clone:           spf_source = domain of bob+1@70.spf1-test.mailzone.com
# ||       bob+1 spf.messagingengine.com clone:         lookup_count = 1
# ||       bob+1 spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       bob+1 spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       bob+1 spf.messagingengine.com clone:       default_record = 
# ||       bob+1 spf.messagingengine.com clone:            localpart = bob+1
# ||       bob+1 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       bob+1 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       bob+1 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22cf8)
# ||       bob+1 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       bob+1 spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       bob+1 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25760)
# ||       bob+1 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       bob+1 spf.messagingengine.com clone:                guess = 
# ||       bob+1 spf.messagingengine.com clone:           myhostname = k93focal
# ||       bob+1 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       bob+1 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba22da0)
# ||       bob+1 spf.messagingengine.com clone:  default_explanation = explanation
# ||       bob+1 spf.messagingengine.com clone:                local = 
# ||       bob+1 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba254d8)
# ||       bob+1 spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# |||      bob+1 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      bob+1 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      bob+1 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      bob+1 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      bob+1 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      bob+1 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      bob+1 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      bob+1 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      bob+1 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      bob+1 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      bob+1 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      bob+1 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      bob+1 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      bob+1 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      bob+1 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      bob+1 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      bob+1 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      bob+1 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      bob+1 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      bob+1 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      bob+1 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      bob+1 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      bob+1 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      bob+1 70.spf1-test.mailzone.com header_comment: spf_source = domain of bob+1@70.spf1-test.mailzone.com
# |||      bob+1 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 91 got: "softfail" (t/00_all.t at line 127 fail #88)
#    Expected: "pass"
# Detailed debug log for test(s) 91:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=bob+2@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        bob+2 70.spf1-test.mailzone.com localpart is bob+2
# ||       bob+2 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       bob+2 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       bob+2 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       bob+2 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       bob+2 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       bob+2 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       bob+2 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       bob+2 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       bob+2 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       bob+2 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       bob+2 70.spf1-test.mailzone.com   clone: new object:
# ||       bob+2 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       bob+2 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba225d8)
# ||       bob+2 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       bob+2 spf.messagingengine.com clone:       default_record = 
# ||       bob+2 spf.messagingengine.com clone:            localpart = bob+2
# ||       bob+2 spf.messagingengine.com clone:           spf_source = domain of bob+2@70.spf1-test.mailzone.com
# ||       bob+2 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba26210)
# ||       bob+2 spf.messagingengine.com clone:               sender = bob+2@70.spf1-test.mailzone.com
# ||       bob+2 spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       bob+2 spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       bob+2 spf.messagingengine.com clone:         lookup_count = 1
# ||       bob+2 spf.messagingengine.com clone:                debug = 1
# ||       bob+2 spf.messagingengine.com clone:              trusted = 
# ||       bob+2 spf.messagingengine.com clone:  default_explanation = explanation
# ||       bob+2 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba16878)
# ||       bob+2 spf.messagingengine.com clone:                local = 
# ||       bob+2 spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       bob+2 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       bob+2 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25a18)
# ||       bob+2 spf.messagingengine.com clone:                guess = 
# ||       bob+2 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25ce8)
# ||       bob+2 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       bob+2 spf.messagingengine.com clone:           myhostname = k93focal
# ||       bob+2 spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       bob+2 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      bob+2 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      bob+2 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      bob+2 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      bob+2 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      bob+2 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      bob+2 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      bob+2 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      bob+2 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      bob+2 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      bob+2 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      bob+2 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      bob+2 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      bob+2 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      bob+2 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      bob+2 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      bob+2 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      bob+2 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      bob+2 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      bob+2 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      bob+2 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      bob+2 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      bob+2 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      bob+2 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      bob+2 70.spf1-test.mailzone.com header_comment: spf_source = domain of bob+2@70.spf1-test.mailzone.com
# |||      bob+2 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 92 got: "softfail" (t/00_all.t at line 127 fail #89)
#    Expected: "pass"
# Detailed debug log for test(s) 92:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=bob@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        bob 70.spf1-test.mailzone.com localpart is bob
# ||       bob 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       bob 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       bob 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       bob 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       bob 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       bob 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       bob 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       bob 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       bob 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       bob 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       bob 70.spf1-test.mailzone.com   clone: new object:
# ||       bob spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       bob spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       bob spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba22de8)
# ||       bob spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       bob spf.messagingengine.com clone:           myhostname = k93focal
# ||       bob spf.messagingengine.com clone:                guess = 
# ||       bob spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba22a58)
# ||       bob spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       bob spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       bob spf.messagingengine.com clone:  default_explanation = explanation
# ||       bob spf.messagingengine.com clone:                local = 
# ||       bob spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22950)
# ||       bob spf.messagingengine.com clone:              trusted = 
# ||       bob spf.messagingengine.com clone:                debug = 1
# ||       bob spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       bob spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       bob spf.messagingengine.com clone:         lookup_count = 1
# ||       bob spf.messagingengine.com clone:           spf_source = domain of bob@70.spf1-test.mailzone.com
# ||       bob spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba29718)
# ||       bob spf.messagingengine.com clone:               sender = bob@70.spf1-test.mailzone.com
# ||       bob spf.messagingengine.com clone:            localpart = bob
# ||       bob spf.messagingengine.com clone:       default_record = 
# ||       bob spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       bob spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       bob spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25b80)
# |||      bob spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      bob spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      bob spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      bob spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      bob spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      bob spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      bob spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      bob spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      bob spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      bob spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      bob spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      bob spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      bob spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      bob spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      bob spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      bob spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      bob spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      bob spf.messagingengine.com   saving result fail to cache point and returning.
# |||      bob 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      bob 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      bob 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      bob 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      bob 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      bob 70.spf1-test.mailzone.com header_comment: spf_source = domain of bob@70.spf1-test.mailzone.com
# |||      bob 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 93 got: "softfail" (t/00_all.t at line 127 fail #90)
#    Expected: "fail"
# Detailed debug log for test(s) 93:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=joe+1@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        joe+1 70.spf1-test.mailzone.com localpart is joe+1
# ||       joe+1 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       joe+1 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       joe+1 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       joe+1 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       joe+1 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       joe+1 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       joe+1 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       joe+1 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       joe+1 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       joe+1 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       joe+1 70.spf1-test.mailzone.com   clone: new object:
# ||       joe+1 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba29790)
# ||       joe+1 spf.messagingengine.com clone:               sender = joe+1@70.spf1-test.mailzone.com
# ||       joe+1 spf.messagingengine.com clone:           spf_source = domain of joe+1@70.spf1-test.mailzone.com
# ||       joe+1 spf.messagingengine.com clone:         lookup_count = 1
# ||       joe+1 spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       joe+1 spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       joe+1 spf.messagingengine.com clone:                debug = 1
# ||       joe+1 spf.messagingengine.com clone:              trusted = 
# ||       joe+1 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22320)
# ||       joe+1 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       joe+1 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       joe+1 spf.messagingengine.com clone:       default_record = 
# ||       joe+1 spf.messagingengine.com clone:            localpart = joe+1
# ||       joe+1 spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       joe+1 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       joe+1 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22ef0)
# ||       joe+1 spf.messagingengine.com clone:                local = 
# ||       joe+1 spf.messagingengine.com clone:  default_explanation = explanation
# ||       joe+1 spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       joe+1 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       joe+1 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba252f8)
# ||       joe+1 spf.messagingengine.com clone:                guess = 
# ||       joe+1 spf.messagingengine.com clone:           myhostname = k93focal
# ||       joe+1 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25850)
# ||       joe+1 spf.messagingengine.com clone:       last_dns_error = NOERROR
# |||      joe+1 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      joe+1 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      joe+1 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      joe+1 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      joe+1 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      joe+1 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      joe+1 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      joe+1 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      joe+1 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      joe+1 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      joe+1 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      joe+1 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      joe+1 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      joe+1 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      joe+1 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      joe+1 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      joe+1 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      joe+1 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      joe+1 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      joe+1 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      joe+1 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      joe+1 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      joe+1 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      joe+1 70.spf1-test.mailzone.com header_comment: spf_source = domain of joe+1@70.spf1-test.mailzone.com
# |||      joe+1 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 94 got: "softfail" (t/00_all.t at line 127 fail #91)
#    Expected: "fail"
# Detailed debug log for test(s) 94:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=joe-2@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        joe-2 70.spf1-test.mailzone.com localpart is joe-2
# ||       joe-2 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       joe-2 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       joe-2 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       joe-2 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       joe-2 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       joe-2 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       joe-2 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       joe-2 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       joe-2 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       joe-2 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       joe-2 70.spf1-test.mailzone.com   clone: new object:
# ||       joe-2 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       joe-2 spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       joe-2 spf.messagingengine.com clone:           myhostname = k93focal
# ||       joe-2 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       joe-2 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25b50)
# ||       joe-2 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba19630)
# ||       joe-2 spf.messagingengine.com clone:                guess = 
# ||       joe-2 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       joe-2 spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       joe-2 spf.messagingengine.com clone:  default_explanation = explanation
# ||       joe-2 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1e538)
# ||       joe-2 spf.messagingengine.com clone:                local = 
# ||       joe-2 spf.messagingengine.com clone:              trusted = 
# ||       joe-2 spf.messagingengine.com clone:                debug = 1
# ||       joe-2 spf.messagingengine.com clone:         lookup_count = 1
# ||       joe-2 spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       joe-2 spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       joe-2 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba299d0)
# ||       joe-2 spf.messagingengine.com clone:               sender = joe-2@70.spf1-test.mailzone.com
# ||       joe-2 spf.messagingengine.com clone:           spf_source = domain of joe-2@70.spf1-test.mailzone.com
# ||       joe-2 spf.messagingengine.com clone:            localpart = joe-2
# ||       joe-2 spf.messagingengine.com clone:       default_record = 
# ||       joe-2 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       joe-2 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       joe-2 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25a18)
# |||      joe-2 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      joe-2 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      joe-2 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      joe-2 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      joe-2 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      joe-2 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      joe-2 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      joe-2 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      joe-2 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      joe-2 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      joe-2 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      joe-2 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      joe-2 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      joe-2 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      joe-2 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      joe-2 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      joe-2 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      joe-2 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      joe-2 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      joe-2 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      joe-2 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      joe-2 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      joe-2 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      joe-2 70.spf1-test.mailzone.com header_comment: spf_source = domain of joe-2@70.spf1-test.mailzone.com
# |||      joe-2 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 95 got: "softfail" (t/00_all.t at line 127 fail #92)
#    Expected: "fail"
# Detailed debug log for test(s) 95:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=moe-1@70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        moe-1 70.spf1-test.mailzone.com localpart is moe-1
# ||       moe-1 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       moe-1 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       moe-1 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       moe-1 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       moe-1 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       moe-1 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       moe-1 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       moe-1 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       moe-1 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       moe-1 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       moe-1 70.spf1-test.mailzone.com   clone: new object:
# ||       moe-1 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       moe-1 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba29bb0)
# ||       moe-1 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       moe-1 spf.messagingengine.com clone:            localpart = moe-1
# ||       moe-1 spf.messagingengine.com clone:       default_record = 
# ||       moe-1 spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       moe-1 spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       moe-1 spf.messagingengine.com clone:         lookup_count = 1
# ||       moe-1 spf.messagingengine.com clone:           spf_source = domain of moe-1@70.spf1-test.mailzone.com
# ||       moe-1 spf.messagingengine.com clone:               sender = moe-1@70.spf1-test.mailzone.com
# ||       moe-1 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba29be0)
# ||       moe-1 spf.messagingengine.com clone:              trusted = 
# ||       moe-1 spf.messagingengine.com clone:                debug = 1
# ||       moe-1 spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       moe-1 spf.messagingengine.com clone:  default_explanation = explanation
# ||       moe-1 spf.messagingengine.com clone:                local = 
# ||       moe-1 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25b80)
# ||       moe-1 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       moe-1 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e700)
# ||       moe-1 spf.messagingengine.com clone:           myhostname = k93focal
# ||       moe-1 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       moe-1 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25a00)
# ||       moe-1 spf.messagingengine.com clone:                guess = 
# ||       moe-1 spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       moe-1 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      moe-1 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      moe-1 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      moe-1 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      moe-1 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      moe-1 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      moe-1 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      moe-1 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      moe-1 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      moe-1 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      moe-1 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      moe-1 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      moe-1 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      moe-1 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      moe-1 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      moe-1 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      moe-1 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      moe-1 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      moe-1 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      moe-1 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      moe-1 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      moe-1 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      moe-1 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      moe-1 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      moe-1 70.spf1-test.mailzone.com header_comment: spf_source = domain of moe-1@70.spf1-test.mailzone.com
# |||      moe-1 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 96 got: "softfail" (t/00_all.t at line 127 fail #93)
#    Expected: "pass"
# Detailed debug log for test(s) 96:
# |         70.spf1-test.mailzone.com new: ipv4=192.0.2.103, sender=70.spf1-test.mailzone.com, helo=70.spf1-test.mailzone.com
# |        postmaster 70.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 70.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 70.spf1-test.mailzone.com
# ||       postmaster 70.spf1-test.mailzone.com   myquery: doing TXT query on 70.spf1-test.mailzone.com
# ||       postmaster 70.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 70.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 70.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 70.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 70.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 70.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 70.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=70.spf1-test.mailzone.com
# ||       postmaster 70.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 70.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 70.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2a1b0)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 70.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 70.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.103
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25868)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 70.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22320)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 103.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba29aa8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25c70)
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.103 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 70.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 70.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=70.spf1-test.mailzone.com
# |||      postmaster 70.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 70.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 70.spf1-test.mailzone.com header_comment: spf_source = domain of 70.spf1-test.mailzone.com
# |||      postmaster 70.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 97 got: "softfail" (t/00_all.t at line 127 fail #94)
#    Expected: "fail"
# Detailed debug log for test(s) 97:
# |         80.spf1-test.mailzone.com new: ipv4=64.236.24.4, sender=80.spf1-test.mailzone.com, helo=80.spf1-test.mailzone.com
# |        postmaster 80.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   myquery: doing TXT query on 80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 80.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 80.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 80.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2a378)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 64.236.24.4
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25ad8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25a18)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 4.24.236.64
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba29d30)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba29808)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 64.236.24.4.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 80.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070176
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=80.spf1-test.mailzone.com
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 80.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 80.spf1-test.mailzone.com header_comment: spf_source = domain of 80.spf1-test.mailzone.com
# |||      postmaster 80.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 98 got: "softfail" (t/00_all.t at line 127 fail #95)
#    Expected: "pass"
# Detailed debug log for test(s) 98:
# |         80.spf1-test.mailzone.com new: ipv4=208.210.124.180, sender=80.spf1-test.mailzone.com, helo=80.spf1-test.mailzone.com
# |        postmaster 80.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   myquery: doing TXT query on 80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 80.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 80.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 80.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25328)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba29d30)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 180.124.210.208
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22128)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba29748)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.180
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2ca80)
# ||       postmaster spf.messagingengine.com clone:               sender = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 80.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.180 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.180 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 80.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=80.spf1-test.mailzone.com
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 80.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 80.spf1-test.mailzone.com header_comment: spf_source = domain of 80.spf1-test.mailzone.com
# |||      postmaster 80.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 99 got: "softfail" (t/00_all.t at line 127 fail #96)
#    Expected: "pass"
# Detailed debug log for test(s) 99:
# |         80.spf1-test.mailzone.com new: ipv4=192.0.2.80, sender=80.spf1-test.mailzone.com, helo=80.spf1-test.mailzone.com
# |        postmaster 80.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   myquery: doing TXT query on 80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 80.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 80.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 80.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 80.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=80.spf1-test.mailzone.com
# ||       postmaster 80.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 80.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba25748)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.80
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba29da8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 80.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bb2d8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 80.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba29c88)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2a138)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.80 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.80 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 80.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=80.spf1-test.mailzone.com
# |||      postmaster 80.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 80.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 80.spf1-test.mailzone.com header_comment: spf_source = domain of 80.spf1-test.mailzone.com
# |||      postmaster 80.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 100 got: "softfail" (t/00_all.t at line 127 fail #97)
#     Expected: "fail"
# Detailed debug log for test(s) 100:
# |         90.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=90.spf1-test.mailzone.com, helo=90.spf1-test.mailzone.com
# |        postmaster 90.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   myquery: doing TXT query on 90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 90.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 90.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 90.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e9d0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25448)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29790)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25ee0)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:               sender = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d098)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 90.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 90.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=90.spf1-test.mailzone.com
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 90.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 90.spf1-test.mailzone.com header_comment: spf_source = domain of 90.spf1-test.mailzone.com
# |||      postmaster 90.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 101 got: "softfail" (t/00_all.t at line 127 fail #98)
#     Expected: "fail"
# Detailed debug log for test(s) 101:
# |         90.spf1-test.mailzone.com new: ipv4=192.0.2.127, sender=90.spf1-test.mailzone.com, helo=90.spf1-test.mailzone.com
# |        postmaster 90.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   myquery: doing TXT query on 90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 90.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 90.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 90.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 127.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29748)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba296d0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2cc00)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.127
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d218)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25868)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.127 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.127 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 90.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=90.spf1-test.mailzone.com
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 90.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 90.spf1-test.mailzone.com header_comment: spf_source = domain of 90.spf1-test.mailzone.com
# |||      postmaster 90.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 102 got: "softfail" (t/00_all.t at line 127 fail #99)
#     Expected: "pass"
# Detailed debug log for test(s) 102:
# |         90.spf1-test.mailzone.com new: ipv4=192.0.2.129, sender=90.spf1-test.mailzone.com, helo=90.spf1-test.mailzone.com
# |        postmaster 90.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   myquery: doing TXT query on 90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 90.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 90.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 90.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 90.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=90.spf1-test.mailzone.com
# ||       postmaster 90.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 90.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2a120)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.129
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2cbe8)
# ||       postmaster spf.messagingengine.com clone:               sender = 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 90.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25970)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba1ebe0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 129.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25c88)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 90.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.129 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.129 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 90.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=90.spf1-test.mailzone.com
# |||      postmaster 90.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 90.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 90.spf1-test.mailzone.com header_comment: spf_source = domain of 90.spf1-test.mailzone.com
# |||      postmaster 90.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 103 got: "softfail" (t/00_all.t at line 127 fail #100)
#     Expected: "fail"
# Detailed debug log for test(s) 103:
# |         91.spf1-test.mailzone.com new: ipv4=192.168.1.1, sender=91.spf1-test.mailzone.com, helo=91.spf1-test.mailzone.com
# |        postmaster 91.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   myquery: doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 91.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 91.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.1.168.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25ee0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba29880)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2cc30)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2d368)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.168.1.1
# ||       postmaster spf.messagingengine.com clone:               sender = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d8f0)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.1.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.1.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 91.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source = domain of 91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 104 got: "softfail" (t/00_all.t at line 127 fail #101)
#     Expected: "pass"
# Detailed debug log for test(s) 104:
# |         91.spf1-test.mailzone.com new: ipv4=192.0.2.127, sender=91.spf1-test.mailzone.com, helo=91.spf1-test.mailzone.com
# |        postmaster 91.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   myquery: doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 91.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 91.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba311e8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25f10)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 127.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2ccc0)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.127
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d3f8)
# ||       postmaster spf.messagingengine.com clone:               sender = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22290)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.127.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 91.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070179
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 91.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source = domain of 91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 105 got: "softfail" (t/00_all.t at line 127 fail #102)
#     Expected: "fail"
# Detailed debug log for test(s) 105:
# |         91.spf1-test.mailzone.com new: ipv4=192.0.2.129, sender=91.spf1-test.mailzone.com, helo=91.spf1-test.mailzone.com
# |        postmaster 91.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   myquery: doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 91.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 91.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 129.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b902978)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba22f38)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25fa0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.129
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d4b8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba31230)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.129.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 91.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070179
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 91.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source = domain of 91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 106 got: "softfail" (t/00_all.t at line 127 fail #103)
#     Expected: "fail"
# Detailed debug log for test(s) 106:
# |         92.spf1-test.mailzone.com new: ipv4=192.168.2.1, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22b60)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2cf00)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.168.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29880)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.168.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba31200)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2a3f0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.2.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.2.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 107 got: "softfail" (t/00_all.t at line 127 fail #104)
#     Expected: "fail"
# Detailed debug log for test(s) 107:
# |         92.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2d0b0)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25310)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2ccd8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2d668)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2da40)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 108 got: "softfail" (t/00_all.t at line 127 fail #105)
#     Expected: "pass"
# Detailed debug log for test(s) 108:
# |         92.spf1-test.mailzone.com new: ipv4=192.0.2.129, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba31a58)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba31b90)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.129
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31230)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 129.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba1ebe0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba31968)
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.129.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070179
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 109 got: "softfail" (t/00_all.t at line 127 fail #106)
#     Expected: "neutral"
# Detailed debug log for test(s) 109:
# |         92.spf1-test.mailzone.com new: ipv4=192.0.2.193, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2a3a8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.193
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba312d8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2d7d0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 193.2.0.192
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2d758)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d5b0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.193 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.193 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 110 got: "softfail" (t/00_all.t at line 127 fail #107)
#     Expected: "pass"
# Detailed debug log for test(s) 110:
# |         95.spf1-test.mailzone.com new: ipv4=208.210.124.180, sender=95.spf1-test.mailzone.com, helo=95.spf1-test.mailzone.com
# |        postmaster 95.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 95.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 95.spf1-test.mailzone.com
# ||       postmaster 95.spf1-test.mailzone.com   myquery: doing TXT query on 95.spf1-test.mailzone.com
# ||       postmaster 95.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 95.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 95.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 95.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 95.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 95.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 95.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=95.spf1-test.mailzone.com
# ||       postmaster 95.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 95.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba111b8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.180
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba29850)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2a060)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba08a70)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2cd50)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 180.124.210.208
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.180.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 95.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070179
# |||      postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=95.spf1-test.mailzone.com
# |||      postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 95.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 95.spf1-test.mailzone.com header_comment: spf_source = domain of 95.spf1-test.mailzone.com
# |||      postmaster 95.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 111 got: "softfail" (t/00_all.t at line 127 fail #108)
#     Expected: "fail"
# Detailed debug log for test(s) 111:
# |         95.spf1-test.mailzone.com new: ipv4=208.210.124.1, sender=95.spf1-test.mailzone.com, helo=95.spf1-test.mailzone.com
# |        postmaster 95.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 95.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 95.spf1-test.mailzone.com
# ||       postmaster 95.spf1-test.mailzone.com   myquery: doing TXT query on 95.spf1-test.mailzone.com
# ||       postmaster 95.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 95.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 95.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 95.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 95.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 95.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 95.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=95.spf1-test.mailzone.com
# ||       postmaster 95.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 95.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:               sender = 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba31d10)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.1
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0da00)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 95.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba22c68)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba31668)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba1ed90)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.124.210.208
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 95.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=95.spf1-test.mailzone.com
# |||      postmaster 95.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 95.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 95.spf1-test.mailzone.com header_comment: spf_source = domain of 95.spf1-test.mailzone.com
# |||      postmaster 95.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 112 got: "softfail" (t/00_all.t at line 127 fail #109)
#     Expected: "fail"
# Detailed debug log for test(s) 112:
# |         96.spf1-test.mailzone.com new: ipv4=192.0.2.193, sender=96.spf1-test.mailzone.com, helo=96.spf1-test.mailzone.com
# |        postmaster 96.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 96.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 96.spf1-test.mailzone.com
# ||       postmaster 96.spf1-test.mailzone.com   myquery: doing TXT query on 96.spf1-test.mailzone.com
# ||       postmaster 96.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 96.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 96.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 96.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 96.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 96.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 96.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 96.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=96.spf1-test.mailzone.com
# ||       postmaster 96.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 96.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2d308)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.193
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 96.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 96.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 96.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2a498)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 193.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2d938)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba051e8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba22f38)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 96.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.193.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 96.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070180
# |||      postmaster 96.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 96.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=96.spf1-test.mailzone.com
# |||      postmaster 96.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 96.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 96.spf1-test.mailzone.com header_comment: spf_source = domain of 96.spf1-test.mailzone.com
# |||      postmaster 96.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 113 got: "softfail" (t/00_all.t at line 127 fail #110)
#     Expected: "pass"
# Detailed debug log for test(s) 113:
# |         97.spf1-test.mailzone.com new: ipv4=208.210.124.180, sender=97.spf1-test.mailzone.com, helo=97.spf1-test.mailzone.com
# |        postmaster 97.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 97.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 97.spf1-test.mailzone.com
# ||       postmaster 97.spf1-test.mailzone.com   myquery: doing TXT query on 97.spf1-test.mailzone.com
# ||       postmaster 97.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 97.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 97.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 97.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 97.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 97.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 97.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 97.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=97.spf1-test.mailzone.com
# ||       postmaster 97.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 97.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2cb88)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba315f0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba311e8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 180.124.210.208
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 97.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2cab0)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba320e8)
# ||       postmaster spf.messagingengine.com clone:               sender = 97.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 97.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.180
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 97.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.180.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 97.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070179
# |||      postmaster 97.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 97.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=97.spf1-test.mailzone.com
# |||      postmaster 97.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 97.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 97.spf1-test.mailzone.com header_comment: spf_source = domain of 97.spf1-test.mailzone.com
# |||      postmaster 97.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 114 got: "softfail" (t/00_all.t at line 127 fail #111)
#     Expected: "fail"
# Detailed debug log for test(s) 114:
# |         98.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=98.spf1-test.mailzone.com, helo=98.spf1-test.mailzone.com
# |        postmaster 98.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   myquery: doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 98.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 98.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31d58)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba313e0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba317a0)
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba26138)
# ||       postmaster spf.messagingengine.com clone:               sender = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2cd08)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 98.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 98.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source = domain of 98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 115 got: "softfail" (t/00_all.t at line 127 fail #112)
#     Expected: "pass"
# Detailed debug log for test(s) 115:
# |         98.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=98.spf1-test.mailzone.com, helo=98.spf1-test.mailzone.com
# |        postmaster 98.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   myquery: doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 98.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 98.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba22fe0)
# ||       postmaster spf.messagingengine.com clone:               sender = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba31548)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25ad8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba316b0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba31740)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.98 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.98 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 98.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source = domain of 98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 116 got: "softfail" (t/00_all.t at line 127 fail #113)
#     Expected: "pass"
# Detailed debug log for test(s) 116:
# |         98.spf1-test.mailzone.com new: ipv4=192.0.2.99, sender=98.spf1-test.mailzone.com, helo=98.spf1-test.mailzone.com
# |        postmaster 98.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   myquery: doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 98.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 98.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba35c88)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.99
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba227e8)
# ||       postmaster spf.messagingengine.com clone:               sender = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba312d8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba359d0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 99.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31fe0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 98.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.99 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.99 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 98.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source = domain of 98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 117 got: "softfail" (t/00_all.t at line 127 fail #114)
#     Expected: "pass"
# Detailed debug log for test(s) 117:
# |         98.spf1-test.mailzone.com new: ipv4=208.210.124.180, sender=98.spf1-test.mailzone.com, helo=98.spf1-test.mailzone.com
# |        postmaster 98.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   myquery: doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 98.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 98.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.180
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba364f8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba35b98)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2d788)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba05380)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 180.124.210.208
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31d88)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.180.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 98.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070179
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 98.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source = domain of 98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 118 got: "softfail" (t/00_all.t at line 127 fail #115)
#     Expected: "fail"
# Detailed debug log for test(s) 118:
# |         98.spf1-test.mailzone.com new: ipv4=208.210.124.1, sender=98.spf1-test.mailzone.com, helo=98.spf1-test.mailzone.com
# |        postmaster 98.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   myquery: doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 98.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 98.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31548)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.124.210.208
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba35af0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba365d0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                 helo = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba36408)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba31980)
# ||       postmaster spf.messagingengine.com clone:               sender = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 208.210.124.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 98.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070180
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 98.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source = domain of 98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 119 got: "softfail" (t/00_all.t at line 127 fail #116)
#     Expected: "pass"
# Detailed debug log for test(s) 119:
# |         98.spf1-test.mailzone.com new: ipv4=208.210.124.181, sender=98.spf1-test.mailzone.com, helo=98.spf1-test.mailzone.com
# |        postmaster 98.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   myquery: doing TXT query on 98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 98.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 98.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 98.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=98.spf1-test.mailzone.com
# ||       postmaster 98.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 98.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba11278)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba31830)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba36150)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 181.124.210.208
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d200)
# ||       postmaster spf.messagingengine.com clone:               sender = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 98.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 208.210.124.181
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba36378)
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.181 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 208.210.124.181 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 98.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source = domain of 98.spf1-test.mailzone.com
# |||      postmaster 98.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 120 got: "softfail" (t/00_all.t at line 127 fail #117)
#     Expected: "fail"
# Detailed debug log for test(s) 120:
# |         08.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=08.spf1-test.mailzone.com, helo=08.spf1-test.mailzone.com
# |        postmaster 08.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 08.spf1-test.mailzone.com   lookup: we have already processed 08.spf1-test.mailzone.com before with 192.0.2.1.
# ||       postmaster 08.spf1-test.mailzone.com   lookup: the cache entry is fresh; returning it.
# ||       postmaster 08.spf1-test.mailzone.com header_comment: spf_source = domain of 08.spf1-test.mailzone.com
# ||       postmaster 08.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 121 got: "softfail" (t/00_all.t at line 127 fail #118)
#     Expected: "fail"
# Detailed debug log for test(s) 121:
# |         09.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=09.spf1-test.mailzone.com, helo=09.spf1-test.mailzone.com
# |        postmaster 09.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 09.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 09.spf1-test.mailzone.com
# ||       postmaster 09.spf1-test.mailzone.com   myquery: doing TXT query on 09.spf1-test.mailzone.com
# ||       postmaster 09.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 09.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 09.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 09.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 09.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 09.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 09.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 09.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=09.spf1-test.mailzone.com
# ||       postmaster 09.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 09.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba31830)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 09.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 09.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba35ee0)
# ||       postmaster spf.messagingengine.com clone:               sender = 09.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba36378)
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba39f30)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba31500)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 09.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 09.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 09.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 09.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=09.spf1-test.mailzone.com
# |||      postmaster 09.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 09.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 09.spf1-test.mailzone.com header_comment: spf_source = domain of 09.spf1-test.mailzone.com
# |||      postmaster 09.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 122 got: "softfail" (t/00_all.t at line 127 fail #119)
#     Expected: "fail"
# Detailed debug log for test(s) 122:
# |         99.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=99.spf1-test.mailzone.com, helo=99.spf1-test.mailzone.com
# |        postmaster 99.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 99.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 99.spf1-test.mailzone.com
# ||       postmaster 99.spf1-test.mailzone.com   myquery: doing TXT query on 99.spf1-test.mailzone.com
# ||       postmaster 99.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 99.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 99.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 99.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 99.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 99.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 99.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 99.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=99.spf1-test.mailzone.com
# ||       postmaster 99.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 99.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 99.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 99.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 99.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba39ea0)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba35df0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 99.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29c70)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba36078)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba35fe8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 99.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 99.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 99.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=99.spf1-test.mailzone.com
# |||      postmaster 99.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 99.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 99.spf1-test.mailzone.com header_comment: spf_source = domain of 99.spf1-test.mailzone.com
# |||      postmaster 99.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 123 got: "softfail" (t/00_all.t at line 127 fail #120)
#     Expected: "fail"
# Detailed debug log for test(s) 123:
# |         100.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=100.spf1-test.mailzone.com, helo=100.spf1-test.mailzone.com
# |        postmaster 100.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   myquery: doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 100.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 100.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba35ac0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba36210)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba365d0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0db20)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba36060)
# ||       postmaster spf.messagingengine.com clone:               sender = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 100.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 100.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070173
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 100.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source = domain of 100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 124 got: "softfail" (t/00_all.t at line 127 fail #121)
#     Expected: "pass"
# Detailed debug log for test(s) 124:
# |         100.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=100.spf1-test.mailzone.com, helo=100.spf1-test.mailzone.com
# |        postmaster 100.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   myquery: doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 100.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 100.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba25be0)
# ||       postmaster spf.messagingengine.com clone:               sender = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba3a0e0)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba32040)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba35f88)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29ec8)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 100.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070181
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 100.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source = domain of 100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 125 got: "softfail" (t/00_all.t at line 127 fail #122)
#     Expected: "fail"
# Detailed debug log for test(s) 125:
# |         101.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=101.spf1-test.mailzone.com, helo=101.spf1-test.mailzone.com
# |        postmaster 101.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 101.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 101.spf1-test.mailzone.com
# ||       postmaster 101.spf1-test.mailzone.com   myquery: doing TXT query on 101.spf1-test.mailzone.com
# ||       postmaster 101.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 101.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 101.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 101.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 101.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 101.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 101.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=101.spf1-test.mailzone.com
# ||       postmaster 101.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 101.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba35eb0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba36828)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba35c40)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba31e48)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba313f8)
# ||       postmaster spf.messagingengine.com clone:               sender = 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 101.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070181
# |||      postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=101.spf1-test.mailzone.com
# |||      postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 101.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 101.spf1-test.mailzone.com header_comment: spf_source = domain of 101.spf1-test.mailzone.com
# |||      postmaster 101.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 126 got: "softfail" (t/00_all.t at line 127 fail #123)
#     Expected: "neutral"
# Detailed debug log for test(s) 126:
# |         102.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=102.spf1-test.mailzone.com, helo=102.spf1-test.mailzone.com
# |        postmaster 102.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 102.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 102.spf1-test.mailzone.com
# ||       postmaster 102.spf1-test.mailzone.com   myquery: doing TXT query on 102.spf1-test.mailzone.com
# ||       postmaster 102.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 102.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 102.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 102.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 102.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 102.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 102.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=102.spf1-test.mailzone.com
# ||       postmaster 102.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 102.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba315f0)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2cd08)
# ||       postmaster spf.messagingengine.com clone:               sender = 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba35df0)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba35eb0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba39ba0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 102.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 102.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070181
# |||      postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=102.spf1-test.mailzone.com
# |||      postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 102.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 102.spf1-test.mailzone.com header_comment: spf_source = domain of 102.spf1-test.mailzone.com
# |||      postmaster 102.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 127 got: "softfail" (t/00_all.t at line 127 fail #124)
#     Expected: "pass"
# Detailed debug log for test(s) 127:
# |         103.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=103.spf1-test.mailzone.com, helo=103.spf1-test.mailzone.com
# |        postmaster 103.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 103.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 103.spf1-test.mailzone.com
# ||       postmaster 103.spf1-test.mailzone.com   myquery: doing TXT query on 103.spf1-test.mailzone.com
# ||       postmaster 103.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 103.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 103.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 103.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 103.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 103.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 103.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=103.spf1-test.mailzone.com
# ||       postmaster 103.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 103.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08878)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3a398)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba32010)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2d110)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba36900)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                 helo = 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 103.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070181
# |||      postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=103.spf1-test.mailzone.com
# |||      postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 103.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 103.spf1-test.mailzone.com header_comment: spf_source = domain of 103.spf1-test.mailzone.com
# |||      postmaster 103.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 128 got: "softfail" (t/00_all.t at line 127 fail #125)
#     Expected: "unknown"
# Test 129 got: "explanation" (t/00_all.t at line 129 fail #2)
#     Expected: "SPF record error: loop encountered: 104.spf1-test.mailzone.com redirects to 105.spf1-test.mailzone.com redirects to 106.spf1-test.mailzone.com redirects to 107.spf1-test.mailzone.com includes 104.spf1-test.mailzone.com"
#  t/00_all.t line 129 is:            $ok = ok($smtp_comment,   $expected_smtp_comment  ) && $ok;
# Test 130 got: "transitioning domain of droid@104.spf1-test.mailzone.com does not designate 192.0.2.98 as permitted sender" (t/00_all.t at line 130 fail #2)
#     Expected: "error in processing during lookup of droid@104.spf1-test.mailzone.com"
# Detailed debug log for test(s) 128,129,130:
# |         104.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=droid@104.spf1-test.mailzone.com, helo=104.spf1-test.mailzone.com
# |        droid 104.spf1-test.mailzone.com localpart is droid
# ||       droid 104.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 104.spf1-test.mailzone.com
# ||       droid 104.spf1-test.mailzone.com   myquery: doing TXT query on 104.spf1-test.mailzone.com
# ||       droid 104.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 104.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       droid 104.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       droid 104.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       droid 104.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       droid 104.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       droid 104.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       droid 104.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=104.spf1-test.mailzone.com
# ||       droid 104.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       droid 104.spf1-test.mailzone.com   clone: new object:
# ||       droid spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       droid spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       droid spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba3aa10)
# ||       droid spf.messagingengine.com clone:            localpart = droid
# ||       droid spf.messagingengine.com clone:       default_record = 
# ||       droid spf.messagingengine.com clone:          orig_domain = 104.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       droid spf.messagingengine.com clone:         lookup_count = 1
# ||       droid spf.messagingengine.com clone:           spf_source = domain of droid@104.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba35fa0)
# ||       droid spf.messagingengine.com clone:               sender = droid@104.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:              trusted = 
# ||       droid spf.messagingengine.com clone:                debug = 1
# ||       droid spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       droid spf.messagingengine.com clone:  default_explanation = explanation
# ||       droid spf.messagingengine.com clone:                local = 
# ||       droid spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba3a470)
# ||       droid spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       droid spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a380)
# ||       droid spf.messagingengine.com clone:           myhostname = k93focal
# ||       droid spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba31cc8)
# ||       droid spf.messagingengine.com clone:                guess = 
# ||       droid spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       droid spf.messagingengine.com clone:                 helo = 104.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      droid spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      droid spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      droid spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      droid spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      droid spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      droid spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      droid spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      droid spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      droid spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      droid spf.messagingengine.com   mechanism ip4: looking for 192.0.2.98 in 103.168.172.128/27
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      droid spf.messagingengine.com   mechanism ip4: looking for 192.0.2.98 in 202.12.124.128/27
# |||      droid spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      droid spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      droid spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      droid spf.messagingengine.com   saving result fail to cache point and returning.
# |||      droid 104.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      droid 104.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      droid 104.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=104.spf1-test.mailzone.com
# |||      droid 104.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      droid 104.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      droid 104.spf1-test.mailzone.com header_comment: spf_source = domain of droid@104.spf1-test.mailzone.com
# |||      droid 104.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 131 got: "softfail" (t/00_all.t at line 127 fail #126)
#     Expected: "unknown some:unrecognized=mechanism"
# Test 132 got: "explanation" (t/00_all.t at line 129 fail #3)
#     Expected: "SPF record error: unrecognized mechanism some:unrecognized=mechanism"
# Test 133 got: "transitioning domain of droid@110.spf1-test.mailzone.com does not designate 192.0.2.98 as permitted sender" (t/00_all.t at line 130 fail #3)
#     Expected: "encountered unrecognized mechanism during SPF processing of domain of droid@110.spf1-test.mailzone.com"
# Detailed debug log for test(s) 131,132,133:
# |         110.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=droid@110.spf1-test.mailzone.com, helo=110.spf1-test.mailzone.com
# |        droid 110.spf1-test.mailzone.com localpart is droid
# ||       droid 110.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 110.spf1-test.mailzone.com
# ||       droid 110.spf1-test.mailzone.com   myquery: doing TXT query on 110.spf1-test.mailzone.com
# ||       droid 110.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 110.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       droid 110.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       droid 110.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       droid 110.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       droid 110.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       droid 110.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       droid 110.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=110.spf1-test.mailzone.com
# ||       droid 110.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       droid 110.spf1-test.mailzone.com   clone: new object:
# ||       droid spf.messagingengine.com clone:               sender = droid@110.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3efd8)
# ||       droid spf.messagingengine.com clone:           spf_source = domain of droid@110.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:         lookup_count = 1
# ||       droid spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       droid spf.messagingengine.com clone:          orig_domain = 110.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:                debug = 1
# ||       droid spf.messagingengine.com clone:              trusted = 
# ||       droid spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       droid spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba3aab8)
# ||       droid spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       droid spf.messagingengine.com clone:       default_record = 
# ||       droid spf.messagingengine.com clone:            localpart = droid
# ||       droid spf.messagingengine.com clone:                 helo = 110.spf1-test.mailzone.com
# ||       droid spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       droid spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba3a2c0)
# ||       droid spf.messagingengine.com clone:                local = 
# ||       droid spf.messagingengine.com clone:  default_explanation = explanation
# ||       droid spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       droid spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       droid spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba3a188)
# ||       droid spf.messagingengine.com clone:                guess = 
# ||       droid spf.messagingengine.com clone:           myhostname = k93focal
# ||       droid spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       droid spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba35f10)
# |||      droid spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      droid spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      droid 110.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070182
# |||      droid 110.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      droid 110.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=110.spf1-test.mailzone.com
# |||      droid 110.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      droid 110.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      droid 110.spf1-test.mailzone.com header_comment: spf_source = domain of droid@110.spf1-test.mailzone.com
# |||      droid 110.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 134 got: "softfail" (t/00_all.t at line 94)
#     Expected: "fail"
#  t/00_all.t line 94 is:                 $ok = ok($recip_result, $expected_recip_result) && $ok;
# Test 135 got: "softfail" (t/00_all.t at line 94 fail #2)
#     Expected: "fail"
# Test 136 got: "softfail" (t/00_all.t at line 83)
#     Expected: "fail"
#  t/00_all.t line 83 is:                 $ok = ok($msg_result, $e_result) && $ok;
# Detailed debug log for test(s) 134,135,136:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@bar.com (at host bar.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.33 is a MX for bar.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e4a98)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0db38)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9bb7e8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba10e88)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e5278)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d62a0)
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 137 got: "softfail" (t/00_all.t at line 94 fail #3)
#     Expected: "pass"
# Test 138 got: "softfail" (t/00_all.t at line 94 fail #4)
#     Expected: "fail"
# Test 139 got: "softfail" (t/00_all.t at line 83 fail #2)
#     Expected: "fail"
# Test 140 got: "transitioning domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender" (t/00_all.t at line 101)
#     Expected: "domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender"
#  t/00_all.t line 101 is:             $ok = ok($header_comment, $expected_header_comment) && $ok;
# Detailed debug log for test(s) 137,138,139,140:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@spf1-test.mailzone.com (at host spf1-test.mailzone.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.33 is a MX for spf1-test.mailzone.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba29970)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ae92e98)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba2a1e0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba368b8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17280)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29b50)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 141 got: "softfail" (t/00_all.t at line 94 fail #5)
#     Expected: "pass"
# Test 142 got: "softfail" (t/00_all.t at line 83 fail #3)
#     Expected: "pass"
# Test 143 got: "transitioning domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender" (t/00_all.t at line 101 fail #2)
#     Expected: "message received from 192.0.2.33 which is an MX secondary for foo@spf1-test.mailzone.com"
# Detailed debug log for test(s) 141,142,143:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@spf1-test.mailzone.com (at host spf1-test.mailzone.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.33 is a MX for spf1-test.mailzone.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba08a10)
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bb6e0)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba25b98)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9aea13a8)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba10e28)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22170)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 144 got: "softfail" (t/00_all.t at line 94 fail #6)
#     Expected: "fail"
# Test 145 got: "softfail" (t/00_all.t at line 83 fail #4)
#     Expected: "fail"
# Detailed debug log for test(s) 144,145:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@bar.com (at host bar.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.33 is a MX for bar.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c0b70)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba229f8)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba08560)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d62a0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9c0f00)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba10ee8)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 146 got: "softfail" (t/00_all.t at line 94 fail #7)
#     Expected: "fail"
# Test 147 got: "softfail" (t/00_all.t at line 94 fail #8)
#     Expected: "fail"
# Test 148 got: "softfail" (t/00_all.t at line 83 fail #5)
#     Expected: "fail"
# Detailed debug log for test(s) 146,147,148:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.34, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@spf1-test.mailzone.com (at host spf1-test.mailzone.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.34 is a MX for spf1-test.mailzone.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e5038)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.34
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e4eb8)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba29fa0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08830)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 34.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bb1a0)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba2a258)
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.34 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.34 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.34
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.34&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.34
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.34&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 149 got: "softfail" (t/00_all.t at line 94 fail #9)
#     Expected: "pass"
# Test 150 got: "softfail" (t/00_all.t at line 94 fail #10)
#     Expected: "pass"
# Test 151 got: "softfail" (t/00_all.t at line 83 fail #6)
#     Expected: "pass"
# Detailed debug log for test(s) 149,150,151:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.120, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient dog@cat.com (at host cat.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.120 is a MX for cat.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9b9bbc38)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b909080)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 120.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d95b8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a668)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba19570)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.120
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba17280)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.120 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.120 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.120
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.120&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.120
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.120&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 152 got: "softfail" (t/00_all.t at line 94 fail #11)
#     Expected: "pass"
# Test 153 got: "softfail" (t/00_all.t at line 83 fail #7)
#     Expected: "pass"
# Detailed debug log for test(s) 152,153:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.120, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient dog@cat.com (at host cat.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.120 is a MX for cat.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25910)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.120
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d16d8)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba08560)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2ce10)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 120.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba3f7b8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba170e8)
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.120 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.120 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.120
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.120&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.120
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.120&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 154 got: "softfail" (t/00_all.t at line 94 fail #12)
#     Expected: "fail"
# Test 155 got: "softfail" (t/00_all.t at line 83 fail #8)
#     Expected: "fail"
# Test 156 got: "transitioning domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender" (t/00_all.t at line 101 fail #3)
#     Expected: "domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender"
# Detailed debug log for test(s) 154,155,156:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@spf1-test.mailzone.com (at host spf1-test.mailzone.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.33 is a MX for spf1-test.mailzone.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08ec0)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba16da0)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2d890)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba39cc0)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba29b80)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba0db38)
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 157 got: "softfail" (t/00_all.t at line 94 fail #13)
#     Expected: "fail"
# Test 158 got: "softfail" (t/00_all.t at line 83 fail #9)
#     Expected: "fail"
# Test 159 got: "transitioning domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender" (t/00_all.t at line 101 fail #4)
#     Expected: "domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender"
# Detailed debug log for test(s) 157,158,159:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.33, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# |        postmaster 20.spf1-test.mailzone.com result2: Checking status of recipient foo@bar.com (at host bar.com)
# |        postmaster 20.spf1-test.mailzone.com result2: 192.0.2.33 is a MX for bar.com: no
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             mx_cache = HASH(0x55ff9ba08848)
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 33.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22c98)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R}
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17520)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba26048)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.33
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9d66f0)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2a3c0)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.33 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster spf.messagingengine.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster spf.messagingengine.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster spf.messagingengine.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: S: field=S, num=, reverse=, delim=., newval=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: I: field=I, num=, reverse=, delim=., newval=192.0.2.33
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute_item: R: field=R, num=, reverse=, delim=., newval=k93focal
# |||      postmaster 20.spf1-test.mailzone.com   macro_substitute: Please see http://www.openspf.org/why.html?sender=%{S}&ip=%{I}&receiver=%{R} -> Please see http://www.openspf.org/why.html?sender=20.spf1-test.mailzone.com&ip=192.0.2.33&receiver=k93focal
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 160 got: "softfail" (t/00_all.t at line 127 fail #127)
#     Expected: "pass"
# Detailed debug log for test(s) 160:
# |         103.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=103.spf1-test.mailzone.com, helo=103.spf1-test.mailzone.com
# |        postmaster 103.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 103.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 103.spf1-test.mailzone.com
# ||       postmaster 103.spf1-test.mailzone.com   myquery: doing TXT query on 103.spf1-test.mailzone.com
# ||       postmaster 103.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 103.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 103.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 103.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 103.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 103.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 103.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=103.spf1-test.mailzone.com
# ||       postmaster 103.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 103.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               sender = 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba057a0)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2a288)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 103.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba26048)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba0e258)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b8d0db0)
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.98 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.98 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 103.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=103.spf1-test.mailzone.com
# |||      postmaster 103.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 103.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 103.spf1-test.mailzone.com header_comment: spf_source = domain of 103.spf1-test.mailzone.com
# |||      postmaster 103.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 161 got: "softfail" (t/00_all.t at line 127 fail #128)
#     Expected: "pass"
# Test 163 got: "transitioning domain of 20.spf1-test.mailzone.com does not designate 192.0.2.1 as permitted sender" (t/00_all.t at line 130 fail #4)
#     Expected: "local policy"
# Detailed debug log for test(s) 161,162,163:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba0d5c8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d9120)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba05410)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba22158)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba10db0)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 164 got: "softfail" (t/00_all.t at line 127 fail #129)
#     Expected: "pass"
# Test 166 got: "transitioning domain of 20.spf1-test.mailzone.com does not designate 192.0.2.1 as permitted sender" (t/00_all.t at line 130 fail #5)
#     Expected: "local policy"
# Detailed debug log for test(s) 164,165,166:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2a240)
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2a288)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d18e8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba19558)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba29a48)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 167 got: "softfail" (t/00_all.t at line 127 fail #130)
#     Expected: "fail"
# Detailed debug log for test(s) 167:
# |         20.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=20.spf1-test.mailzone.com, helo=20.spf1-test.mailzone.com
# |        postmaster 20.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   myquery: doing TXT query on 20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 20.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 20.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 20.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=20.spf1-test.mailzone.com
# ||       postmaster 20.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 20.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba16968)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba19030)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 20.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba11428)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9e5488)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08a10)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 20.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 20.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source = domain of 20.spf1-test.mailzone.com
# |||      postmaster 20.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 168 got: "softfail" (t/00_all.t at line 127 fail #131)
#     Expected: "pass"
# Detailed debug log for test(s) 168:
# |         91.spf1-test.mailzone.com new: ipv4=192.168.1.1, sender=91.spf1-test.mailzone.com, helo=91.spf1-test.mailzone.com
# |        postmaster 91.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   myquery: doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 91.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 91.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d868)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2d1a0)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.1.168.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba22bd8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.168.1.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9c5b20)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25f58)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.1.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.1.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 91.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source = domain of 91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 169 got: "softfail" (t/00_all.t at line 127 fail #132)
#     Expected: "pass"
# Detailed debug log for test(s) 169:
# |         91.spf1-test.mailzone.com new: ipv4=192.0.2.127, sender=91.spf1-test.mailzone.com, helo=91.spf1-test.mailzone.com
# |        postmaster 91.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   myquery: doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 91.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 91.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 127.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba11908)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9c1890)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba1e778)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d1a98)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.127
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba05470)
# ||       postmaster spf.messagingengine.com clone:               sender = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.127 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.127 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 91.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source = domain of 91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 170 got: "softfail" (t/00_all.t at line 127 fail #133)
#     Expected: "fail"
# Detailed debug log for test(s) 170:
# |         91.spf1-test.mailzone.com new: ipv4=192.0.2.129, sender=91.spf1-test.mailzone.com, helo=91.spf1-test.mailzone.com
# |        postmaster 91.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   myquery: doing TXT query on 91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 91.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 91.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 91.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=91.spf1-test.mailzone.com
# ||       postmaster 91.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 91.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d66f0)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.129
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e5518)
# ||       postmaster spf.messagingengine.com clone:               sender = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 129.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba19030)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba39eb8)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08710)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 91.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.129 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.129 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 91.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source = domain of 91.spf1-test.mailzone.com
# |||      postmaster 91.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 171 got: "softfail" (t/00_all.t at line 127 fail #134)
#     Expected: "pass"
# Detailed debug log for test(s) 171:
# |         92.spf1-test.mailzone.com new: ipv4=192.168.2.1, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31fc8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.168.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba23028)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba29d00)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9bb620)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b7858c0)
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.168.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.2.1 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.168.2.1 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 172 got: "softfail" (t/00_all.t at line 127 fail #135)
#     Expected: "pass"
# Detailed debug log for test(s) 172:
# |         92.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9c11b8)
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1e568)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9bff50)
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0dcd0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba18c88)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 173 got: "softfail" (t/00_all.t at line 127 fail #136)
#     Expected: "pass"
# Detailed debug log for test(s) 173:
# |         92.spf1-test.mailzone.com new: ipv4=192.0.2.129, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.129
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b7c0900)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c57d8)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 129.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba19918)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2cac8)
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba18c88)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.129.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 174 got: "softfail" (t/00_all.t at line 127 fail #137)
#     Expected: "neutral"
# Detailed debug log for test(s) 174:
# |         92.spf1-test.mailzone.com new: ipv4=192.0.2.193, sender=92.spf1-test.mailzone.com, helo=92.spf1-test.mailzone.com
# |        postmaster 92.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   myquery: doing TXT query on 92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 92.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 92.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 92.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=92.spf1-test.mailzone.com
# ||       postmaster 92.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 92.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 193.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25478)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9d1a98)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba18c88)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18f88)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.193
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba18be0)
# ||       postmaster spf.messagingengine.com clone:               sender = 92.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.193 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.193 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 92.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source = domain of 92.spf1-test.mailzone.com
# |||      postmaster 92.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 175 got: "softfail" (t/00_all.t at line 127 fail #138)
#     Expected: "pass"
# Detailed debug log for test(s) 175:
# |         100.spf1-test.mailzone.com new: ipv4=192.0.2.1, sender=100.spf1-test.mailzone.com, helo=100.spf1-test.mailzone.com
# |        postmaster 100.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   myquery: doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 100.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 100.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1e970)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba39eb8)
# ||       postmaster spf.messagingengine.com clone:               sender = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 1.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba227a0)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17010)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba10df8)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                 helo = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.1.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 100.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 100.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source = domain of 100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 176 got: "softfail" (t/00_all.t at line 127 fail #139)
#     Expected: "pass"
# Detailed debug log for test(s) 176:
# |         100.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=100.spf1-test.mailzone.com, helo=100.spf1-test.mailzone.com
# |        postmaster 100.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   myquery: doing TXT query on 100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 100.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 100.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 100.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=100.spf1-test.mailzone.com
# ||       postmaster 100.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 100.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18c70)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               sender = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9084f8)
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c57d8)
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0e0f0)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bb248)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 100.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 100.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 100.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source = domain of 100.spf1-test.mailzone.com
# |||      postmaster 100.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 177 got: "softfail" (t/00_all.t at line 127 fail #140)
#     Expected: "fail"
# Detailed debug log for test(s) 177:
# |         101.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=101.spf1-test.mailzone.com, helo=101.spf1-test.mailzone.com
# |        postmaster 101.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 101.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 101.spf1-test.mailzone.com
# ||       postmaster 101.spf1-test.mailzone.com   myquery: doing TXT query on 101.spf1-test.mailzone.com
# ||       postmaster 101.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 101.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 101.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 101.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 101.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 101.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 101.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=101.spf1-test.mailzone.com
# ||       postmaster 101.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 101.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9d16a8)
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba22e00)
# ||       postmaster spf.messagingengine.com clone:               sender = 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c68d8)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9d5b08)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba10de0)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:                 helo = 101.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 101.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=101.spf1-test.mailzone.com
# |||      postmaster 101.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 101.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 101.spf1-test.mailzone.com header_comment: spf_source = domain of 101.spf1-test.mailzone.com
# |||      postmaster 101.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 178 got: "softfail" (t/00_all.t at line 127 fail #141)
#     Expected: "neutral"
# Detailed debug log for test(s) 178:
# |         102.spf1-test.mailzone.com new: ipv4=192.0.2.98, sender=102.spf1-test.mailzone.com, helo=102.spf1-test.mailzone.com
# |        postmaster 102.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 102.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 102.spf1-test.mailzone.com
# ||       postmaster 102.spf1-test.mailzone.com   myquery: doing TXT query on 102.spf1-test.mailzone.com
# ||       postmaster 102.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 102.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 102.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 102.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 102.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 102.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 102.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=102.spf1-test.mailzone.com
# ||       postmaster 102.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 102.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 98.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba25958)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba08c68)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba39e10)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9c0dc8)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.98
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba082d8)
# ||       postmaster spf.messagingengine.com clone:               sender = 102.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.98.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 102.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=102.spf1-test.mailzone.com
# |||      postmaster 102.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 102.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 102.spf1-test.mailzone.com header_comment: spf_source = domain of 102.spf1-test.mailzone.com
# |||      postmaster 102.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 179 got: "softfail" (t/00_all.t at line 127 fail #142)
#     Expected: "fail"
# Test 181 got: "transitioning domain of 10.spf1-test.mailzone.com does not designate 192.0.2.200 as permitted sender" (t/00_all.t at line 130 fail #6)
#     Expected: "domain of 10.spf1-test.mailzone.com does not designate 192.0.2.200 as permitted sender"
# Detailed debug log for test(s) 179,180,181:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba17388)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0d820)
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba39e10)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9b9c1890)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba296e8)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.200 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.200 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 182 got: "softfail" (t/00_all.t at line 127 fail #143)
#     Expected: "pass"
# Test 184 got: "transitioning domain of 10.spf1-test.mailzone.com does not designate 192.0.2.200 as permitted sender" (t/00_all.t at line 130 fail #7)
#     Expected: "local policy"
# Detailed debug log for test(s) 182,183,184:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a278)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba16e90)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba16b18)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b7858f0)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba2d6e0)
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 185 got: "softfail" (t/00_all.t at line 127 fail #144)
#     Expected: "pass"
# Test 187 got: "transitioning domain of 10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #8)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 185,186,187:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9b9e4eb8)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba22fc8)
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba2d698)
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba22f50)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a710)
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      postmaster spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      postmaster spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      postmaster spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      postmaster spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      postmaster spf.messagingengine.com   saving result fail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 188 got: "softfail" (t/00_all.t at line 127 fail #145)
#     Expected: "pass"
# Test 190 got: "transitioning domain of 42-27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #9)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 188,189,190:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42-27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42-27 10.spf1-test.mailzone.com localpart is 42-27
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42-27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   clone: new object:
# ||       42-27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42-27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42-27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9c59e8)
# ||       42-27 spf.messagingengine.com clone:                local = 
# ||       42-27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42-27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba255c8)
# ||       42-27 spf.messagingengine.com clone:                guess = 
# ||       42-27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42-27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42-27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a9b0)
# ||       42-27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42-27 spf.messagingengine.com clone:           spf_source = domain of 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:               sender = 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba0e450)
# ||       42-27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42-27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42-27 spf.messagingengine.com clone:                debug = 1
# ||       42-27 spf.messagingengine.com clone:              trusted = 
# ||       42-27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42-27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b7858f0)
# ||       42-27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42-27 spf.messagingengine.com clone:       default_record = 
# ||       42-27 spf.messagingengine.com clone:            localpart = 42-27
# |||      42-27 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      42-27 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      42-27 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      42-27 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42-27 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42-27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      42-27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      42-27 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      42-27 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      42-27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      42-27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      42-27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      42-27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      42-27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      42-27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      42-27 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      42-27 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      42-27 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      42-27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42-27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42-27@10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 191 got: "softfail" (t/00_all.t at line 127 fail #146)
#     Expected: "pass"
# Test 193 got: "transitioning domain of 42-27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #10)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 191,192,193:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42-27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42-27 10.spf1-test.mailzone.com localpart is 42-27
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42-27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   clone: new object:
# ||       42-27 spf.messagingengine.com clone:              trusted = 
# ||       42-27 spf.messagingengine.com clone:                debug = 1
# ||       42-27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42-27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42-27 spf.messagingengine.com clone:           spf_source = domain of 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:               sender = 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3f068)
# ||       42-27 spf.messagingengine.com clone:            localpart = 42-27
# ||       42-27 spf.messagingengine.com clone:       default_record = 
# ||       42-27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42-27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9b9e4c00)
# ||       42-27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42-27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42-27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba05038)
# ||       42-27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42-27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42-27 spf.messagingengine.com clone:                guess = 
# ||       42-27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9c1158)
# ||       42-27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42-27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42-27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42-27 spf.messagingengine.com clone:                local = 
# ||       42-27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba36528)
# |||      42-27 spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.110.
# |||      42-27 spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      42-27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42-27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42-27@10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 194 got: "softfail" (t/00_all.t at line 127 fail #147)
#     Expected: "pass"
# Test 196 got: "transitioning domain of 42-27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #11)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 194,195,196:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42-27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42-27 10.spf1-test.mailzone.com localpart is 42-27
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42-27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   clone: new object:
# ||       42-27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42-27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba256d0)
# ||       42-27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42-27 spf.messagingengine.com clone:                guess = 
# ||       42-27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42-27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42-27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba1e970)
# ||       42-27 spf.messagingengine.com clone:                local = 
# ||       42-27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31518)
# ||       42-27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42-27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42-27 spf.messagingengine.com clone:                debug = 1
# ||       42-27 spf.messagingengine.com clone:              trusted = 
# ||       42-27 spf.messagingengine.com clone:               sender = 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1ebb0)
# ||       42-27 spf.messagingengine.com clone:           spf_source = domain of 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42-27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42-27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:       default_record = 
# ||       42-27 spf.messagingengine.com clone:            localpart = 42-27
# ||       42-27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42-27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba25898)
# ||       42-27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# |||      42-27 spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.110.
# |||      42-27 spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      42-27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42-27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42-27@10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 197 got: "softfail" (t/00_all.t at line 127 fail #148)
#     Expected: "pass"
# Test 199 got: "transitioning domain of 42di27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #12)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 197,198,199:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42di27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42di27 10.spf1-test.mailzone.com localpart is 42di27
# ||       42di27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42di27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42di27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42di27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42di27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42di27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42di27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42di27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42di27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42di27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42di27 10.spf1-test.mailzone.com   clone: new object:
# ||       42di27 spf.messagingengine.com clone:                local = 
# ||       42di27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9b9e5380)
# ||       42di27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42di27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42di27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba08d88)
# ||       42di27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42di27 spf.messagingengine.com clone:                guess = 
# ||       42di27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42di27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba17550)
# ||       42di27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42di27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42di27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42di27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba19180)
# ||       42di27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42di27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42di27 spf.messagingengine.com clone:       default_record = 
# ||       42di27 spf.messagingengine.com clone:            localpart = 42di27
# ||       42di27 spf.messagingengine.com clone:           spf_source = domain of 42di27@10.spf1-test.mailzone.com
# ||       42di27 spf.messagingengine.com clone:               sender = 42di27@10.spf1-test.mailzone.com
# ||       42di27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3f8c0)
# ||       42di27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42di27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42di27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42di27 spf.messagingengine.com clone:                debug = 1
# ||       42di27 spf.messagingengine.com clone:              trusted = 
# |||      42di27 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      42di27 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      42di27 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      42di27 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42di27 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42di27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      42di27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      42di27 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      42di27 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      42di27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      42di27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      42di27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      42di27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      42di27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      42di27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      42di27 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      42di27 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      42di27 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      42di27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      42di27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42di27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42di27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42di27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42di27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42di27@10.spf1-test.mailzone.com
# |||      42di27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 200 got: "softfail" (t/00_all.t at line 127 fail #149)
#     Expected: "pass"
# Test 202 got: "transitioning domain of 42:27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #13)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 200,201,202:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42:27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42:27 10.spf1-test.mailzone.com localpart is 42:27
# ||       42:27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42:27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42:27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42:27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42:27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42:27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42:27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42:27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42:27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42:27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42:27 10.spf1-test.mailzone.com   clone: new object:
# ||       42:27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42:27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42:27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42:27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2d2d8)
# ||       42:27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42:27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b42f2f0)
# ||       42:27 spf.messagingengine.com clone:                guess = 
# ||       42:27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42:27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42:27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba189e8)
# ||       42:27 spf.messagingengine.com clone:                local = 
# ||       42:27 spf.messagingengine.com clone:              trusted = 
# ||       42:27 spf.messagingengine.com clone:                debug = 1
# ||       42:27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42:27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42:27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3f668)
# ||       42:27 spf.messagingengine.com clone:               sender = 42:27@10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:           spf_source = domain of 42:27@10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:            localpart = 42:27
# ||       42:27 spf.messagingengine.com clone:       default_record = 
# ||       42:27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42:27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba18df0)
# ||       42:27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# |||      42:27 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      42:27 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      42:27 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      42:27 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42:27 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42:27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      42:27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      42:27 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      42:27 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      42:27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      42:27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      42:27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      42:27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      42:27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      42:27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      42:27 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      42:27 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      42:27 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      42:27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      42:27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42:27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42:27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42:27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42:27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42:27@10.spf1-test.mailzone.com
# |||      42:27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 203 got: "softfail" (t/00_all.t at line 127 fail #150)
#     Expected: "pass"
# Test 205 got: "transitioning domain of 42:27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #14)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 203,204,205:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42:27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42:27 10.spf1-test.mailzone.com localpart is 42:27
# ||       42:27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42:27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42:27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42:27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42:27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42:27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42:27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42:27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42:27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42:27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42:27 10.spf1-test.mailzone.com   clone: new object:
# ||       42:27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42:27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba11d10)
# ||       42:27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42:27 spf.messagingengine.com clone:            localpart = 42:27
# ||       42:27 spf.messagingengine.com clone:       default_record = 
# ||       42:27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42:27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42:27 spf.messagingengine.com clone:           spf_source = domain of 42:27@10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:               sender = 42:27@10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba1e958)
# ||       42:27 spf.messagingengine.com clone:              trusted = 
# ||       42:27 spf.messagingengine.com clone:                debug = 1
# ||       42:27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42:27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba3a0b0)
# ||       42:27 spf.messagingengine.com clone:                local = 
# ||       42:27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42:27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3f4e8)
# ||       42:27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42:27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42:27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42:27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9e4be8)
# ||       42:27 spf.messagingengine.com clone:                guess = 
# ||       42:27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42:27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# |||      42:27 spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.110.
# |||      42:27 spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      42:27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      42:27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42:27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42:27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42:27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42:27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42:27@10.spf1-test.mailzone.com
# |||      42:27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 206 got: "softfail" (t/00_all.t at line 127 fail #151)
#     Expected: "pass"
# Test 208 got: "transitioning domain of 42\\27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #15)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 206,207,208:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42\27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42\27 10.spf1-test.mailzone.com localpart is 42\27
# ||       42\27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42\27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42\27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42\27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42\27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42\27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42\27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42\27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42\27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42\27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42\27 10.spf1-test.mailzone.com   clone: new object:
# ||       42\27 spf.messagingengine.com clone:            localpart = 42\27
# ||       42\27 spf.messagingengine.com clone:       default_record = 
# ||       42\27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42\27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba08560)
# ||       42\27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42\27 spf.messagingengine.com clone:              trusted = 
# ||       42\27 spf.messagingengine.com clone:                debug = 1
# ||       42\27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42\27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42\27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42\27 spf.messagingengine.com clone:           spf_source = domain of 42\27@10.spf1-test.mailzone.com
# ||       42\27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba113f8)
# ||       42\27 spf.messagingengine.com clone:               sender = 42\27@10.spf1-test.mailzone.com
# ||       42\27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42\27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3f098)
# ||       42\27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42\27 spf.messagingengine.com clone:                guess = 
# ||       42\27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba36558)
# ||       42\27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42\27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42\27 spf.messagingengine.com clone:                local = 
# ||       42\27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba31560)
# ||       42\27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42\27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42\27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# |||      42\27 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      42\27 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      42\27 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      42\27 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42\27 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42\27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      42\27 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      42\27 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      42\27 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      42\27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      42\27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      42\27 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      42\27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      42\27 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      42\27 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      42\27 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      42\27 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      42\27 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      42\27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      42\27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42\27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42\27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42\27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42\27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42\27@10.spf1-test.mailzone.com
# |||      42\27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 209 got: "softfail" (t/00_all.t at line 127 fail #152)
#     Expected: "pass"
# Test 211 got: "transitioning domain of 42-27@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #16)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 209,210,211:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42-27@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42-27 10.spf1-test.mailzone.com localpart is 42-27
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42-27 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42-27 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42-27 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42-27 10.spf1-test.mailzone.com   clone: new object:
# ||       42-27 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42-27 spf.messagingengine.com clone:         lookup_count = 1
# ||       42-27 spf.messagingengine.com clone:           spf_source = domain of 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:               sender = 42-27@10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba2d488)
# ||       42-27 spf.messagingengine.com clone:              trusted = 
# ||       42-27 spf.messagingengine.com clone:                debug = 1
# ||       42-27 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42-27 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42-27 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0df28)
# ||       42-27 spf.messagingengine.com clone:            localpart = 42-27
# ||       42-27 spf.messagingengine.com clone:       default_record = 
# ||       42-27 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42-27 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42-27 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42-27 spf.messagingengine.com clone:  default_explanation = explanation
# ||       42-27 spf.messagingengine.com clone:                local = 
# ||       42-27 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba3a068)
# ||       42-27 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3f308)
# ||       42-27 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42-27 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42-27 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba25880)
# ||       42-27 spf.messagingengine.com clone:                guess = 
# ||       42-27 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      42-27 spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.110.
# |||      42-27 spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      42-27 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42-27 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42-27@10.spf1-test.mailzone.com
# |||      42-27 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 212 got: "softfail" (t/00_all.t at line 127 fail #153)
#     Expected: "pass"
# Test 214 got: "transitioning domain of 42327@10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #17)
#     Expected: "local policy includes SPF record at 42.spf1-test.mailzone.com"
# Detailed debug log for test(s) 212,213,214:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=42327@10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        42327 10.spf1-test.mailzone.com localpart is 42327
# ||       42327 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       42327 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       42327 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       42327 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       42327 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       42327 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       42327 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       42327 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       42327 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       42327 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       42327 10.spf1-test.mailzone.com   clone: new object:
# ||       42327 spf.messagingengine.com clone:              trusted = 
# ||       42327 spf.messagingengine.com clone:                debug = 1
# ||       42327 spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       42327 spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       42327 spf.messagingengine.com clone:         lookup_count = 1
# ||       42327 spf.messagingengine.com clone:           spf_source = domain of 42327@10.spf1-test.mailzone.com
# ||       42327 spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3a3e0)
# ||       42327 spf.messagingengine.com clone:               sender = 42327@10.spf1-test.mailzone.com
# ||       42327 spf.messagingengine.com clone:            localpart = 42327
# ||       42327 spf.messagingengine.com clone:       default_record = 
# ||       42327 spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba1e958)
# ||       42327 spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       42327 spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       42327 spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       42327 spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       42327 spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba2d140)
# ||       42327 spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       42327 spf.messagingengine.com clone:           myhostname = k93focal
# ||       42327 spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba2d590)
# ||       42327 spf.messagingengine.com clone:                guess = 
# ||       42327 spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       42327 spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       42327 spf.messagingengine.com clone:                local = 
# ||       42327 spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba39c18)
# ||       42327 spf.messagingengine.com clone:  default_explanation = explanation
# |||      42327 spf.messagingengine.com   DirectiveSet->new(): doing TXT query on spf.messagingengine.com
# |||      42327 spf.messagingengine.com   myquery: doing TXT query on spf.messagingengine.com
# |||      42327 spf.messagingengine.com   DirectiveSet->new(): TXT query on spf.messagingengine.com returned error=, last_dns_error=NOERROR
# |||      42327 spf.messagingengine.com   DirectiveSet->new(): SPF policy: ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42327 spf.messagingengine.com   lookup:   TXT ip4:103.168.172.128/27 ip4:202.12.124.128/27 -all
# |||      42327 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=103.168.172.128/27
# |||      42327 spf.messagingengine.com   lookup:   TXT prefix=+, lhs=ip4, rhs=202.12.124.128/27
# |||      42327 spf.messagingengine.com   lookup:   TXT prefix=-, lhs=all, rhs=
# |||      42327 spf.messagingengine.com   lookup:  mec mechanisms=+ip4(103.168.172.128/27) +ip4(202.12.124.128/27) -all()
# |||      42327 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) for domain=spf.messagingengine.com
# |||      42327 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 103.168.172.128/27
# |||      42327 spf.messagingengine.com   evaluate_mechanism: +ip4(103.168.172.128/27) returned  
# |||      42327 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) for domain=spf.messagingengine.com
# |||      42327 spf.messagingengine.com   mechanism ip4: looking for 192.0.2.110 in 202.12.124.128/27
# |||      42327 spf.messagingengine.com   evaluate_mechanism: +ip4(202.12.124.128/27) returned  
# |||      42327 spf.messagingengine.com   evaluate_mechanism: -all() for domain=spf.messagingengine.com
# |||      42327 spf.messagingengine.com   evaluate_mechanism: -all() returned hit default
# |||      42327 spf.messagingengine.com   saving result fail to cache point and returning.
# |||      42327 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 
# |||      42327 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      42327 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      42327 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      42327 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      42327 10.spf1-test.mailzone.com header_comment: spf_source = domain of 42327@10.spf1-test.mailzone.com
# |||      42327 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 215 got: "softfail" (t/00_all.t at line 127 fail #154)
#     Expected: "pass"
# Test 217 got: "transitioning domain of 10.spf1-test.mailzone.com does not designate 192.0.2.110 as permitted sender" (t/00_all.t at line 130 fail #18)
#     Expected: "local policy"
# Detailed debug log for test(s) 215,216,217:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.110, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.110
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba16f98)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba0db20)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 110.2.0.192
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba3aae8)
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a080)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9ba3fa28)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.110.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 218 got: "softfail" (t/00_all.t at line 127 fail #155)
#     Expected: "error"
# Test 220 got: "transitioning domain of 10.spf1-test.mailzone.com does not designate 192.0.2.200 as permitted sender" (t/00_all.t at line 130 fail #19)
#     Expected: "encountered temporary error during SPF processing of domain of 10.spf1-test.mailzone.com"
# Detailed debug log for test(s) 218,219,220:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba3a410)
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9bb260)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba59ba8)
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba59650)
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba3fdd0)
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
# Test 223 got: "transitioning domain of 10.spf1-test.mailzone.com does not designate 192.0.2.200 as permitted sender" (t/00_all.t at line 130 fail #20)
#     Expected: "local policy"
# Detailed debug log for test(s) 221,222,223:
# |         10.spf1-test.mailzone.com new: ipv4=192.0.2.200, sender=10.spf1-test.mailzone.com, helo=10.spf1-test.mailzone.com
# |        postmaster 10.spf1-test.mailzone.com localpart is postmaster
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   myquery: doing TXT query on 10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): TXT query on 10.spf1-test.mailzone.com returned error=, last_dns_error=NOERROR
# ||       postmaster 10.spf1-test.mailzone.com   DirectiveSet->new(): SPF policy: include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT include:spf.messagingengine.com ~all
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=+, lhs=include, rhs=spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   lookup:   TXT prefix=~, lhs=all, rhs=
# ||       postmaster 10.spf1-test.mailzone.com   lookup:  mec mechanisms=+include(spf.messagingengine.com) ~all()
# ||       postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) for domain=10.spf1-test.mailzone.com
# ||       postmaster 10.spf1-test.mailzone.com   mechanism include: recursing into spf.messagingengine.com
# ||       postmaster 10.spf1-test.mailzone.com   clone: new object:
# ||       postmaster spf.messagingengine.com clone:                 helo = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:               domain = spf.messagingengine.com
# ||       postmaster spf.messagingengine.com clone:          Reversed_IP = 200.2.0.192
# ||       postmaster spf.messagingengine.com clone:  default_explanation = explanation
# ||       postmaster spf.messagingengine.com clone:                local = 
# ||       postmaster spf.messagingengine.com clone:             debuglog = CODE(0x55ff9ba59668)
# ||       postmaster spf.messagingengine.com clone:           myhostname = k93focal
# ||       postmaster spf.messagingengine.com clone:        directive_set = DirectiveSet=HASH(0x55ff9ba0d8c8)
# ||       postmaster spf.messagingengine.com clone:       last_dns_error = NOERROR
# ||       postmaster spf.messagingengine.com clone:                guess = 
# ||       postmaster spf.messagingengine.com clone:               parent = Mail::SPF::Query=HASH(0x55ff9b9e4a80)
# ||       postmaster spf.messagingengine.com clone: spf_error_explanation = SPF record error
# ||       postmaster spf.messagingengine.com clone:         lookup_count = 1
# ||       postmaster spf.messagingengine.com clone:          orig_domain = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                 ipv4 = 192.0.2.200
# ||       postmaster spf.messagingengine.com clone:               sender = 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:                  res = Net::DNS::Resolver=HASH(0x55ff9ba59980)
# ||       postmaster spf.messagingengine.com clone:           spf_source = domain of 10.spf1-test.mailzone.com
# ||       postmaster spf.messagingengine.com clone:              trusted = 
# ||       postmaster spf.messagingengine.com clone:                debug = 1
# ||       postmaster spf.messagingengine.com clone:      spf_source_type = original-spf-record
# ||       postmaster spf.messagingengine.com clone:             sanitize = CODE(0x55ff9b854480)
# ||       postmaster spf.messagingengine.com clone:          loop_report = ARRAY(0x55ff9ba59638)
# ||       postmaster spf.messagingengine.com clone:            localpart = postmaster
# ||       postmaster spf.messagingengine.com clone:       default_record = 
# |||      postmaster spf.messagingengine.com   lookup: we have already processed spf.messagingengine.com before with 192.0.2.200.
# |||      postmaster spf.messagingengine.com   lookup: the cache entry is fresh; returning it.
# |||      postmaster 10.spf1-test.mailzone.com   mechanism include: got back result fail / default / 1736070184
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: +include(spf.messagingengine.com) returned  default
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() for domain=10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com   evaluate_mechanism: ~all() returned hit default
# |||      postmaster 10.spf1-test.mailzone.com   saving result softfail to cache point and returning.
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source = domain of 10.spf1-test.mailzone.com
# |||      postmaster 10.spf1-test.mailzone.com header_comment: spf_source_type = original-spf-record
t/00_all.t .. 
Failed 201/223 subtests 

Test Summary Report
-------------------
t/00_all.t (Wstat: 0 Tests: 223 Failed: 201)
  Failed tests:  3-4, 6-7, 9-161, 163-164, 166-179, 181-182
                184-185, 187-188, 190-191, 193-194, 196-197
                199-200, 202-203, 205-206, 208-209, 211-212
                214-215, 217-218, 220, 223
Files=1, Tests=223, 12 wallclock secs ( 0.06 usr  0.01 sys +  0.43 cusr  0.05 csys =  0.55 CPU)
Result: FAIL
Failed 1/1 test programs. 201/223 subtests failed.
make: *** [Makefile:876: test_dynamic] Error 255

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need Have
    ------------------- ---- ----
    Net::CIDR::Lite     0.15 0.22
    Net::DNS            0.46 1.48
    Sys::Hostname::Long 0    1.5 
    URI::Escape         0    5.31

build_requires:

    Module              Need Have
    ------------------- ---- ----
    ExtUtils::MakeMaker 0    7.70


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = en_US.UTF-8
    PATH = /home/sand/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/perl/bin:/usr/X11/bin
    PERL = /tmp/basesmoker-reloperl-W0Fp/bin/perl
    PERL5LIB = /tmp/loop_over_bdir-104923-Sg0oE9/LiquidWeb-Storm-CLI-1.03-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/LiquidWeb-Storm-CLI-1.03-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/triceps-2.1.0-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/triceps-2.1.0-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/perl-Hardware-UPS-Perl-0.43-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/perl-Hardware-UPS-Perl-0.43-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/Business-Shipping-DataFiles-1.02-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/Business-Shipping-DataFiles-1.02-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/App-nrun-v1.1.2-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/App-nrun-v1.1.2-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/downsexta-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/downsexta-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/Devel-Required-0.16-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/Devel-Required-0.16-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/Simulation-Automate-1.0.1-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/Simulation-Automate-1.0.1-0/blib/lib
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 104931
    PERL5_CPAN_IS_RUNNING = 104931
    PERL_CANARY_STABILITY_NOPROMPT = 1
    PERL_MM_USE_DEFAULT = 1
    PERL_USE_UNSAFE_INC = 1
    SHELL = /usr/bin/zsh
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /tmp/basesmoker-reloperl-W0Fp/bin/perl
    $UID/$EUID = 1005 / 1005
    $GID = 1005 1005
    $EGID = 1005 1005

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.38    
    CPAN::Meta          2.150010
    Cwd                 3.92    
    ExtUtils::CBuilder  0.280240
    ExtUtils::Command   7.70    
    ExtUtils::Install   2.22    
    ExtUtils::MakeMaker 7.70    
    ExtUtils::Manifest  1.75    
    ExtUtils::ParseXS   3.56    
    File::Spec          3.93    
    JSON                4.10    
    JSON::PP            4.16    
    Module::Build       0.4234  
    Module::Signature   0.89    
    Parse::CPAN::Meta   2.150010
    Test2               1.302206
    Test::Harness       3.50    
    Test::More          1.302206
    YAML                1.31    
    YAML::Syck          1.34    
    version             0.9933  


--

Summary of my perl5 (revision 5 version 41 subversion 7) configuration:
  Commit id: 3a3761b09845d0d6d68f91eb45c52ae70de89489
  Platform:
    osname=linux
    osvers=5.4.0-200-generic
    archname=x86_64-linux-thread-multi
    uname='linux k93focal 5.4.0-200-generic #220-ubuntu smp fri sep 27 13:19:16 utc 2024 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.41.7/d119 -Dmyhostname=k93focal -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat -Duseithreads -Uuselongdouble -DEBUGGING=both'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-O2 -g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='9.4.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib /usr/lib64
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.31.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.31'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    DEBUGGING
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_TRACK_MEMPOOL
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
    USE_THREAD_SAFE_LOCALE
  Built under linux
  Compiled at Dec 21 2024 06:31:49
  %ENV:
    PERL="/tmp/basesmoker-reloperl-W0Fp/bin/perl"
    PERL5LIB="/tmp/loop_over_bdir-104923-Sg0oE9/LiquidWeb-Storm-CLI-1.03-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/LiquidWeb-Storm-CLI-1.03-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/triceps-2.1.0-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/triceps-2.1.0-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/perl-Hardware-UPS-Perl-0.43-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/perl-Hardware-UPS-Perl-0.43-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/Business-Shipping-DataFiles-1.02-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/Business-Shipping-DataFiles-1.02-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/App-nrun-v1.1.2-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/App-nrun-v1.1.2-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/downsexta-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/downsexta-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/Devel-Required-0.16-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/Devel-Required-0.16-0/blib/lib:/tmp/loop_over_bdir-104923-Sg0oE9/Simulation-Automate-1.0.1-0/blib/arch:/tmp/loop_over_bdir-104923-Sg0oE9/Simulation-Automate-1.0.1-0/blib/lib"
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="104931"
    PERL5_CPAN_IS_RUNNING="104931"
    PERL_CANARY_STABILITY_NOPROMPT="1"
    PERL_MM_USE_DEFAULT="1"
    PERL_USE_UNSAFE_INC="1"
  @INC:
    /tmp/loop_over_bdir-104923-Sg0oE9/LiquidWeb-Storm-CLI-1.03-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/LiquidWeb-Storm-CLI-1.03-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/triceps-2.1.0-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/triceps-2.1.0-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/perl-Hardware-UPS-Perl-0.43-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/perl-Hardware-UPS-Perl-0.43-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/Business-Shipping-DataFiles-1.02-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/Business-Shipping-DataFiles-1.02-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/App-nrun-v1.1.2-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/App-nrun-v1.1.2-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/downsexta-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/downsexta-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/Devel-Required-0.16-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/Devel-Required-0.16-0/blib/lib
    /tmp/loop_over_bdir-104923-Sg0oE9/Simulation-Automate-1.0.1-0/blib/arch
    /tmp/loop_over_bdir-104923-Sg0oE9/Simulation-Automate-1.0.1-0/blib/lib
    /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.41.7/d119/lib/site_perl/5.41.7/x86_64-linux-thread-multi
    /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.41.7/d119/lib/site_perl/5.41.7
    /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.41.7/d119/lib/5.41.7/x86_64-linux-thread-multi
    /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.41.7/d119/lib/5.41.7
    .