@@ -16,6 +16,7 @@ import (
16
16
17
17
func init () {
18
18
log .SetReportCaller (true )
19
+ log .SetLevel (log .DebugLevel )
19
20
}
20
21
21
22
func compile (filePath string ) (outPath string , err error ) {
@@ -24,9 +25,9 @@ func compile(filePath string) (outPath string, err error) {
24
25
cmd := exec .Command ("g++" , args ... )
25
26
bt , err := cmd .CombinedOutput ()
26
27
if err != nil {
27
- fmt .Println ("compile error: " , string (bt ))
28
- return "" , err
28
+ log .WithField ("output" , string (bt )).Error (err )
29
29
}
30
+
30
31
return
31
32
}
32
33
@@ -53,21 +54,21 @@ func run(source, input string) (out string) {
53
54
54
55
func remove (source string ) {
55
56
if err := os .Remove (source ); err != nil {
56
- fmt .Println ("error : " , err )
57
+ log .Println ("error : " , err )
57
58
}
58
59
}
59
60
60
61
func grade (source , input , expected string ) (result string ) {
61
62
outPath , err := compile (source )
62
63
if err != nil {
63
- fmt . Printf ( "grade error : %s" , err . Error () )
64
+ log . Error (err )
64
65
return ""
65
66
}
66
67
67
68
defer remove (outPath )
68
69
out := run (outPath , input )
69
70
if expected != out {
70
- fmt . Printf ( "debug : out=%s expected=%s\n " , out , expected )
71
+ log . Debugf ( " out=%s expected=%s\n " , out , expected )
71
72
result = "NAY"
72
73
return
73
74
}
@@ -80,7 +81,7 @@ func grade(source, input, expected string) (result string) {
80
81
func findFilesInDir (dir string ) (map [string ]string , error ) {
81
82
dirs , err := ioutil .ReadDir (dir )
82
83
if err != nil {
83
- fmt . Printf ( "findFilesInDir error: %s" , err . Error () )
84
+ log . Error (err )
84
85
return nil , err
85
86
}
86
87
@@ -133,23 +134,23 @@ func main() {
133
134
submissionDir := path .Join (cwd , "submission" )
134
135
submissions , err := findFilesInDir (submissionDir )
135
136
if err != nil {
136
- fmt . Printf ( "main error : %s" , err . Error () )
137
+ log . Error (err )
137
138
return
138
139
}
139
140
140
141
// read input
141
142
inputDir := path .Join (cwd , "input" )
142
143
inputs , err := findFilesInDir (inputDir )
143
144
if err != nil {
144
- fmt . Printf ( "main error : %s" , err . Error () )
145
+ log . Error (err )
145
146
return
146
147
}
147
148
148
149
// read output
149
150
outputDir := path .Join (cwd , "output" )
150
151
outputs , err := findFilesInDir (outputDir )
151
152
if err != nil {
152
- fmt . Printf ( "main error : %s" , err . Error () )
153
+ log . Error (err )
153
154
return
154
155
}
155
156
@@ -166,7 +167,7 @@ func main() {
166
167
}
167
168
168
169
if len (outs ) != len (ins ) {
169
- fmt . Printf ("error : unmatch input %d & ouput file %d\n " , len (ins ), len (outs ))
170
+ log . Error ("error : unmatch input %d & ouput file %d\n " , len (ins ), len (outs ))
170
171
return
171
172
}
172
173
0 commit comments