Commit 255b5381 authored by Russ Cox's avatar Russ Cox

http/cgi: skip test if perl or CGI.pm not available

R=bradfitzgo, bradfitzwork
CC=golang-dev
https://golang.org/cl/4264047
parent ff3ef8a9
......@@ -8,15 +8,29 @@ package cgi
import (
"bufio"
"exec"
"fmt"
"http"
"http/httptest"
"os"
"runtime"
"strings"
"testing"
)
var cgiScriptWorks = canRun("./testdata/test.cgi")
func canRun(s string) bool {
c, err := exec.Run(s, []string{s}, nil, ".", exec.DevNull, exec.DevNull, exec.DevNull)
if err != nil {
return false
}
w, err := c.Wait(0)
if err != nil {
return false
}
return w.Exited() && w.ExitStatus() == 0
}
func newRequest(httpreq string) *http.Request {
buf := bufio.NewReader(strings.NewReader(httpreq))
req, err := http.ReadRequest(buf)
......@@ -59,10 +73,10 @@ readlines:
}
func skipTest(t *testing.T) bool {
if runtime.GOOS == "windows" {
if !cgiScriptWorks {
// No Perl on Windows, needed by test.cgi
// TODO: make the child process be Go, not Perl.
t.Logf("Skipping test on Windows; no Perl.")
t.Logf("Skipping test: test.cgi failed.")
return true
}
return false
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment