t/01_load.t .................... 1..1 ok # loading Mail::SPF::Iterator ok t/02_spf-test-suite-rfc4408.t .. ok # Initial processing | domain-literal (4.3/1) (none) with additionals ok # Initial processing | emptylabel (4.3/1) (none) with additionals ok # Initial processing | helo-domain-literal (4.3/1) (none) with additionals ok # Initial processing | helo-not-fqdn (4.3/1) (none) with additionals ok # Initial processing | longlabel (4.3/1) (fail) with additionals ok # Initial processing | nolocalpart (4.3/2) (fail) with additionals ok # Initial processing | toolonglabel (4.3/1) (none) with additionals ok # Record lookup | alltimeout (4.4/2) (temperror) with additionals ok # Record lookup | both (4.4/1) (fail) with additionals ok # Record lookup | nospftxttimeout (4.4/1) (temperror none) with additionals ok # Record lookup | spfonly (4.4/1) (fail none) with additionals ok # Record lookup | spftimeout (4.4/1) (fail temperror) with additionals ok # Record lookup | txtonly (4.4/1) (fail none) with additionals ok # Record lookup | txttimeout (4.4/1) (fail temperror) with additionals ok # Selecting records | case-insensitive (4.5/6) (softfail) with additionals ok # Selecting records | empty (4.5/4) (neutral) with additionals ok # Selecting records | multispf1 (4.5/6) (permerror fail) with additionals ok # Selecting records | multispf2 (4.5/6) (permerror pass) with additionals ok # Selecting records | multitxt1 (4.5/5) (pass permerror) with additionals ok # Selecting records | multitxt2 (4.5/6) (permerror none) with additionals ok # Selecting records | nospace1 (4.5/4) (none) with additionals ok # Selecting records | nospace2 (4.5/4) (pass) with additionals ok # Selecting records | nospf (4.5/7) (none) with additionals ok # Selecting records | spfoverride (4.5/5) (pass fail) with additionals ok # Record evaluation | default-result (4.7/1) (neutral) with additionals ok # Record evaluation | detect-errors-anywhere (4.6) (permerror) with additionals ok # Record evaluation | invalid-domain (8.1/2) (permerror) with additionals ok # Record evaluation | invalid-domain-empty-label (4.3/1 5/10/3) (permerror fail) with additionals ok # Record evaluation | invalid-domain-long (4.3/1 5/10/3) (permerror fail) with additionals ok # Record evaluation | invalid-domain-long-via-macro (4.3/1 5/10/3) (permerror fail) with additionals ok # Record evaluation | modifier-charset-bad1 (4.6.1/4) (permerror) with additionals ok # Record evaluation | modifier-charset-bad2 (4.6.1/4) (permerror) with additionals ok # Record evaluation | modifier-charset-good (4.6.1/2) (pass) with additionals ok # Record evaluation | redirect-after-mechanisms1 (4.6.3) (softfail) with additionals ok # Record evaluation | redirect-after-mechanisms2 (4.6.3) (fail) with additionals ok # Record evaluation | redirect-is-modifier (4.6.1/4) (permerror) with additionals ok # ALL mechanism syntax | all-arg (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-cidr (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-dot (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-double (5.1/1) (pass) with additionals ok # ALL mechanism syntax | all-neutral (5.1/1) (neutral) with additionals ok # PTR mechanism syntax | ptr-cidr (5.5/2) (permerror) with additionals ok # PTR mechanism syntax | ptr-empty-domain (5.5/2) (permerror) with additionals ok # PTR mechanism syntax | ptr-match-implicit (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-match-ip6 (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-match-target (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-nomatch-invalid (5.5/5) (fail) with additionals ok # A mechanism syntax | a-bad-cidr4 (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-bad-cidr6 (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-bad-domain (8.1/2) (permerror) with additionals ok # A mechanism syntax | a-bad-toplabel (8.1/2) (permerror) with additionals ok # A mechanism syntax | a-cidr4-0 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-cidr4-0-ip6 (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6 (5.3/2) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip4 (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip4mapped (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip6 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-cidr6-0-nxdomain (5.3/3) (fail) with additionals ok # A mechanism syntax | a-colon-domain (8.1/2) (pass) with additionals ok # A mechanism syntax | a-colon-domain-ip4mapped (8.1/2) (pass) with additionals ok # A mechanism syntax | a-dash-in-toplabel (8.1/2) (pass) with additionals ok # A mechanism syntax | a-empty-domain (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-multi-ip1 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-multi-ip2 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-null (8.1/2) (permerror) with additionals ok # A mechanism syntax | a-numeric (8.1/2) (permerror) with additionals ok # A mechanism syntax | a-numeric-toplabel (8.1/2) (permerror) with additionals ok # A mechanism syntax | a-nxdomain (5.3/3) (fail) with additionals ok # A mechanism syntax | a-only-toplabel (8.1/2) (permerror) with additionals ok # A mechanism syntax | a-only-toplabel-trailing-dot (8.1/2) (permerror) with additionals ok # Include mechanism semantics and syntax | include-cidr (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-empty-domain (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-fail (5.2/9) (softfail) with additionals ok # Include mechanism semantics and syntax | include-neutral (5.2/9) (fail) with additionals ok # Include mechanism semantics and syntax | include-none (5.2/9) (permerror) with additionals ok # Include mechanism semantics and syntax | include-permerror (5.2/9) (permerror) with additionals ok # Include mechanism semantics and syntax | include-softfail (5.2/9) (pass) with additionals ok # Include mechanism semantics and syntax | include-syntax-error (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-temperror (5.2/9) (temperror) with additionals ok # MX mechanism syntax | mx-bad-cidr4 (5.4/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-cidr6 (5.4/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-domain (8.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-toplab (8.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-cidr4-0 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-cidr4-0-ip6 (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6 (5.4/2) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip4 (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip4mapped (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip6 (5.3/3) (pass) with additionals ok # MX mechanism syntax | mx-cidr6-0-nxdomain (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-colon-domain (8.1/2) (pass) with additionals ok # MX mechanism syntax | mx-colon-domain-ip4mapped (8.1/2) (pass) with additionals ok # MX mechanism syntax | mx-empty (5.4/3) (neutral) with additionals ok # MX mechanism syntax | mx-empty-domain (5.2/1) (permerror) with additionals ok # MX mechanism syntax | mx-implicit (5.4/4) (neutral) with additionals ok # MX mechanism syntax | mx-multi-ip1 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-multi-ip2 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-null (8.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-numeric-top-label (8.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-nxdomain (5.4/3) (fail) with additionals ok # EXISTS mechanism syntax | exists-cidr (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-empty-domain (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-implicit (5.7/2) (permerror) with additionals ok # IP4 mechanism syntax | bad-ip4-port (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | bad-ip4-short (5.6/4) (permerror) with additionals ok # IP4 mechanism syntax | bare-ip4 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | cidr4-0 (5.6/2) (pass) with additionals ok # IP4 mechanism syntax | cidr4-032 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | cidr4-32 (5.6/2) (pass) with additionals ok # IP4 mechanism syntax | cidr4-33 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | ip4-dual-cidr (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | ip4-mapped-ip6 (5/9/2) (fail) with additionals ok # IP6 mechanism syntax | bare-ip6 (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-0 (5/8) (pass) with additionals ok # IP6 mechanism syntax | cidr6-0-ip4 (5/9/2) (neutral pass) with additionals ok # IP6 mechanism syntax | cidr6-129 (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-33 (5.6/2) (pass) with additionals ok # IP6 mechanism syntax | cidr6-33-ip4 (5.6/2) (neutral) with additionals ok # IP6 mechanism syntax | cidr6-bad (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-ip4 (5/9/2) (neutral pass) with additionals ok # IP6 mechanism syntax | ip6-bad1 (5.6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | default-modifier-obsolete (6/3) (neutral) with additionals ok # Semantics of exp and other modifiers | default-modifier-obsolete2 (6/3) (neutral) with additionals ok # Semantics of exp and other modifiers | dorky-sentinel (8.1/6) (fail) with additionals ok # Semantics of exp and other modifiers | empty-modifier-name (A/3) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-dns-error (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-empty-domain (6.2/4) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-multiple-txt (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-no-txt (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-syntax-error (6.2/1) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-twice (6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | explanation-syntax-error (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | include-ignores-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | invalid-modifier (A/3) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-cancels-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-cancels-prior-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-empty-domain (6.2/4) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-none (6.1/4) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-syntax-error (6.1/2) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-twice (6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | unknown-modifier-syntax (A/3) (permerror) with additionals ok # Macro expansion rules | domain-name-truncation (8.1/25) (fail) with additionals ok # Macro expansion rules | exp-only-macro-char (8.1/8) (permerror) with additionals ok # Macro expansion rules | exp-txt-macro-char (8.1/20) (fail) with additionals ok # Macro expansion rules | hello-domain-literal (8.1/2) (fail) with additionals ok # Macro expansion rules | hello-macro (8.1/6) (pass) with additionals ok # Macro expansion rules | invalid-hello-macro (8.1/2) (fail) with additionals ok # Macro expansion rules | invalid-macro-char (8.1/9) (permerror) with additionals ok # Macro expansion rules | macro-mania-in-domain (8.1/3, 8.1/4) (pass) with additionals ok # Macro expansion rules | macro-reverse-split-on-dash (8.1/15 8.1/16 8.1/17 8.1/18) (pass) with additionals ok # Macro expansion rules | p-macro-ip4-novalid (8.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip4-valid (8.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip6-novalid (8.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip6-valid (8.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-multiple (8.1/22) (pass softfail) with additionals ok # Macro expansion rules | require-valid-helo (8.1/6) (fail) with additionals ok # Macro expansion rules | trailing-dot-domain (8.1/16) (pass) with additionals ok # Macro expansion rules | trailing-dot-exp (8.1) (fail) with additionals ok # Macro expansion rules | undef-macro (8.1/6) (permerror) with additionals ok # Macro expansion rules | upper-macro (8.1/26) (fail) with additionals ok # Macro expansion rules | v-macro-ip4 (8.1/6) (fail) with additionals ok # Macro expansion rules | v-macro-ip6 (8.1/6) (fail) with additionals ok # Processing limits | false-a-limit (10.1/7) (pass) with additionals ok # Processing limits | include-at-limit (10.1/6) (pass) with additionals ok # Processing limits | include-loop (10.1/6) (permerror) with additionals ok # Processing limits | include-over-limit (10.1/6) (permerror) with additionals ok # Processing limits | mech-at-limit (10.1/6) (pass) with additionals ok # Processing limits | mech-over-limit (10.1/6) (permerror) with additionals ok # Processing limits | mx-limit (10.1/7) (neutral pass) with additionals - got pass ok # Processing limits | ptr-limit (10.1/7) (neutral pass) with additionals - got pass ok # Processing limits | redirect-loop (10.1/6) (permerror) with additionals ok # Initial processing | domain-literal (4.3/1) (none) ok # Initial processing | emptylabel (4.3/1) (none) ok # Initial processing | helo-domain-literal (4.3/1) (none) ok # Initial processing | helo-not-fqdn (4.3/1) (none) ok # Initial processing | longlabel (4.3/1) (fail) ok # Initial processing | nolocalpart (4.3/2) (fail) ok # Initial processing | toolonglabel (4.3/1) (none) ok # Record lookup | alltimeout (4.4/2) (temperror) ok # Record lookup | both (4.4/1) (fail) ok # Record lookup | nospftxttimeout (4.4/1) (temperror none) ok # Record lookup | spfonly (4.4/1) (fail none) ok # Record lookup | spftimeout (4.4/1) (fail temperror) ok # Record lookup | txtonly (4.4/1) (fail none) ok # Record lookup | txttimeout (4.4/1) (fail temperror) ok # Selecting records | case-insensitive (4.5/6) (softfail) ok # Selecting records | empty (4.5/4) (neutral) ok # Selecting records | multispf1 (4.5/6) (permerror fail) ok # Selecting records | multispf2 (4.5/6) (permerror pass) ok # Selecting records | multitxt1 (4.5/5) (pass permerror) ok # Selecting records | multitxt2 (4.5/6) (permerror none) ok # Selecting records | nospace1 (4.5/4) (none) ok # Selecting records | nospace2 (4.5/4) (pass) ok # Selecting records | nospf (4.5/7) (none) ok # Selecting records | spfoverride (4.5/5) (pass fail) ok # Record evaluation | default-result (4.7/1) (neutral) ok # Record evaluation | detect-errors-anywhere (4.6) (permerror) ok # Record evaluation | invalid-domain (8.1/2) (permerror) ok # Record evaluation | invalid-domain-empty-label (4.3/1 5/10/3) (permerror fail) ok # Record evaluation | invalid-domain-long (4.3/1 5/10/3) (permerror fail) ok # Record evaluation | invalid-domain-long-via-macro (4.3/1 5/10/3) (permerror fail) ok # Record evaluation | modifier-charset-bad1 (4.6.1/4) (permerror) ok # Record evaluation | modifier-charset-bad2 (4.6.1/4) (permerror) ok # Record evaluation | modifier-charset-good (4.6.1/2) (pass) ok # Record evaluation | redirect-after-mechanisms1 (4.6.3) (softfail) ok # Record evaluation | redirect-after-mechanisms2 (4.6.3) (fail) ok # Record evaluation | redirect-is-modifier (4.6.1/4) (permerror) ok # ALL mechanism syntax | all-arg (5.1/1) (permerror) ok # ALL mechanism syntax | all-cidr (5.1/1) (permerror) ok # ALL mechanism syntax | all-dot (5.1/1) (permerror) ok # ALL mechanism syntax | all-double (5.1/1) (pass) ok # ALL mechanism syntax | all-neutral (5.1/1) (neutral) ok # PTR mechanism syntax | ptr-cidr (5.5/2) (permerror) ok # PTR mechanism syntax | ptr-empty-domain (5.5/2) (permerror) ok # PTR mechanism syntax | ptr-match-implicit (5.5/5) (pass) ok # PTR mechanism syntax | ptr-match-ip6 (5.5/5) (pass) ok # PTR mechanism syntax | ptr-match-target (5.5/5) (pass) ok # PTR mechanism syntax | ptr-nomatch-invalid (5.5/5) (fail) ok # A mechanism syntax | a-bad-cidr4 (5.3/2) (permerror) ok # A mechanism syntax | a-bad-cidr6 (5.3/2) (permerror) ok # A mechanism syntax | a-bad-domain (8.1/2) (permerror) ok # A mechanism syntax | a-bad-toplabel (8.1/2) (permerror) ok # A mechanism syntax | a-cidr4-0 (5.3/3) (pass) ok # A mechanism syntax | a-cidr4-0-ip6 (5.3/3) (fail) ok # A mechanism syntax | a-cidr6 (5.3/2) (fail) ok # A mechanism syntax | a-cidr6-0-ip4 (5.3/3) (fail) ok # A mechanism syntax | a-cidr6-0-ip4mapped (5.3/3) (fail) ok # A mechanism syntax | a-cidr6-0-ip6 (5.3/3) (pass) ok # A mechanism syntax | a-cidr6-0-nxdomain (5.3/3) (fail) ok # A mechanism syntax | a-colon-domain (8.1/2) (pass) ok # A mechanism syntax | a-colon-domain-ip4mapped (8.1/2) (pass) ok # A mechanism syntax | a-dash-in-toplabel (8.1/2) (pass) ok # A mechanism syntax | a-empty-domain (5.3/2) (permerror) ok # A mechanism syntax | a-multi-ip1 (5.3/3) (pass) ok # A mechanism syntax | a-multi-ip2 (5.3/3) (pass) ok # A mechanism syntax | a-null (8.1/2) (permerror) ok # A mechanism syntax | a-numeric (8.1/2) (permerror) ok # A mechanism syntax | a-numeric-toplabel (8.1/2) (permerror) ok # A mechanism syntax | a-nxdomain (5.3/3) (fail) ok # A mechanism syntax | a-only-toplabel (8.1/2) (permerror) ok # A mechanism syntax | a-only-toplabel-trailing-dot (8.1/2) (permerror) ok # Include mechanism semantics and syntax | include-cidr (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-empty-domain (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-fail (5.2/9) (softfail) ok # Include mechanism semantics and syntax | include-neutral (5.2/9) (fail) ok # Include mechanism semantics and syntax | include-none (5.2/9) (permerror) ok # Include mechanism semantics and syntax | include-permerror (5.2/9) (permerror) ok # Include mechanism semantics and syntax | include-softfail (5.2/9) (pass) ok # Include mechanism semantics and syntax | include-syntax-error (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-temperror (5.2/9) (temperror) ok # MX mechanism syntax | mx-bad-cidr4 (5.4/2) (permerror) ok # MX mechanism syntax | mx-bad-cidr6 (5.4/2) (permerror) ok # MX mechanism syntax | mx-bad-domain (8.1/2) (permerror) ok # MX mechanism syntax | mx-bad-toplab (8.1/2) (permerror) ok # MX mechanism syntax | mx-cidr4-0 (5.4/3) (pass) ok # MX mechanism syntax | mx-cidr4-0-ip6 (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6 (5.4/2) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip4 (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip4mapped (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip6 (5.3/3) (pass) ok # MX mechanism syntax | mx-cidr6-0-nxdomain (5.4/3) (fail) ok # MX mechanism syntax | mx-colon-domain (8.1/2) (pass) ok # MX mechanism syntax | mx-colon-domain-ip4mapped (8.1/2) (pass) ok # MX mechanism syntax | mx-empty (5.4/3) (neutral) ok # MX mechanism syntax | mx-empty-domain (5.2/1) (permerror) ok # MX mechanism syntax | mx-implicit (5.4/4) (neutral) ok # MX mechanism syntax | mx-multi-ip1 (5.4/3) (pass) ok # MX mechanism syntax | mx-multi-ip2 (5.4/3) (pass) ok # MX mechanism syntax | mx-null (8.1/2) (permerror) ok # MX mechanism syntax | mx-numeric-top-label (8.1/2) (permerror) ok # MX mechanism syntax | mx-nxdomain (5.4/3) (fail) ok # EXISTS mechanism syntax | exists-cidr (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-empty-domain (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-implicit (5.7/2) (permerror) ok # IP4 mechanism syntax | bad-ip4-port (5.6/2) (permerror) ok # IP4 mechanism syntax | bad-ip4-short (5.6/4) (permerror) ok # IP4 mechanism syntax | bare-ip4 (5.6/2) (permerror) ok # IP4 mechanism syntax | cidr4-0 (5.6/2) (pass) ok # IP4 mechanism syntax | cidr4-032 (5.6/2) (permerror) ok # IP4 mechanism syntax | cidr4-32 (5.6/2) (pass) ok # IP4 mechanism syntax | cidr4-33 (5.6/2) (permerror) ok # IP4 mechanism syntax | ip4-dual-cidr (5.6/2) (permerror) ok # IP4 mechanism syntax | ip4-mapped-ip6 (5/9/2) (fail) ok # IP6 mechanism syntax | bare-ip6 (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-0 (5/8) (pass) ok # IP6 mechanism syntax | cidr6-0-ip4 (5/9/2) (neutral pass) ok # IP6 mechanism syntax | cidr6-129 (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-33 (5.6/2) (pass) ok # IP6 mechanism syntax | cidr6-33-ip4 (5.6/2) (neutral) ok # IP6 mechanism syntax | cidr6-bad (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-ip4 (5/9/2) (neutral pass) ok # IP6 mechanism syntax | ip6-bad1 (5.6/2) (permerror) ok # Semantics of exp and other modifiers | default-modifier-obsolete (6/3) (neutral) ok # Semantics of exp and other modifiers | default-modifier-obsolete2 (6/3) (neutral) ok # Semantics of exp and other modifiers | dorky-sentinel (8.1/6) (fail) ok # Semantics of exp and other modifiers | empty-modifier-name (A/3) (permerror) ok # Semantics of exp and other modifiers | exp-dns-error (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-empty-domain (6.2/4) (permerror) ok # Semantics of exp and other modifiers | exp-multiple-txt (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-no-txt (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-syntax-error (6.2/1) (permerror) ok # Semantics of exp and other modifiers | exp-twice (6/2) (permerror) ok # Semantics of exp and other modifiers | explanation-syntax-error (6.2/4) (fail) ok # Semantics of exp and other modifiers | include-ignores-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | invalid-modifier (A/3) (permerror) ok # Semantics of exp and other modifiers | redirect-cancels-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | redirect-cancels-prior-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | redirect-empty-domain (6.2/4) (permerror) ok # Semantics of exp and other modifiers | redirect-none (6.1/4) (permerror) ok # Semantics of exp and other modifiers | redirect-syntax-error (6.1/2) (permerror) ok # Semantics of exp and other modifiers | redirect-twice (6/2) (permerror) ok # Semantics of exp and other modifiers | unknown-modifier-syntax (A/3) (permerror) ok # Macro expansion rules | domain-name-truncation (8.1/25) (fail) ok # Macro expansion rules | exp-only-macro-char (8.1/8) (permerror) ok # Macro expansion rules | exp-txt-macro-char (8.1/20) (fail) ok # Macro expansion rules | hello-domain-literal (8.1/2) (fail) ok # Macro expansion rules | hello-macro (8.1/6) (pass) ok # Macro expansion rules | invalid-hello-macro (8.1/2) (fail) ok # Macro expansion rules | invalid-macro-char (8.1/9) (permerror) ok # Macro expansion rules | macro-mania-in-domain (8.1/3, 8.1/4) (pass) ok # Macro expansion rules | macro-reverse-split-on-dash (8.1/15 8.1/16 8.1/17 8.1/18) (pass) ok # Macro expansion rules | p-macro-ip4-novalid (8.1/22) (fail) ok # Macro expansion rules | p-macro-ip4-valid (8.1/22) (fail) ok # Macro expansion rules | p-macro-ip6-novalid (8.1/22) (fail) ok # Macro expansion rules | p-macro-ip6-valid (8.1/22) (fail) ok # Macro expansion rules | p-macro-multiple (8.1/22) (pass softfail) ok # Macro expansion rules | require-valid-helo (8.1/6) (fail) ok # Macro expansion rules | trailing-dot-domain (8.1/16) (pass) ok # Macro expansion rules | trailing-dot-exp (8.1) (fail) ok # Macro expansion rules | undef-macro (8.1/6) (permerror) ok # Macro expansion rules | upper-macro (8.1/26) (fail) ok # Macro expansion rules | v-macro-ip4 (8.1/6) (fail) ok # Macro expansion rules | v-macro-ip6 (8.1/6) (fail) ok # Processing limits | false-a-limit (10.1/7) (pass) ok # Processing limits | include-at-limit (10.1/6) (pass) ok # Processing limits | include-loop (10.1/6) (permerror) ok # Processing limits | include-over-limit (10.1/6) (permerror) ok # Processing limits | mech-at-limit (10.1/6) (pass) ok # Processing limits | mech-over-limit (10.1/6) (permerror) ok # Processing limits | mx-limit (10.1/7) (neutral pass) ok # Processing limits | ptr-limit (10.1/7) (neutral pass) - got pass ok # Processing limits | redirect-loop (10.1/6) (permerror) 1..342 ok t/03_spf-test-suite-rfc7208.t .. ok # Initial processing | domain-literal (4.3/1) (none) with additionals ok # Initial processing | emptylabel (4.3/1) (none) with additionals ok # Initial processing | helo-domain-literal (4.3/1) (none) with additionals ok # Initial processing | helo-not-fqdn (4.3/1) (none) with additionals ok # Initial processing | longlabel (4.3/1) (fail) with additionals ok # Initial processing | nolocalpart (4.3/2) (fail) with additionals ok # Initial processing | non-ascii-mech (3.1/1) (permerror) with additionals ok # Initial processing | non-ascii-non-spf (4.5/1) (fail) with additionals ok # Initial processing | non-ascii-policy (3.1/1) (permerror) with additionals ok # Initial processing | non-ascii-result (3.1/1) (permerror) with additionals ok # Initial processing | toolonglabel (4.3/1) (none) with additionals ok # Record lookup | alltimeout (4.4/2) (temperror) with additionals ok # Record lookup | both (4.4/1) (fail) with additionals ok # Record lookup | nospftxttimeout (4.4/1) (temperror) with additionals ok # Record lookup | spfonly (4.4/1) (none) with additionals ok # Record lookup | spftimeout (4.4/1) (fail) with additionals ok # Record lookup | txtonly (4.4/1) (fail) with additionals ok # Record lookup | txttimeout (4.4/1) (temperror) with additionals ok # Selecting records | case-insensitive (4.5/6) (softfail) with additionals ok # Selecting records | empty (4.5/4) (neutral) with additionals ok # Selecting records | multispf1 (4.5/6) (permerror fail) with additionals ok # Selecting records | multispf2 (4.5/6) (pass) with additionals ok # Selecting records | multitxt1 (4.5/5) (permerror) with additionals ok # Selecting records | multitxt2 (4.5/6) (permerror) with additionals ok # Selecting records | nospace1 (4.5/4) (none) with additionals ok # Selecting records | nospace2 (4.5/4) (pass) with additionals ok # Selecting records | nospf (4.5/7) (none) with additionals ok # Selecting records | spfoverride (4.5/5) (fail) with additionals ok # Record evaluation | default-result (4.7/1) (neutral) with additionals ok # Record evaluation | detect-errors-anywhere (4.6) (permerror) with additionals ok # Record evaluation | invalid-domain (7.1/2) (permerror) with additionals ok # Record evaluation | invalid-domain-empty-label (4.3/1, 4.8/5, 5/10/3) (fail permerror) with additionals - got permerror ok # Record evaluation | invalid-domain-long (4.3/1, 4.8/5, 5/10/3) (fail permerror) with additionals - got permerror ok # Record evaluation | invalid-domain-long-via-macro (4.3/1, 4.8/5, 5/10/3) (fail permerror) with additionals - got permerror ok # Record evaluation | modifier-charset-bad1 (4.6.1/4) (permerror) with additionals ok # Record evaluation | modifier-charset-bad2 (4.6.1/4) (permerror) with additionals ok # Record evaluation | modifier-charset-good (4.6.1/2) (pass) with additionals ok # Record evaluation | redirect-after-mechanisms1 (4.6.3) (softfail) with additionals ok # Record evaluation | redirect-after-mechanisms2 (4.6.3) (fail) with additionals ok # Record evaluation | redirect-is-modifier (4.6.1/4) (permerror) with additionals ok # ALL mechanism syntax | all-arg (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-cidr (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-dot (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-double (5.1/1) (pass) with additionals ok # ALL mechanism syntax | all-neutral (5.1/1) (neutral) with additionals ok # PTR mechanism syntax | ptr-cidr (5.5/2) (permerror) with additionals ok # PTR mechanism syntax | ptr-empty-domain (5.5/2) (permerror) with additionals ok # PTR mechanism syntax | ptr-match-implicit (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-match-ip6 (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-match-target (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-nomatch-invalid (5.5/5) (fail) with additionals ok # A mechanism syntax | a-bad-cidr4 (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-bad-cidr6 (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-bad-domain (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-bad-toplabel (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-cidr4-0 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-cidr4-0-ip6 (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6 (5.3/2) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip4 (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip4mapped (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip6 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-cidr6-0-nxdomain (5.3/3) (fail) with additionals ok # A mechanism syntax | a-colon-domain (7.1/2) (pass) with additionals ok # A mechanism syntax | a-colon-domain-ip4mapped (7.1/2) (pass) with additionals ok # A mechanism syntax | a-dash-in-toplabel (7.1/2) (pass) with additionals ok # A mechanism syntax | a-dual-cidr-ip4-default (5.3/2) (fail) with additionals ok # A mechanism syntax | a-dual-cidr-ip4-err (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-dual-cidr-ip4-match (5.3/2) (pass) with additionals ok # A mechanism syntax | a-dual-cidr-ip6-default (5.3/2) (fail) with additionals ok # A mechanism syntax | a-dual-cidr-ip6-match (5.3/2) (pass) with additionals ok # A mechanism syntax | a-empty-domain (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-ip6-dualstack (5.3/3) (pass) with additionals ok # A mechanism syntax | a-multi-ip1 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-multi-ip2 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-null (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-numeric (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-numeric-toplabel (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-nxdomain (5.3/3) (fail) with additionals ok # A mechanism syntax | a-only-toplabel (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-only-toplabel-trailing-dot (7.1/2) (permerror) with additionals ok # Include mechanism semantics and syntax | include-cidr (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-empty-domain (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-fail (5.2/9) (softfail) with additionals ok # Include mechanism semantics and syntax | include-neutral (5.2/9) (fail) with additionals ok # Include mechanism semantics and syntax | include-none (5.2/9) (permerror) with additionals ok # Include mechanism semantics and syntax | include-permerror (5.2/9) (permerror) with additionals ok # Include mechanism semantics and syntax | include-softfail (5.2/9) (pass) with additionals ok # Include mechanism semantics and syntax | include-syntax-error (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-temperror (5.2/9) (temperror) with additionals ok # MX mechanism syntax | mx-bad-cidr4 (5.4/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-cidr6 (5.4/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-domain (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-toplab (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-cidr4-0 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-cidr4-0-ip6 (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6 (5.4/2) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip4 (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip4mapped (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip6 (5.3/3) (pass) with additionals ok # MX mechanism syntax | mx-cidr6-0-nxdomain (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-colon-domain (7.1/2) (pass) with additionals ok # MX mechanism syntax | mx-colon-domain-ip4mapped (7.1/2) (pass) with additionals ok # MX mechanism syntax | mx-empty (5.4/3) (neutral) with additionals ok # MX mechanism syntax | mx-empty-domain (5.2/1) (permerror) with additionals ok # MX mechanism syntax | mx-implicit (5.4/4) (neutral) with additionals ok # MX mechanism syntax | mx-multi-ip1 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-multi-ip2 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-null (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-numeric-top-label (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-nxdomain (5.4/3) (fail) with additionals ok # EXISTS mechanism syntax | exists-cidr (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-dnserr (5/8) (temperror) with additionals ok # EXISTS mechanism syntax | exists-empty-domain (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-implicit (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-ip4 (5.7/3) (pass) with additionals ok # EXISTS mechanism syntax | exists-ip6 (5.7/3) (pass) with additionals ok # EXISTS mechanism syntax | exists-ip6only (5.7/3) (fail) with additionals ok # IP4 mechanism syntax | bad-ip4-port (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | bad-ip4-short (5.6/4) (permerror) with additionals ok # IP4 mechanism syntax | bare-ip4 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | cidr4-0 (5.6/2) (pass) with additionals ok # IP4 mechanism syntax | cidr4-032 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | cidr4-32 (5.6/2) (pass) with additionals ok # IP4 mechanism syntax | cidr4-33 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | ip4-dual-cidr (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | ip4-mapped-ip6 (5/9/2) (fail) with additionals ok # IP6 mechanism syntax | bare-ip6 (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-0 (5/8) (pass) with additionals ok # IP6 mechanism syntax | cidr6-0-ip4 (5/9/2) (neutral) with additionals ok # IP6 mechanism syntax | cidr6-129 (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-33 (5.6/2) (pass) with additionals ok # IP6 mechanism syntax | cidr6-33-ip4 (5.6/2) (neutral) with additionals ok # IP6 mechanism syntax | cidr6-bad (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-ip4 (5/9/2) (neutral) with additionals ok # IP6 mechanism syntax | ip6-bad1 (5.6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | default-modifier-obsolete (6/3) (neutral) with additionals ok # Semantics of exp and other modifiers | default-modifier-obsolete2 (6/3) (neutral) with additionals ok # Semantics of exp and other modifiers | dorky-sentinel (7.1/6) (fail) with additionals ok # Semantics of exp and other modifiers | empty-modifier-name (A/3) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-dns-error (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-empty-domain (6.2/4) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-multiple-txt (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-no-txt (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-syntax-error (6.2/1) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-twice (6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-void (4.6.4/1, 6/2) (fail) with additionals ok # Semantics of exp and other modifiers | explanation-syntax-error (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | include-ignores-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | invalid-modifier (A/3) (permerror) with additionals ok # Semantics of exp and other modifiers | non-ascii-exp (6.2/5) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-cancels-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-cancels-prior-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-empty-domain (6.2/4) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-none (6.1/4) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-syntax-error (6.1/2) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-twice (6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | two-exp-records (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | unknown-modifier-syntax (A/3) (permerror) with additionals ok # Macro expansion rules | domain-name-truncation (7.1/25) (fail) with additionals ok # Macro expansion rules | exp-only-macro-char (7.1/8) (permerror) with additionals ok # Macro expansion rules | exp-txt-macro-char (7.1/20) (fail) with additionals ok # Macro expansion rules | hello-domain-literal (7.1/2) (fail) with additionals ok # Macro expansion rules | hello-macro (7.1/6) (pass) with additionals ok # Macro expansion rules | invalid-embedded-macro-char (7.1/9) (permerror) with additionals ok # Macro expansion rules | invalid-hello-macro (7.1/2) (fail) with additionals ok # Macro expansion rules | invalid-macro-char (7.1/9) (permerror) with additionals ok # Macro expansion rules | invalid-trailing-macro-char (7.1/9) (permerror) with additionals ok # Macro expansion rules | macro-mania-in-domain (7.1/3, 7.1/4) (pass) with additionals ok # Macro expansion rules | macro-multiple-delimiters (7.1/15, 7.1/16) (pass) with additionals ok # Macro expansion rules | macro-reverse-split-on-dash (7.1/15, 7.1/16, 7.1/17, 7.1/18) (pass) with additionals ok # Macro expansion rules | p-macro-ip4-novalid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip4-valid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip6-novalid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip6-valid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-multiple (7.1/22) (pass softfail) with additionals ok # Macro expansion rules | require-valid-helo (7.1/6) (fail) with additionals ok # Macro expansion rules | trailing-dot-domain (7.1/16) (pass) with additionals ok # Macro expansion rules | trailing-dot-exp (7.1) (fail) with additionals ok # Macro expansion rules | undef-macro (7.1/6) (permerror) with additionals ok # Macro expansion rules | upper-macro (7.1/26) (fail) with additionals ok # Macro expansion rules | v-macro-ip4 (7.1/6) (fail) with additionals ok # Macro expansion rules | v-macro-ip6 (7.1/6) (fail) with additionals ok # Processing limits | false-a-limit (4.6.4) (pass) with additionals ok # Processing limits | include-at-limit (4.6.4/1) (pass) with additionals ok # Processing limits | include-loop (4.6.4/1) (permerror) with additionals ok # Processing limits | include-over-limit (4.6.4/1) (permerror) with additionals ok # Processing limits | mech-at-limit (4.6.4/1) (pass) with additionals ok # Processing limits | mech-over-limit (4.6.4/1) (permerror) with additionals ok # Processing limits | mx-limit (4.6.4/2) (permerror) with additionals ok # Processing limits | ptr-limit (4.6.4/3) (neutral pass) with additionals - got pass ok # Processing limits | redirect-loop (4.6.4/1) (permerror) with additionals ok # Processing limits | void-at-limit (4.6.4/7) (neutral) with additionals ok # Processing limits | void-over-limit (4.6.4/7) (permerror) with additionals ok # Initial processing | domain-literal (4.3/1) (none) ok # Initial processing | emptylabel (4.3/1) (none) ok # Initial processing | helo-domain-literal (4.3/1) (none) ok # Initial processing | helo-not-fqdn (4.3/1) (none) ok # Initial processing | longlabel (4.3/1) (fail) ok # Initial processing | nolocalpart (4.3/2) (fail) ok # Initial processing | non-ascii-mech (3.1/1) (permerror) ok # Initial processing | non-ascii-non-spf (4.5/1) (fail) ok # Initial processing | non-ascii-policy (3.1/1) (permerror) ok # Initial processing | non-ascii-result (3.1/1) (permerror) ok # Initial processing | toolonglabel (4.3/1) (none) ok # Record lookup | alltimeout (4.4/2) (temperror) ok # Record lookup | both (4.4/1) (fail) ok # Record lookup | nospftxttimeout (4.4/1) (temperror) ok # Record lookup | spfonly (4.4/1) (none) ok # Record lookup | spftimeout (4.4/1) (fail) ok # Record lookup | txtonly (4.4/1) (fail) ok # Record lookup | txttimeout (4.4/1) (temperror) ok # Selecting records | case-insensitive (4.5/6) (softfail) ok # Selecting records | empty (4.5/4) (neutral) ok # Selecting records | multispf1 (4.5/6) (permerror fail) ok # Selecting records | multispf2 (4.5/6) (pass) ok # Selecting records | multitxt1 (4.5/5) (permerror) ok # Selecting records | multitxt2 (4.5/6) (permerror) ok # Selecting records | nospace1 (4.5/4) (none) ok # Selecting records | nospace2 (4.5/4) (pass) ok # Selecting records | nospf (4.5/7) (none) ok # Selecting records | spfoverride (4.5/5) (fail) ok # Record evaluation | default-result (4.7/1) (neutral) ok # Record evaluation | detect-errors-anywhere (4.6) (permerror) ok # Record evaluation | invalid-domain (7.1/2) (permerror) ok # Record evaluation | invalid-domain-empty-label (4.3/1, 4.8/5, 5/10/3) (fail permerror) - got permerror ok # Record evaluation | invalid-domain-long (4.3/1, 4.8/5, 5/10/3) (fail permerror) - got permerror ok # Record evaluation | invalid-domain-long-via-macro (4.3/1, 4.8/5, 5/10/3) (fail permerror) - got permerror ok # Record evaluation | modifier-charset-bad1 (4.6.1/4) (permerror) ok # Record evaluation | modifier-charset-bad2 (4.6.1/4) (permerror) ok # Record evaluation | modifier-charset-good (4.6.1/2) (pass) ok # Record evaluation | redirect-after-mechanisms1 (4.6.3) (softfail) ok # Record evaluation | redirect-after-mechanisms2 (4.6.3) (fail) ok # Record evaluation | redirect-is-modifier (4.6.1/4) (permerror) ok # ALL mechanism syntax | all-arg (5.1/1) (permerror) ok # ALL mechanism syntax | all-cidr (5.1/1) (permerror) ok # ALL mechanism syntax | all-dot (5.1/1) (permerror) ok # ALL mechanism syntax | all-double (5.1/1) (pass) ok # ALL mechanism syntax | all-neutral (5.1/1) (neutral) ok # PTR mechanism syntax | ptr-cidr (5.5/2) (permerror) ok # PTR mechanism syntax | ptr-empty-domain (5.5/2) (permerror) ok # PTR mechanism syntax | ptr-match-implicit (5.5/5) (pass) ok # PTR mechanism syntax | ptr-match-ip6 (5.5/5) (pass) ok # PTR mechanism syntax | ptr-match-target (5.5/5) (pass) ok # PTR mechanism syntax | ptr-nomatch-invalid (5.5/5) (fail) ok # A mechanism syntax | a-bad-cidr4 (5.3/2) (permerror) ok # A mechanism syntax | a-bad-cidr6 (5.3/2) (permerror) ok # A mechanism syntax | a-bad-domain (7.1/2) (permerror) ok # A mechanism syntax | a-bad-toplabel (7.1/2) (permerror) ok # A mechanism syntax | a-cidr4-0 (5.3/3) (pass) ok # A mechanism syntax | a-cidr4-0-ip6 (5.3/3) (fail) ok # A mechanism syntax | a-cidr6 (5.3/2) (fail) ok # A mechanism syntax | a-cidr6-0-ip4 (5.3/3) (fail) ok # A mechanism syntax | a-cidr6-0-ip4mapped (5.3/3) (fail) ok # A mechanism syntax | a-cidr6-0-ip6 (5.3/3) (pass) ok # A mechanism syntax | a-cidr6-0-nxdomain (5.3/3) (fail) ok # A mechanism syntax | a-colon-domain (7.1/2) (pass) ok # A mechanism syntax | a-colon-domain-ip4mapped (7.1/2) (pass) ok # A mechanism syntax | a-dash-in-toplabel (7.1/2) (pass) ok # A mechanism syntax | a-dual-cidr-ip4-default (5.3/2) (fail) ok # A mechanism syntax | a-dual-cidr-ip4-err (5.3/2) (permerror) ok # A mechanism syntax | a-dual-cidr-ip4-match (5.3/2) (pass) ok # A mechanism syntax | a-dual-cidr-ip6-default (5.3/2) (fail) ok # A mechanism syntax | a-dual-cidr-ip6-match (5.3/2) (pass) ok # A mechanism syntax | a-empty-domain (5.3/2) (permerror) ok # A mechanism syntax | a-ip6-dualstack (5.3/3) (pass) ok # A mechanism syntax | a-multi-ip1 (5.3/3) (pass) ok # A mechanism syntax | a-multi-ip2 (5.3/3) (pass) ok # A mechanism syntax | a-null (7.1/2) (permerror) ok # A mechanism syntax | a-numeric (7.1/2) (permerror) ok # A mechanism syntax | a-numeric-toplabel (7.1/2) (permerror) ok # A mechanism syntax | a-nxdomain (5.3/3) (fail) ok # A mechanism syntax | a-only-toplabel (7.1/2) (permerror) ok # A mechanism syntax | a-only-toplabel-trailing-dot (7.1/2) (permerror) ok # Include mechanism semantics and syntax | include-cidr (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-empty-domain (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-fail (5.2/9) (softfail) ok # Include mechanism semantics and syntax | include-neutral (5.2/9) (fail) ok # Include mechanism semantics and syntax | include-none (5.2/9) (permerror) ok # Include mechanism semantics and syntax | include-permerror (5.2/9) (permerror) ok # Include mechanism semantics and syntax | include-softfail (5.2/9) (pass) ok # Include mechanism semantics and syntax | include-syntax-error (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-temperror (5.2/9) (temperror) ok # MX mechanism syntax | mx-bad-cidr4 (5.4/2) (permerror) ok # MX mechanism syntax | mx-bad-cidr6 (5.4/2) (permerror) ok # MX mechanism syntax | mx-bad-domain (7.1/2) (permerror) ok # MX mechanism syntax | mx-bad-toplab (7.1/2) (permerror) ok # MX mechanism syntax | mx-cidr4-0 (5.4/3) (pass) ok # MX mechanism syntax | mx-cidr4-0-ip6 (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6 (5.4/2) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip4 (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip4mapped (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip6 (5.3/3) (pass) ok # MX mechanism syntax | mx-cidr6-0-nxdomain (5.4/3) (fail) ok # MX mechanism syntax | mx-colon-domain (7.1/2) (pass) ok # MX mechanism syntax | mx-colon-domain-ip4mapped (7.1/2) (pass) ok # MX mechanism syntax | mx-empty (5.4/3) (neutral) ok # MX mechanism syntax | mx-empty-domain (5.2/1) (permerror) ok # MX mechanism syntax | mx-implicit (5.4/4) (neutral) ok # MX mechanism syntax | mx-multi-ip1 (5.4/3) (pass) ok # MX mechanism syntax | mx-multi-ip2 (5.4/3) (pass) ok # MX mechanism syntax | mx-null (7.1/2) (permerror) ok # MX mechanism syntax | mx-numeric-top-label (7.1/2) (permerror) ok # MX mechanism syntax | mx-nxdomain (5.4/3) (fail) ok # EXISTS mechanism syntax | exists-cidr (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-dnserr (5/8) (temperror) ok # EXISTS mechanism syntax | exists-empty-domain (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-implicit (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-ip4 (5.7/3) (pass) ok # EXISTS mechanism syntax | exists-ip6 (5.7/3) (pass) ok # EXISTS mechanism syntax | exists-ip6only (5.7/3) (fail) ok # IP4 mechanism syntax | bad-ip4-port (5.6/2) (permerror) ok # IP4 mechanism syntax | bad-ip4-short (5.6/4) (permerror) ok # IP4 mechanism syntax | bare-ip4 (5.6/2) (permerror) ok # IP4 mechanism syntax | cidr4-0 (5.6/2) (pass) ok # IP4 mechanism syntax | cidr4-032 (5.6/2) (permerror) ok # IP4 mechanism syntax | cidr4-32 (5.6/2) (pass) ok # IP4 mechanism syntax | cidr4-33 (5.6/2) (permerror) ok # IP4 mechanism syntax | ip4-dual-cidr (5.6/2) (permerror) ok # IP4 mechanism syntax | ip4-mapped-ip6 (5/9/2) (fail) ok # IP6 mechanism syntax | bare-ip6 (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-0 (5/8) (pass) ok # IP6 mechanism syntax | cidr6-0-ip4 (5/9/2) (neutral) ok # IP6 mechanism syntax | cidr6-129 (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-33 (5.6/2) (pass) ok # IP6 mechanism syntax | cidr6-33-ip4 (5.6/2) (neutral) ok # IP6 mechanism syntax | cidr6-bad (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-ip4 (5/9/2) (neutral) ok # IP6 mechanism syntax | ip6-bad1 (5.6/2) (permerror) ok # Semantics of exp and other modifiers | default-modifier-obsolete (6/3) (neutral) ok # Semantics of exp and other modifiers | default-modifier-obsolete2 (6/3) (neutral) ok # Semantics of exp and other modifiers | dorky-sentinel (7.1/6) (fail) ok # Semantics of exp and other modifiers | empty-modifier-name (A/3) (permerror) ok # Semantics of exp and other modifiers | exp-dns-error (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-empty-domain (6.2/4) (permerror) ok # Semantics of exp and other modifiers | exp-multiple-txt (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-no-txt (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-syntax-error (6.2/1) (permerror) ok # Semantics of exp and other modifiers | exp-twice (6/2) (permerror) ok # Semantics of exp and other modifiers | exp-void (4.6.4/1, 6/2) (fail) ok # Semantics of exp and other modifiers | explanation-syntax-error (6.2/4) (fail) ok # Semantics of exp and other modifiers | include-ignores-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | invalid-modifier (A/3) (permerror) ok # Semantics of exp and other modifiers | non-ascii-exp (6.2/5) (fail) ok # Semantics of exp and other modifiers | redirect-cancels-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | redirect-cancels-prior-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | redirect-empty-domain (6.2/4) (permerror) ok # Semantics of exp and other modifiers | redirect-none (6.1/4) (permerror) ok # Semantics of exp and other modifiers | redirect-syntax-error (6.1/2) (permerror) ok # Semantics of exp and other modifiers | redirect-twice (6/2) (permerror) ok # Semantics of exp and other modifiers | two-exp-records (6.2/4) (fail) ok # Semantics of exp and other modifiers | unknown-modifier-syntax (A/3) (permerror) ok # Macro expansion rules | domain-name-truncation (7.1/25) (fail) ok # Macro expansion rules | exp-only-macro-char (7.1/8) (permerror) ok # Macro expansion rules | exp-txt-macro-char (7.1/20) (fail) ok # Macro expansion rules | hello-domain-literal (7.1/2) (fail) ok # Macro expansion rules | hello-macro (7.1/6) (pass) ok # Macro expansion rules | invalid-embedded-macro-char (7.1/9) (permerror) ok # Macro expansion rules | invalid-hello-macro (7.1/2) (fail) ok # Macro expansion rules | invalid-macro-char (7.1/9) (permerror) ok # Macro expansion rules | invalid-trailing-macro-char (7.1/9) (permerror) ok # Macro expansion rules | macro-mania-in-domain (7.1/3, 7.1/4) (pass) ok # Macro expansion rules | macro-multiple-delimiters (7.1/15, 7.1/16) (pass) ok # Macro expansion rules | macro-reverse-split-on-dash (7.1/15, 7.1/16, 7.1/17, 7.1/18) (pass) ok # Macro expansion rules | p-macro-ip4-novalid (7.1/22) (fail) ok # Macro expansion rules | p-macro-ip4-valid (7.1/22) (fail) ok # Macro expansion rules | p-macro-ip6-novalid (7.1/22) (fail) ok # Macro expansion rules | p-macro-ip6-valid (7.1/22) (fail) ok # Macro expansion rules | p-macro-multiple (7.1/22) (pass softfail) ok # Macro expansion rules | require-valid-helo (7.1/6) (fail) ok # Macro expansion rules | trailing-dot-domain (7.1/16) (pass) ok # Macro expansion rules | trailing-dot-exp (7.1) (fail) ok # Macro expansion rules | undef-macro (7.1/6) (permerror) ok # Macro expansion rules | upper-macro (7.1/26) (fail) ok # Macro expansion rules | v-macro-ip4 (7.1/6) (fail) ok # Macro expansion rules | v-macro-ip6 (7.1/6) (fail) ok # Processing limits | false-a-limit (4.6.4) (pass) ok # Processing limits | include-at-limit (4.6.4/1) (pass) ok # Processing limits | include-loop (4.6.4/1) (permerror) ok # Processing limits | include-over-limit (4.6.4/1) (permerror) ok # Processing limits | mech-at-limit (4.6.4/1) (pass) ok # Processing limits | mech-over-limit (4.6.4/1) (permerror) ok # Processing limits | mx-limit (4.6.4/2) (permerror) ok # Processing limits | ptr-limit (4.6.4/3) (neutral pass) - got pass ok # Processing limits | redirect-loop (4.6.4/1) (permerror) ok # Processing limits | void-at-limit (4.6.4/7) (neutral) ok # Processing limits | void-over-limit (4.6.4/7) (permerror) 1..386 ok t/04_misc.t .................... ok # various other tests | domain-dots-at-end (4.3/1) (none) with additionals ok # various other tests | p-in-exp-mod () (fail) with additionals ok # various other tests | ptr-cname () (pass) with additionals ok # various other tests | second-include () (pass) with additionals ok # various other tests | sender-id () (pass) with additionals ok # various other tests | sender-id-pick-mfrom1 () (pass) with additionals ok # various other tests | sender-id-pick-mfrom2 () (fail) with additionals ok # various other tests | sender-id-pick-spf () (pass) with additionals ok # various other tests | spf-by-cname () (pass) with additionals ok # various other tests | domain-dots-at-end (4.3/1) (none) ok # various other tests | p-in-exp-mod () (fail) ok # various other tests | ptr-cname () (pass) ok # various other tests | second-include () (pass) ok # various other tests | sender-id () (pass) ok # various other tests | sender-id-pick-mfrom1 () (pass) ok # various other tests | sender-id-pick-mfrom2 () (fail) ok # various other tests | sender-id-pick-spf () (pass) ok # various other tests | spf-by-cname () (pass) 1..18 ok t/05_pass_all.t ................ ok # test option pass_all to detect pass all policies | +all () (softfail) with additionals ok # test option pass_all to detect pass all policies | -a:... +all () (pass) with additionals ok # test option pass_all to detect pass all policies | all () (softfail) with additionals ok # test option pass_all to detect pass all policies | include +all () (pass) with additionals ok # test option pass_all to detect pass all policies | +all () (softfail) ok # test option pass_all to detect pass all policies | -a:... +all () (pass) ok # test option pass_all to detect pass all policies | all () (softfail) ok # test option pass_all to detect pass all policies | include +all () (pass) ok # test option pass_all to detect pass all policies | +all () (pass) with additionals ok # test option pass_all to detect pass all policies | -a:... +all () (pass) with additionals ok # test option pass_all to detect pass all policies | all () (pass) with additionals ok # test option pass_all to detect pass all policies | include +all () (pass) with additionals ok # test option pass_all to detect pass all policies | +all () (pass) ok # test option pass_all to detect pass all policies | -a:... +all () (pass) ok # test option pass_all to detect pass all policies | all () (pass) ok # test option pass_all to detect pass all policies | include +all () (pass) ok # Initial processing | domain-literal (4.3/1) (none) with additionals ok # Initial processing | emptylabel (4.3/1) (none) with additionals ok # Initial processing | helo-domain-literal (4.3/1) (none) with additionals ok # Initial processing | helo-not-fqdn (4.3/1) (none) with additionals ok # Initial processing | longlabel (4.3/1) (fail) with additionals ok # Initial processing | nolocalpart (4.3/2) (fail) with additionals ok # Initial processing | non-ascii-mech (3.1/1) (permerror) with additionals ok # Initial processing | non-ascii-non-spf (4.5/1) (fail) with additionals ok # Initial processing | non-ascii-policy (3.1/1) (permerror) with additionals ok # Initial processing | non-ascii-result (3.1/1) (permerror) with additionals ok # Initial processing | toolonglabel (4.3/1) (none) with additionals ok # Record lookup | alltimeout (4.4/2) (temperror) with additionals ok # Record lookup | both (4.4/1) (fail) with additionals ok # Record lookup | nospftxttimeout (4.4/1) (temperror) with additionals ok # Record lookup | spfonly (4.4/1) (none) with additionals ok # Record lookup | spftimeout (4.4/1) (fail) with additionals ok # Record lookup | txtonly (4.4/1) (fail) with additionals ok # Record lookup | txttimeout (4.4/1) (temperror) with additionals ok # Selecting records | case-insensitive (4.5/6) (softfail) with additionals ok # Selecting records | empty (4.5/4) (neutral) with additionals ok # Selecting records | multispf1 (4.5/6) (permerror fail) with additionals ok # Selecting records | multitxt1 (4.5/5) (permerror) with additionals ok # Selecting records | multitxt2 (4.5/6) (permerror) with additionals ok # Selecting records | nospace1 (4.5/4) (none) with additionals ok # Selecting records | nospace2 (4.5/4) (pass) with additionals ok # Selecting records | nospf (4.5/7) (none) with additionals ok # Selecting records | spfoverride (4.5/5) (fail) with additionals ok # Record evaluation | default-result (4.7/1) (neutral) with additionals ok # Record evaluation | detect-errors-anywhere (4.6) (permerror) with additionals ok # Record evaluation | invalid-domain (7.1/2) (permerror) with additionals ok # Record evaluation | invalid-domain-empty-label (4.3/1, 4.8/5, 5/10/3) (fail permerror) with additionals - got permerror ok # Record evaluation | invalid-domain-long (4.3/1, 4.8/5, 5/10/3) (fail permerror) with additionals - got permerror ok # Record evaluation | invalid-domain-long-via-macro (4.3/1, 4.8/5, 5/10/3) (fail permerror) with additionals - got permerror ok # Record evaluation | modifier-charset-bad1 (4.6.1/4) (permerror) with additionals ok # Record evaluation | modifier-charset-bad2 (4.6.1/4) (permerror) with additionals ok # Record evaluation | modifier-charset-good (4.6.1/2) (pass) with additionals ok # Record evaluation | redirect-after-mechanisms1 (4.6.3) (softfail) with additionals ok # Record evaluation | redirect-after-mechanisms2 (4.6.3) (fail) with additionals ok # Record evaluation | redirect-is-modifier (4.6.1/4) (permerror) with additionals ok # ALL mechanism syntax | all-arg (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-cidr (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-dot (5.1/1) (permerror) with additionals ok # ALL mechanism syntax | all-neutral (5.1/1) (neutral) with additionals ok # PTR mechanism syntax | ptr-cidr (5.5/2) (permerror) with additionals ok # PTR mechanism syntax | ptr-empty-domain (5.5/2) (permerror) with additionals ok # PTR mechanism syntax | ptr-match-implicit (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-match-ip6 (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-match-target (5.5/5) (pass) with additionals ok # PTR mechanism syntax | ptr-nomatch-invalid (5.5/5) (fail) with additionals ok # A mechanism syntax | a-bad-cidr4 (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-bad-cidr6 (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-bad-domain (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-bad-toplabel (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-cidr4-0 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-cidr4-0-ip6 (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6 (5.3/2) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip4 (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip4mapped (5.3/3) (fail) with additionals ok # A mechanism syntax | a-cidr6-0-ip6 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-cidr6-0-nxdomain (5.3/3) (fail) with additionals ok # A mechanism syntax | a-colon-domain (7.1/2) (pass) with additionals ok # A mechanism syntax | a-colon-domain-ip4mapped (7.1/2) (pass) with additionals ok # A mechanism syntax | a-dash-in-toplabel (7.1/2) (pass) with additionals ok # A mechanism syntax | a-dual-cidr-ip4-default (5.3/2) (fail) with additionals ok # A mechanism syntax | a-dual-cidr-ip4-err (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-dual-cidr-ip4-match (5.3/2) (pass) with additionals ok # A mechanism syntax | a-dual-cidr-ip6-default (5.3/2) (fail) with additionals ok # A mechanism syntax | a-dual-cidr-ip6-match (5.3/2) (pass) with additionals ok # A mechanism syntax | a-empty-domain (5.3/2) (permerror) with additionals ok # A mechanism syntax | a-ip6-dualstack (5.3/3) (pass) with additionals ok # A mechanism syntax | a-multi-ip1 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-multi-ip2 (5.3/3) (pass) with additionals ok # A mechanism syntax | a-null (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-numeric (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-numeric-toplabel (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-nxdomain (5.3/3) (fail) with additionals ok # A mechanism syntax | a-only-toplabel (7.1/2) (permerror) with additionals ok # A mechanism syntax | a-only-toplabel-trailing-dot (7.1/2) (permerror) with additionals ok # Include mechanism semantics and syntax | include-cidr (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-empty-domain (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-fail (5.2/9) (softfail) with additionals ok # Include mechanism semantics and syntax | include-neutral (5.2/9) (fail) with additionals ok # Include mechanism semantics and syntax | include-none (5.2/9) (permerror) with additionals ok # Include mechanism semantics and syntax | include-permerror (5.2/9) (permerror) with additionals ok # Include mechanism semantics and syntax | include-softfail (5.2/9) (pass) with additionals ok # Include mechanism semantics and syntax | include-syntax-error (5.2/1) (permerror) with additionals ok # Include mechanism semantics and syntax | include-temperror (5.2/9) (temperror) with additionals ok # MX mechanism syntax | mx-bad-cidr4 (5.4/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-cidr6 (5.4/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-domain (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-bad-toplab (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-cidr4-0 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-cidr4-0-ip6 (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6 (5.4/2) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip4 (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip4mapped (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-cidr6-0-ip6 (5.3/3) (pass) with additionals ok # MX mechanism syntax | mx-cidr6-0-nxdomain (5.4/3) (fail) with additionals ok # MX mechanism syntax | mx-colon-domain (7.1/2) (pass) with additionals ok # MX mechanism syntax | mx-colon-domain-ip4mapped (7.1/2) (pass) with additionals ok # MX mechanism syntax | mx-empty (5.4/3) (neutral) with additionals ok # MX mechanism syntax | mx-empty-domain (5.2/1) (permerror) with additionals ok # MX mechanism syntax | mx-implicit (5.4/4) (neutral) with additionals ok # MX mechanism syntax | mx-multi-ip1 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-multi-ip2 (5.4/3) (pass) with additionals ok # MX mechanism syntax | mx-null (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-numeric-top-label (7.1/2) (permerror) with additionals ok # MX mechanism syntax | mx-nxdomain (5.4/3) (fail) with additionals ok # EXISTS mechanism syntax | exists-cidr (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-dnserr (5/8) (temperror) with additionals ok # EXISTS mechanism syntax | exists-empty-domain (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-implicit (5.7/2) (permerror) with additionals ok # EXISTS mechanism syntax | exists-ip4 (5.7/3) (pass) with additionals ok # EXISTS mechanism syntax | exists-ip6 (5.7/3) (pass) with additionals ok # EXISTS mechanism syntax | exists-ip6only (5.7/3) (fail) with additionals ok # IP4 mechanism syntax | bad-ip4-port (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | bad-ip4-short (5.6/4) (permerror) with additionals ok # IP4 mechanism syntax | bare-ip4 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | cidr4-0 (5.6/2) (pass) with additionals ok # IP4 mechanism syntax | cidr4-032 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | cidr4-32 (5.6/2) (pass) with additionals ok # IP4 mechanism syntax | cidr4-33 (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | ip4-dual-cidr (5.6/2) (permerror) with additionals ok # IP4 mechanism syntax | ip4-mapped-ip6 (5/9/2) (fail) with additionals ok # IP6 mechanism syntax | bare-ip6 (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-0 (5/8) (pass) with additionals ok # IP6 mechanism syntax | cidr6-0-ip4 (5/9/2) (neutral) with additionals ok # IP6 mechanism syntax | cidr6-129 (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-33 (5.6/2) (pass) with additionals ok # IP6 mechanism syntax | cidr6-33-ip4 (5.6/2) (neutral) with additionals ok # IP6 mechanism syntax | cidr6-bad (5.6/2) (permerror) with additionals ok # IP6 mechanism syntax | cidr6-ip4 (5/9/2) (neutral) with additionals ok # IP6 mechanism syntax | ip6-bad1 (5.6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | default-modifier-obsolete (6/3) (neutral) with additionals ok # Semantics of exp and other modifiers | default-modifier-obsolete2 (6/3) (neutral) with additionals ok # Semantics of exp and other modifiers | dorky-sentinel (7.1/6) (fail) with additionals ok # Semantics of exp and other modifiers | empty-modifier-name (A/3) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-dns-error (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-empty-domain (6.2/4) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-multiple-txt (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-no-txt (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | exp-syntax-error (6.2/1) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-twice (6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | exp-void (4.6.4/1, 6/2) (fail) with additionals ok # Semantics of exp and other modifiers | explanation-syntax-error (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | include-ignores-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | invalid-modifier (A/3) (permerror) with additionals ok # Semantics of exp and other modifiers | non-ascii-exp (6.2/5) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-cancels-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-cancels-prior-exp (6.2/13) (fail) with additionals ok # Semantics of exp and other modifiers | redirect-empty-domain (6.2/4) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-none (6.1/4) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-syntax-error (6.1/2) (permerror) with additionals ok # Semantics of exp and other modifiers | redirect-twice (6/2) (permerror) with additionals ok # Semantics of exp and other modifiers | two-exp-records (6.2/4) (fail) with additionals ok # Semantics of exp and other modifiers | unknown-modifier-syntax (A/3) (permerror) with additionals ok # Macro expansion rules | domain-name-truncation (7.1/25) (fail) with additionals ok # Macro expansion rules | exp-only-macro-char (7.1/8) (permerror) with additionals ok # Macro expansion rules | exp-txt-macro-char (7.1/20) (fail) with additionals ok # Macro expansion rules | hello-domain-literal (7.1/2) (fail) with additionals ok # Macro expansion rules | hello-macro (7.1/6) (pass) with additionals ok # Macro expansion rules | invalid-embedded-macro-char (7.1/9) (permerror) with additionals ok # Macro expansion rules | invalid-hello-macro (7.1/2) (fail) with additionals ok # Macro expansion rules | invalid-macro-char (7.1/9) (permerror) with additionals ok # Macro expansion rules | invalid-trailing-macro-char (7.1/9) (permerror) with additionals ok # Macro expansion rules | macro-mania-in-domain (7.1/3, 7.1/4) (pass) with additionals ok # Macro expansion rules | macro-multiple-delimiters (7.1/15, 7.1/16) (pass) with additionals ok # Macro expansion rules | macro-reverse-split-on-dash (7.1/15, 7.1/16, 7.1/17, 7.1/18) (pass) with additionals ok # Macro expansion rules | p-macro-ip4-novalid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip4-valid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip6-novalid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-ip6-valid (7.1/22) (fail) with additionals ok # Macro expansion rules | p-macro-multiple (7.1/22) (pass softfail) with additionals ok # Macro expansion rules | require-valid-helo (7.1/6) (fail) with additionals ok # Macro expansion rules | trailing-dot-domain (7.1/16) (pass) with additionals ok # Macro expansion rules | trailing-dot-exp (7.1) (fail) with additionals ok # Macro expansion rules | undef-macro (7.1/6) (permerror) with additionals ok # Macro expansion rules | upper-macro (7.1/26) (fail) with additionals ok # Macro expansion rules | v-macro-ip4 (7.1/6) (fail) with additionals ok # Macro expansion rules | v-macro-ip6 (7.1/6) (fail) with additionals ok # Processing limits | false-a-limit (4.6.4) (pass) with additionals ok # Processing limits | include-at-limit (4.6.4/1) (pass) with additionals ok # Processing limits | include-loop (4.6.4/1) (permerror) with additionals ok # Processing limits | include-over-limit (4.6.4/1) (permerror) with additionals ok # Processing limits | mech-at-limit (4.6.4/1) (pass) with additionals ok # Processing limits | mech-over-limit (4.6.4/1) (permerror) with additionals ok # Processing limits | mx-limit (4.6.4/2) (permerror) with additionals ok # Processing limits | ptr-limit (4.6.4/3) (neutral pass) with additionals - got pass ok # Processing limits | redirect-loop (4.6.4/1) (permerror) with additionals ok # Processing limits | void-at-limit (4.6.4/7) (neutral) with additionals ok # Processing limits | void-over-limit (4.6.4/7) (permerror) with additionals ok # Initial processing | domain-literal (4.3/1) (none) ok # Initial processing | emptylabel (4.3/1) (none) ok # Initial processing | helo-domain-literal (4.3/1) (none) ok # Initial processing | helo-not-fqdn (4.3/1) (none) ok # Initial processing | longlabel (4.3/1) (fail) ok # Initial processing | nolocalpart (4.3/2) (fail) ok # Initial processing | non-ascii-mech (3.1/1) (permerror) ok # Initial processing | non-ascii-non-spf (4.5/1) (fail) ok # Initial processing | non-ascii-policy (3.1/1) (permerror) ok # Initial processing | non-ascii-result (3.1/1) (permerror) ok # Initial processing | toolonglabel (4.3/1) (none) ok # Record lookup | alltimeout (4.4/2) (temperror) ok # Record lookup | both (4.4/1) (fail) ok # Record lookup | nospftxttimeout (4.4/1) (temperror) ok # Record lookup | spfonly (4.4/1) (none) ok # Record lookup | spftimeout (4.4/1) (fail) ok # Record lookup | txtonly (4.4/1) (fail) ok # Record lookup | txttimeout (4.4/1) (temperror) ok # Selecting records | case-insensitive (4.5/6) (softfail) ok # Selecting records | empty (4.5/4) (neutral) ok # Selecting records | multispf1 (4.5/6) (permerror fail) ok # Selecting records | multitxt1 (4.5/5) (permerror) ok # Selecting records | multitxt2 (4.5/6) (permerror) ok # Selecting records | nospace1 (4.5/4) (none) ok # Selecting records | nospace2 (4.5/4) (pass) ok # Selecting records | nospf (4.5/7) (none) ok # Selecting records | spfoverride (4.5/5) (fail) ok # Record evaluation | default-result (4.7/1) (neutral) ok # Record evaluation | detect-errors-anywhere (4.6) (permerror) ok # Record evaluation | invalid-domain (7.1/2) (permerror) ok # Record evaluation | invalid-domain-empty-label (4.3/1, 4.8/5, 5/10/3) (fail permerror) - got permerror ok # Record evaluation | invalid-domain-long (4.3/1, 4.8/5, 5/10/3) (fail permerror) - got permerror ok # Record evaluation | invalid-domain-long-via-macro (4.3/1, 4.8/5, 5/10/3) (fail permerror) - got permerror ok # Record evaluation | modifier-charset-bad1 (4.6.1/4) (permerror) ok # Record evaluation | modifier-charset-bad2 (4.6.1/4) (permerror) ok # Record evaluation | modifier-charset-good (4.6.1/2) (pass) ok # Record evaluation | redirect-after-mechanisms1 (4.6.3) (softfail) ok # Record evaluation | redirect-after-mechanisms2 (4.6.3) (fail) ok # Record evaluation | redirect-is-modifier (4.6.1/4) (permerror) ok # ALL mechanism syntax | all-arg (5.1/1) (permerror) ok # ALL mechanism syntax | all-cidr (5.1/1) (permerror) ok # ALL mechanism syntax | all-dot (5.1/1) (permerror) ok # ALL mechanism syntax | all-neutral (5.1/1) (neutral) ok # PTR mechanism syntax | ptr-cidr (5.5/2) (permerror) ok # PTR mechanism syntax | ptr-empty-domain (5.5/2) (permerror) ok # PTR mechanism syntax | ptr-match-implicit (5.5/5) (pass) ok # PTR mechanism syntax | ptr-match-ip6 (5.5/5) (pass) ok # PTR mechanism syntax | ptr-match-target (5.5/5) (pass) ok # PTR mechanism syntax | ptr-nomatch-invalid (5.5/5) (fail) ok # A mechanism syntax | a-bad-cidr4 (5.3/2) (permerror) ok # A mechanism syntax | a-bad-cidr6 (5.3/2) (permerror) ok # A mechanism syntax | a-bad-domain (7.1/2) (permerror) ok # A mechanism syntax | a-bad-toplabel (7.1/2) (permerror) ok # A mechanism syntax | a-cidr4-0 (5.3/3) (pass) ok # A mechanism syntax | a-cidr4-0-ip6 (5.3/3) (fail) ok # A mechanism syntax | a-cidr6 (5.3/2) (fail) ok # A mechanism syntax | a-cidr6-0-ip4 (5.3/3) (fail) ok # A mechanism syntax | a-cidr6-0-ip4mapped (5.3/3) (fail) ok # A mechanism syntax | a-cidr6-0-ip6 (5.3/3) (pass) ok # A mechanism syntax | a-cidr6-0-nxdomain (5.3/3) (fail) ok # A mechanism syntax | a-colon-domain (7.1/2) (pass) ok # A mechanism syntax | a-colon-domain-ip4mapped (7.1/2) (pass) ok # A mechanism syntax | a-dash-in-toplabel (7.1/2) (pass) ok # A mechanism syntax | a-dual-cidr-ip4-default (5.3/2) (fail) ok # A mechanism syntax | a-dual-cidr-ip4-err (5.3/2) (permerror) ok # A mechanism syntax | a-dual-cidr-ip4-match (5.3/2) (pass) ok # A mechanism syntax | a-dual-cidr-ip6-default (5.3/2) (fail) ok # A mechanism syntax | a-dual-cidr-ip6-match (5.3/2) (pass) ok # A mechanism syntax | a-empty-domain (5.3/2) (permerror) ok # A mechanism syntax | a-ip6-dualstack (5.3/3) (pass) ok # A mechanism syntax | a-multi-ip1 (5.3/3) (pass) ok # A mechanism syntax | a-multi-ip2 (5.3/3) (pass) ok # A mechanism syntax | a-null (7.1/2) (permerror) ok # A mechanism syntax | a-numeric (7.1/2) (permerror) ok # A mechanism syntax | a-numeric-toplabel (7.1/2) (permerror) ok # A mechanism syntax | a-nxdomain (5.3/3) (fail) ok # A mechanism syntax | a-only-toplabel (7.1/2) (permerror) ok # A mechanism syntax | a-only-toplabel-trailing-dot (7.1/2) (permerror) ok # Include mechanism semantics and syntax | include-cidr (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-empty-domain (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-fail (5.2/9) (softfail) ok # Include mechanism semantics and syntax | include-neutral (5.2/9) (fail) ok # Include mechanism semantics and syntax | include-none (5.2/9) (permerror) ok # Include mechanism semantics and syntax | include-permerror (5.2/9) (permerror) ok # Include mechanism semantics and syntax | include-softfail (5.2/9) (pass) ok # Include mechanism semantics and syntax | include-syntax-error (5.2/1) (permerror) ok # Include mechanism semantics and syntax | include-temperror (5.2/9) (temperror) ok # MX mechanism syntax | mx-bad-cidr4 (5.4/2) (permerror) ok # MX mechanism syntax | mx-bad-cidr6 (5.4/2) (permerror) ok # MX mechanism syntax | mx-bad-domain (7.1/2) (permerror) ok # MX mechanism syntax | mx-bad-toplab (7.1/2) (permerror) ok # MX mechanism syntax | mx-cidr4-0 (5.4/3) (pass) ok # MX mechanism syntax | mx-cidr4-0-ip6 (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6 (5.4/2) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip4 (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip4mapped (5.4/3) (fail) ok # MX mechanism syntax | mx-cidr6-0-ip6 (5.3/3) (pass) ok # MX mechanism syntax | mx-cidr6-0-nxdomain (5.4/3) (fail) ok # MX mechanism syntax | mx-colon-domain (7.1/2) (pass) ok # MX mechanism syntax | mx-colon-domain-ip4mapped (7.1/2) (pass) ok # MX mechanism syntax | mx-empty (5.4/3) (neutral) ok # MX mechanism syntax | mx-empty-domain (5.2/1) (permerror) ok # MX mechanism syntax | mx-implicit (5.4/4) (neutral) ok # MX mechanism syntax | mx-multi-ip1 (5.4/3) (pass) ok # MX mechanism syntax | mx-multi-ip2 (5.4/3) (pass) ok # MX mechanism syntax | mx-null (7.1/2) (permerror) ok # MX mechanism syntax | mx-numeric-top-label (7.1/2) (permerror) ok # MX mechanism syntax | mx-nxdomain (5.4/3) (fail) ok # EXISTS mechanism syntax | exists-cidr (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-dnserr (5/8) (temperror) ok # EXISTS mechanism syntax | exists-empty-domain (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-implicit (5.7/2) (permerror) ok # EXISTS mechanism syntax | exists-ip4 (5.7/3) (pass) ok # EXISTS mechanism syntax | exists-ip6 (5.7/3) (pass) ok # EXISTS mechanism syntax | exists-ip6only (5.7/3) (fail) ok # IP4 mechanism syntax | bad-ip4-port (5.6/2) (permerror) ok # IP4 mechanism syntax | bad-ip4-short (5.6/4) (permerror) ok # IP4 mechanism syntax | bare-ip4 (5.6/2) (permerror) ok # IP4 mechanism syntax | cidr4-0 (5.6/2) (pass) ok # IP4 mechanism syntax | cidr4-032 (5.6/2) (permerror) ok # IP4 mechanism syntax | cidr4-32 (5.6/2) (pass) ok # IP4 mechanism syntax | cidr4-33 (5.6/2) (permerror) ok # IP4 mechanism syntax | ip4-dual-cidr (5.6/2) (permerror) ok # IP4 mechanism syntax | ip4-mapped-ip6 (5/9/2) (fail) ok # IP6 mechanism syntax | bare-ip6 (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-0 (5/8) (pass) ok # IP6 mechanism syntax | cidr6-0-ip4 (5/9/2) (neutral) ok # IP6 mechanism syntax | cidr6-129 (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-33 (5.6/2) (pass) ok # IP6 mechanism syntax | cidr6-33-ip4 (5.6/2) (neutral) ok # IP6 mechanism syntax | cidr6-bad (5.6/2) (permerror) ok # IP6 mechanism syntax | cidr6-ip4 (5/9/2) (neutral) ok # IP6 mechanism syntax | ip6-bad1 (5.6/2) (permerror) ok # Semantics of exp and other modifiers | default-modifier-obsolete (6/3) (neutral) ok # Semantics of exp and other modifiers | default-modifier-obsolete2 (6/3) (neutral) ok # Semantics of exp and other modifiers | dorky-sentinel (7.1/6) (fail) ok # Semantics of exp and other modifiers | empty-modifier-name (A/3) (permerror) ok # Semantics of exp and other modifiers | exp-dns-error (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-empty-domain (6.2/4) (permerror) ok # Semantics of exp and other modifiers | exp-multiple-txt (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-no-txt (6.2/4) (fail) ok # Semantics of exp and other modifiers | exp-syntax-error (6.2/1) (permerror) ok # Semantics of exp and other modifiers | exp-twice (6/2) (permerror) ok # Semantics of exp and other modifiers | exp-void (4.6.4/1, 6/2) (fail) ok # Semantics of exp and other modifiers | explanation-syntax-error (6.2/4) (fail) ok # Semantics of exp and other modifiers | include-ignores-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | invalid-modifier (A/3) (permerror) ok # Semantics of exp and other modifiers | non-ascii-exp (6.2/5) (fail) ok # Semantics of exp and other modifiers | redirect-cancels-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | redirect-cancels-prior-exp (6.2/13) (fail) ok # Semantics of exp and other modifiers | redirect-empty-domain (6.2/4) (permerror) ok # Semantics of exp and other modifiers | redirect-none (6.1/4) (permerror) ok # Semantics of exp and other modifiers | redirect-syntax-error (6.1/2) (permerror) ok # Semantics of exp and other modifiers | redirect-twice (6/2) (permerror) ok # Semantics of exp and other modifiers | two-exp-records (6.2/4) (fail) ok # Semantics of exp and other modifiers | unknown-modifier-syntax (A/3) (permerror) ok # Macro expansion rules | domain-name-truncation (7.1/25) (fail) ok # Macro expansion rules | exp-only-macro-char (7.1/8) (permerror) ok # Macro expansion rules | exp-txt-macro-char (7.1/20) (fail) ok # Macro expansion rules | hello-domain-literal (7.1/2) (fail) ok # Macro expansion rules | hello-macro (7.1/6) (pass) ok # Macro expansion rules | invalid-embedded-macro-char (7.1/9) (permerror) ok # Macro expansion rules | invalid-hello-macro (7.1/2) (fail) ok # Macro expansion rules | invalid-macro-char (7.1/9) (permerror) ok # Macro expansion rules | invalid-trailing-macro-char (7.1/9) (permerror) ok # Macro expansion rules | macro-mania-in-domain (7.1/3, 7.1/4) (pass) ok # Macro expansion rules | macro-multiple-delimiters (7.1/15, 7.1/16) (pass) ok # Macro expansion rules | macro-reverse-split-on-dash (7.1/15, 7.1/16, 7.1/17, 7.1/18) (pass) ok # Macro expansion rules | p-macro-ip4-novalid (7.1/22) (fail) ok # Macro expansion rules | p-macro-ip4-valid (7.1/22) (fail) ok # Macro expansion rules | p-macro-ip6-novalid (7.1/22) (fail) ok # Macro expansion rules | p-macro-ip6-valid (7.1/22) (fail) ok # Macro expansion rules | p-macro-multiple (7.1/22) (pass softfail) ok # Macro expansion rules | require-valid-helo (7.1/6) (fail) ok # Macro expansion rules | trailing-dot-domain (7.1/16) (pass) ok # Macro expansion rules | trailing-dot-exp (7.1) (fail) ok # Macro expansion rules | undef-macro (7.1/6) (permerror) ok # Macro expansion rules | upper-macro (7.1/26) (fail) ok # Macro expansion rules | v-macro-ip4 (7.1/6) (fail) ok # Macro expansion rules | v-macro-ip6 (7.1/6) (fail) ok # Processing limits | false-a-limit (4.6.4) (pass) ok # Processing limits | include-at-limit (4.6.4/1) (pass) ok # Processing limits | include-loop (4.6.4/1) (permerror) ok # Processing limits | include-over-limit (4.6.4/1) (permerror) ok # Processing limits | mech-at-limit (4.6.4/1) (pass) ok # Processing limits | mech-over-limit (4.6.4/1) (permerror) ok # Processing limits | mx-limit (4.6.4/2) (permerror) ok # Processing limits | ptr-limit (4.6.4/3) (neutral pass) - got pass ok # Processing limits | redirect-loop (4.6.4/1) (permerror) ok # Processing limits | void-at-limit (4.6.4/7) (neutral) ok # Processing limits | void-over-limit (4.6.4/7) (permerror) 1..398 ok All tests successful. Files=5, Tests=1145, 1 wallclock secs ( 0.12 usr 0.02 sys + 1.14 cusr 0.05 csys = 1.33 CPU) Result: PASS