(writer io.Writer, fileName string, workDir string)
| 17 | ) |
| 18 | |
| 19 | func readAndWriteToTempFile(writer io.Writer, fileName string, workDir string) error { |
| 20 | buf16 := make([]byte, 16) |
| 21 | buf32 := make([]byte, 4) |
| 22 | body, err := ioutil.ReadFile(path.Join(workDir, fileName)) |
| 23 | if err != nil { |
| 24 | return err |
| 25 | } |
| 26 | binary.BigEndian.PutUint16(buf16, constants.JudgeBodyPackageMagicCode) |
| 27 | binary.BigEndian.PutUint32(buf32, uint32(len(body))) |
| 28 | if _, err := writer.Write(buf16); err != nil { |
| 29 | return errors.Errorf("write temp file error: %s", err.Error()) |
| 30 | } |
| 31 | if _, err := writer.Write(buf32); err != nil { |
| 32 | return errors.Errorf("write temp file error: %s", err.Error()) |
| 33 | } |
| 34 | if _, err := writer.Write([]byte(fileName + "\n")); err != nil { |
| 35 | return errors.Errorf("write temp file error: %s", err.Error()) |
| 36 | } |
| 37 | if _, err := writer.Write(body); err != nil { |
| 38 | return errors.Errorf("write temp file error: %s", err.Error()) |
| 39 | } |
| 40 | return nil |
| 41 | } |
| 42 | |
| 43 | func mergeResultBinary( |
| 44 | options *persistence.JudgeResultPersisOptions, |
no test coverage detected