|
|
|
package student_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/01-edu/z01"
|
|
|
|
)
|
|
|
|
|
|
|
|
//Compares only the stdout of each program
|
|
|
|
//As long as the program executes like tail for the stdout
|
|
|
|
//and the error messages are send to stderr
|
|
|
|
//the program passes the test
|
|
|
|
func TestZTail(t *testing.T) {
|
|
|
|
exercise := strings.ToLower(
|
|
|
|
strings.TrimPrefix(t.Name(), "Test"))
|
|
|
|
|
|
|
|
arg1 := []string{"-c", "23", "./student/" + exercise + "/main.go"}
|
|
|
|
arg2 := []string{"./student/" + exercise + "/main.go", "-c", "23"}
|
|
|
|
arg3 := []string{"-c", "jfdka", "23"}
|
|
|
|
arg4 := []string{"-c", "23", "./student/" + exercise + "/README.md", "fjksdsf"}
|
|
|
|
arg5 := []string{"-c", "23", "../../README.md", "fjksdsf", "-c", "43"}
|
|
|
|
|
|
|
|
argArr := [][]string{arg1, arg2, arg3, arg4, arg5}
|
|
|
|
|
|
|
|
for _, args := range argArr {
|
|
|
|
correct, errC := z01.ExecOut("tail", args...)
|
|
|
|
out, err := z01.MainOut("./student/"+exercise, args...)
|
|
|
|
if out != correct {
|
|
|
|
t.Errorf("./%s \"%s\" prints %q instead of %q\n",
|
|
|
|
exercise, strings.Join(args, " "), out, correct)
|
|
|
|
}
|
|
|
|
if errC != nil && err == nil {
|
|
|
|
t.Errorf("./%s \"%s\" prints %q instead of %q\n", exercise, strings.Join(args, " "), "", errC)
|
|
|
|
}
|
|
|
|
if err != nil && errC != nil && err.Error() != errC.Error() {
|
|
|
|
t.Errorf("./%s %s prints %q instead of %q\n", exercise, strings.Join(args, " "), err, errC)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|