Verifies: SYS-REQ-090 MCDC SYS-REQ-090: getstring_called_twice_with_same_input=T, getstring_returns_identical_results=T => TRUE
(t *testing.T)
| 56 | // Verifies: SYS-REQ-090 |
| 57 | // MCDC SYS-REQ-090: getstring_called_twice_with_same_input=T, getstring_returns_identical_results=T => TRUE |
| 58 | func TestGetStringDeterminism(t *testing.T) { |
| 59 | cases := []struct { |
| 60 | name string |
| 61 | data string |
| 62 | keys []string |
| 63 | }{ |
| 64 | {name: "simple", data: `{"s":"hello"}`, keys: []string{"s"}}, |
| 65 | {name: "escaped", data: `{"s":"hello\nworld"}`, keys: []string{"s"}}, |
| 66 | {name: "unicode", data: `{"s":"\u00e9"}`, keys: []string{"s"}}, |
| 67 | {name: "missing", data: `{"a":1}`, keys: []string{"s"}}, |
| 68 | } |
| 69 | for _, tc := range cases { |
| 70 | t.Run(tc.name, func(t *testing.T) { |
| 71 | data := []byte(tc.data) |
| 72 | v1, err1 := GetString(data, tc.keys...) |
| 73 | v2, err2 := GetString(data, tc.keys...) |
| 74 | if v1 != v2 { |
| 75 | t.Fatalf("GetString value mismatch: %q vs %q", v1, v2) |
| 76 | } |
| 77 | if (err1 == nil) != (err2 == nil) { |
| 78 | t.Fatalf("GetString error mismatch: %v vs %v", err1, err2) |
| 79 | } |
| 80 | }) |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | // Verifies: SYS-REQ-094 |
| 85 | // MCDC SYS-REQ-094: typed_getter_called_twice_with_same_input=T, typed_getter_returns_identical_results=T => TRUE |
nothing calls this directly
no test coverage detected
searching dependent graphs…