add just_warn flag on field tests for "soft fails"
authorJason Etheridge <jason@EquinoxOLI.org>
Wed, 23 Nov 2022 18:57:40 +0000 (13:57 -0500)
committerJason Etheridge <jason@EquinoxOLI.org>
Wed, 23 Nov 2022 18:57:40 +0000 (13:57 -0500)
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org>
t/SIPtest.pm

index aa23533..dfb2051 100644 (file)
@@ -278,13 +278,24 @@ sub one_msg {
             my $field = $ftest->{field};
 
             if ($ftest->{required} && !exists($fields{$field})) {
-                fail("$test->{id}: required field '$field' not found in '$resp'");
+                if ($ftest->{just_warn}) {
+                    diag("SOFT FAIL: $test->{id}: required field '$field' not found in '$resp'");
+                    pass("$test->{id}");
+                } else {
+                    fail("$test->{id}: required field '$field' not found in '$resp'");
+                }
                 return;
             }
 
             if (exists($fields{$field}) && (decode_utf8($fields{$field}) !~ $ftest->{pat})) {
-                fail("$test->{id} field test $field");
                 diag("Field '$field' pattern '$ftest->{pat}' fails to match value '$fields{$field}' in message '$resp'");
+                if ($ftest->{just_warn}) {
+                    diag("SOFT FAIL: $test->{id} field test $field");
+                    pass("$test->{id}");
+                } else {
+                    fail("$test->{id} field test $field");
+                }
+
                 return;
             }
         }