package fortran
import (
- "fmt"
"internal/testenv"
"os"
"os/exec"
// Finally, run the actual test.
t.Log("go", "run", "./testdata/testprog")
- out, err := exec.Command("go", "run", "./testdata/testprog").CombinedOutput()
- if err == nil && string(out) != "ok\n" {
- err = fmt.Errorf("expected ok")
+ var stdout, stderr strings.Builder
+ cmd := exec.Command("go", "run", "./testdata/testprog")
+ cmd.Stdout = &stdout
+ cmd.Stderr = &stderr
+ err := cmd.Run()
+ t.Logf("%v", cmd)
+ if stderr.Len() != 0 {
+ t.Logf("stderr:\n%s", stderr.String())
}
if err != nil {
- t.Errorf("%s\nOutput:\n%s", err, string(out))
+ t.Errorf("%v\n%s", err, stdout.String())
+ } else if stdout.String() != "ok\n" {
+ t.Errorf("stdout:\n%s\nwant \"ok\"", stdout.String())
}
}
// int the_answer();
import "C"
-import "os"
+import (
+ "fmt"
+ "os"
+)
func TheAnswer() int {
return int(C.the_answer())
func main() {
if a := TheAnswer(); a != 42 {
- println("Unexpected result for The Answer. Got:", a, " Want: 42")
+ fmt.Fprintln(os.Stderr, "Unexpected result for The Answer. Got:", a, " Want: 42")
os.Exit(1)
}
- println("ok")
+ fmt.Fprintln(os.Stdout, "ok")
}