(t *testing.T, fn string, newDec func() (*Decoder, error), errMap map[string]string)
| 1133 | } |
| 1134 | |
| 1135 | func testDecoderFileBad(t *testing.T, fn string, newDec func() (*Decoder, error), errMap map[string]string) { |
| 1136 | zr := testCreateZipReader(fn, t) |
| 1137 | var want = make(map[string][]byte) |
| 1138 | for _, tt := range zr.File { |
| 1139 | if strings.HasSuffix(tt.Name, ".zst") { |
| 1140 | continue |
| 1141 | } |
| 1142 | r, err := tt.Open() |
| 1143 | if err != nil { |
| 1144 | t.Fatal(err) |
| 1145 | return |
| 1146 | } |
| 1147 | want[tt.Name+".zst"], _ = io.ReadAll(r) |
| 1148 | } |
| 1149 | |
| 1150 | dec, err := newDec() |
| 1151 | if err != nil { |
| 1152 | t.Error(err) |
| 1153 | return |
| 1154 | } |
| 1155 | defer dec.Close() |
| 1156 | for _, tt := range zr.File { |
| 1157 | t.Run(tt.Name, func(t *testing.T) { |
| 1158 | defer timeout(10 * time.Second)() |
| 1159 | r, err := tt.Open() |
| 1160 | if err != nil { |
| 1161 | t.Error(err) |
| 1162 | return |
| 1163 | } |
| 1164 | defer r.Close() |
| 1165 | err = dec.Reset(r) |
| 1166 | if err != nil { |
| 1167 | t.Error(err) |
| 1168 | return |
| 1169 | } |
| 1170 | got, err := io.ReadAll(dec) |
| 1171 | if err == ErrCRCMismatch && !strings.Contains(tt.Name, "badsum") { |
| 1172 | t.Error(err) |
| 1173 | return |
| 1174 | } |
| 1175 | if err == nil { |
| 1176 | want := errMap[tt.Name] |
| 1177 | if want == "" { |
| 1178 | want = "<error>" |
| 1179 | } |
| 1180 | t.Error("Did not get expected error", want, "- got", len(got), "bytes") |
| 1181 | return |
| 1182 | } |
| 1183 | if errMap[tt.Name] == "" { |
| 1184 | errMap[tt.Name] = err.Error() |
| 1185 | } else { |
| 1186 | want := errMap[tt.Name] |
| 1187 | if want != err.Error() { |
| 1188 | t.Errorf("error mismatch, prev run got %s, now got %s", want, err.Error()) |
| 1189 | } |
| 1190 | return |
| 1191 | } |
| 1192 | t.Log("got error", err) |
no test coverage detected
searching dependent graphs…