1
0
mirror of https://github.com/golang/go synced 2024-11-21 16:14:42 -07:00

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

R=bradfitzgo, bradfitzwork
CC=golang-dev
https://golang.org/cl/4264047
This commit is contained in:
Russ Cox 2011-03-06 11:23:47 -05:00
parent ff3ef8a963
commit 255b538152

View File

@ -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