Test helper for SYS-REQ-012, SYS-REQ-013, SYS-REQ-014, and SYS-REQ-015.
(t *testing.T, testKind string, tests []ParseTest, runner func(ParseTest) (interface{}, error), resultChecker func(ParseTest, interface{}) (bool, interface{}))
| 2192 | |
| 2193 | // Test helper for SYS-REQ-012, SYS-REQ-013, SYS-REQ-014, and SYS-REQ-015. |
| 2194 | func runParseTests(t *testing.T, testKind string, tests []ParseTest, runner func(ParseTest) (interface{}, error), resultChecker func(ParseTest, interface{}) (bool, interface{})) { |
| 2195 | for _, test := range tests { |
| 2196 | value, err := runner(test) |
| 2197 | |
| 2198 | if parseTestCheckNoError(t, testKind, test, value, err) { |
| 2199 | if test.out == nil { |
| 2200 | t.Errorf("MALFORMED TEST: %v", test) |
| 2201 | continue |
| 2202 | } |
| 2203 | |
| 2204 | if ok, expected := resultChecker(test, value); !ok { |
| 2205 | if expectedBytes, ok := expected.([]byte); ok { |
| 2206 | expected = string(expectedBytes) |
| 2207 | } |
| 2208 | if valueBytes, ok := value.([]byte); ok { |
| 2209 | value = string(valueBytes) |
| 2210 | } |
| 2211 | t.Errorf("%s test '%s' expected to return value %v, but did returned %v instead", testKind, test.in, expected, value) |
| 2212 | } |
| 2213 | } |
| 2214 | } |
| 2215 | } |
| 2216 | |
| 2217 | // Verifies: SYS-REQ-036 [example] |
| 2218 | // MCDC SYS-REQ-036: raw_boolean_literal_is_valid=F, returns_parseboolean_error=T => TRUE |
no test coverage detected