@@ -156,23 +156,29 @@ func TestParseJudgeResponse(t *testing.T) {
156156 text string
157157 wantPassed bool
158158 wantReason string
159+ wantErr bool
159160 }{
160- {"simple pass" , `{"result": "pass", "reason": "good"}` , true , "good" },
161- {"simple fail" , `{"result": "fail", "reason": "bad"}` , false , "bad" },
162- {"pass uppercase" , `{"result": "PASS", "reason": "good"}` , true , "good" },
163- {"fail uppercase" , `{"result": "FAIL", "reason": "bad"}` , false , "bad" },
164- {"pass mixed case" , `{"result": "Pass", "reason": "good"}` , true , "good" },
165- {"invalid json returns false " , `not json at all` , false , "failed to parse judge response" },
166- {"empty result returns false" , `{"result": "", "reason": "empty"}` , false , "empty" },
167- {"missing result field" , `{"reason": "no result field"}` , false , "no result field" },
161+ {"simple pass" , `{"result": "pass", "reason": "good"}` , true , "good" , false },
162+ {"simple fail" , `{"result": "fail", "reason": "bad"}` , false , "bad" , false },
163+ {"pass uppercase" , `{"result": "PASS", "reason": "good"}` , true , "good" , false },
164+ {"fail uppercase" , `{"result": "FAIL", "reason": "bad"}` , false , "bad" , false },
165+ {"pass mixed case" , `{"result": "Pass", "reason": "good"}` , true , "good" , false },
166+ {"invalid json returns error " , `not json at all` , false , "" , true },
167+ {"empty result returns false" , `{"result": "", "reason": "empty"}` , false , "empty" , false },
168+ {"missing result field" , `{"reason": "no result field"}` , false , "no result field" , false },
168169 }
169170
170171 for _ , tt := range tests {
171172 t .Run (tt .name , func (t * testing.T ) {
172173 t .Parallel ()
173- got := parseJudgeResponse (tt .text )
174- assert .Equal (t , tt .wantPassed , got .passed )
175- assert .Equal (t , tt .wantReason , got .reason )
174+ passed , reason , err := parseJudgeResponse (tt .text )
175+ if tt .wantErr {
176+ require .Error (t , err )
177+ } else {
178+ require .NoError (t , err )
179+ assert .Equal (t , tt .wantPassed , passed )
180+ assert .Equal (t , tt .wantReason , reason )
181+ }
176182 })
177183 }
178184}
0 commit comments