Browse Source

Fix raid3

pull/674/head
xpetit 4 years ago
parent
commit
dec0a7b659
No known key found for this signature in database
GPG Key ID: 97C60669182C17A5
  1. 40
      go/tests/prog/raid3_test/main.go

40
go/tests/prog/raid3_test/main.go

@ -4,51 +4,43 @@ import (
"os/exec" "os/exec"
"strconv" "strconv"
"github.com/01-edu/public/go/lib" "lib"
) )
func main() { func main() {
execFatal := func(name string, arg ...string) string { execFatal := func(name string, arg ...string) string {
b, err := exec.Command(name, arg...).CombinedOutput() b, err := exec.Command(name, arg...).CombinedOutput()
s := string(b) if _, ok := err.(*exec.ExitError); ok {
if err != nil { lib.Fatalf("%s\n", b)
lib.Fatal(s) } else {
lib.Fatalf("%s\n", err)
} }
return s return string(b)
} }
// executes the test and compares student with solutions // executes the test and compares student with solutions
executeTest := func(args string, x, y int) { executeTest := func(name string, x, y int) {
var output, correct string var output, correct string
if x == 0 && y == 0 { if x == 0 && y == 0 {
output = execFatal("sh", "-c", args+" | ./raid3_student") output = execFatal("sh", "-c", name+" | ./raid3")
correct = execFatal("sh", "-c", args+" | ./raid3") correct = execFatal("sh", "-c", name+" | raid3_prog")
} else { } else {
output = execFatal("sh", "-c", "./"+args+" "+strconv.Itoa(x)+" "+strconv.Itoa(y)+" | ./raid3_student") output = execFatal("sh", "-c", "./"+name+" "+strconv.Itoa(x)+" "+strconv.Itoa(y)+" | ./raid3")
correct = execFatal("sh", "-c", "./"+args+" "+strconv.Itoa(x)+" "+strconv.Itoa(y)+" | ./raid3") correct = execFatal("sh", "-c", "./"+name+" "+strconv.Itoa(x)+" "+strconv.Itoa(y)+" | raid3_prog")
} }
if output != correct { if output != correct {
lib.Fatalf("./%s %d %d | ./raid3 prints %q instead of %q\n", lib.Fatalf("./%s %d %d | ./raid3 prints %q instead of %q\n",
args, x, y, output, correct) name, x, y, output, correct)
} }
} }
// builds all the files for testing, student, solution and relevant files
execFatal("go", "build", "-o", "raid3", "solutions/raid3/main.go")
execFatal("go", "build", "-o", "raid3_student", "student/raid3/main.go")
execFatal("go", "build", "solutions/raid3/raid1aprog/raid1a.go")
execFatal("go", "build", "solutions/raid3/raid1bprog/raid1b.go")
execFatal("go", "build", "solutions/raid3/raid1cprog/raid1c.go")
execFatal("go", "build", "solutions/raid3/raid1dprog/raid1d.go")
execFatal("go", "build", "solutions/raid3/raid1eprog/raid1e.go")
// testing all raids1 // testing all raids1
table := []string{"raid1a", "raid1b", "raid1c", "raid1d", "raid1e"} names := []string{"raid1a", "raid1b", "raid1c", "raid1d", "raid1e"}
for _, s := range table { for _, name := range names {
x := lib.RandIntBetween(1, 50) x := lib.RandIntBetween(1, 50)
y := lib.RandIntBetween(1, 50) y := lib.RandIntBetween(1, 50)
executeTest(s, x, y) executeTest(name, x, y)
} }
// testing special case AA, AC, A, A // testing special case AA, AC, A, A
@ -60,5 +52,3 @@ func main() {
executeTest("raid1e", 1, 1) executeTest("raid1e", 1, 1)
executeTest("echo", 0, 0) executeTest("echo", 0, 0)
} }
// TODO: fix paths

Loading…
Cancel
Save