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 ...@@ -8,15 +8,29 @@ package cgi
import ( import (
"bufio" "bufio"
"exec"
"fmt" "fmt"
"http" "http"
"http/httptest" "http/httptest"
"os" "os"
"runtime"
"strings" "strings"
"testing" "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 { func newRequest(httpreq string) *http.Request {
buf := bufio.NewReader(strings.NewReader(httpreq)) buf := bufio.NewReader(strings.NewReader(httpreq))
req, err := http.ReadRequest(buf) req, err := http.ReadRequest(buf)
...@@ -59,10 +73,10 @@ readlines: ...@@ -59,10 +73,10 @@ readlines:
} }
func skipTest(t *testing.T) bool { func skipTest(t *testing.T) bool {
if runtime.GOOS == "windows" { if !cgiScriptWorks {
// No Perl on Windows, needed by test.cgi // No Perl on Windows, needed by test.cgi
// TODO: make the child process be Go, not Perl. // 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 true
} }
return false 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