From 45d334ecf1b2bcbf0f8667d4c772ef3db0e03587 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Tue, 29 Mar 2016 16:35:33 +1100 Subject: net/http/cgi: allow CGI host to configure where child's stderr goes Patch originally from Steven Hartland. Tweaked a bit & added a test. Fixes #7197 Change-Id: I09012b4674e7c641dba31a24e9758cedb898d3ee Reviewed-on: https://go-review.googlesource.com/21196 Reviewed-by: Andrew Gerrand Run-TryBot: Brad Fitzpatrick --- src/net/http/cgi/host_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/net/http/cgi/host_test.go') diff --git a/src/net/http/cgi/host_test.go b/src/net/http/cgi/host_test.go index 33277640ea..70c5aff5e2 100644 --- a/src/net/http/cgi/host_test.go +++ b/src/net/http/cgi/host_test.go @@ -8,6 +8,7 @@ package cgi import ( "bufio" + "bytes" "fmt" "io" "net" @@ -500,6 +501,23 @@ func TestEnvOverride(t *testing.T) { runCgiTest(t, h, "GET /test.cgi HTTP/1.0\nHost: example.com\n\n", expectedMap) } +func TestHandlerStderr(t *testing.T) { + check(t) + var stderr bytes.Buffer + h := &Handler{ + Path: "testdata/test.cgi", + Root: "/test.cgi", + Stderr: &stderr, + } + + rw := httptest.NewRecorder() + req := newRequest("GET /test.cgi?writestderr=1 HTTP/1.0\nHost: example.com\n\n") + h.ServeHTTP(rw, req) + if got, want := stderr.String(), "Hello, stderr!\n"; got != want { + t.Errorf("Stderr = %q; want %q", got, want) + } +} + func TestRemoveLeadingDuplicates(t *testing.T) { tests := []struct { env []string -- cgit v1.3-6-g1900