1
0
mirror of https://github.com/golang/go synced 2024-11-22 07:44:43 -07:00

doc/codelab/wiki: tests use available TCP port

R=bradfitz, dsymonds, r2, dangabrad, rsc
CC=golang-dev
https://golang.org/cl/4043043
This commit is contained in:
Andrew Gerrand 2011-01-27 23:19:37 +10:00
parent 90585bde37
commit 5899cab037
3 changed files with 28 additions and 9 deletions

View File

@ -13,9 +13,9 @@ CLEANFILES+=index.html srcextract.bin htmlify.bin
index.html: srcextract.bin htmlify.bin index.html: srcextract.bin htmlify.bin
awk '/^!/{system(substr($$0,2)); next} {print}' "$$@" < wiki.html > index.html awk '/^!/{system(substr($$0,2)); next} {print}' "$$@" < wiki.html > index.html
test: final.bin get.bin test: get.bin
bash ./test.sh bash ./test.sh
rm -f final.6 final.bin get.6 get.bin rm -f get.6 get.bin
%.bin: %.$O %.bin: %.$O
$(LD) -o $@ $< $(LD) -o $@ $<

View File

@ -3,16 +3,30 @@ package main
import ( import (
"http" "http"
"flag" "flag"
"fmt"
"io" "io"
"log" "log"
"net"
"os" "os"
"strings" "strings"
) )
var post = flag.String("post", "", "urlencoded form data to POST") var (
post = flag.String("post", "", "urlencoded form data to POST")
port = flag.Bool("port", false, "find open port and print to stdout")
)
func main() { func main() {
flag.Parse() flag.Parse()
if *port {
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
log.Exit(err)
}
defer l.Close()
fmt.Print(l.Addr().(*net.TCPAddr).Port)
return
}
url := flag.Arg(0) url := flag.Arg(0)
if url == "" { if url == "" {
log.Exit("no url supplied") log.Exit("no url supplied")

View File

@ -1,22 +1,27 @@
#!/bin/bash #!/bin/bash
./final.bin & wiki_pid=
wiki_pid=$!
cleanup() { cleanup() {
kill $wiki_pid kill $wiki_pid
rm -f test_*.out Test.txt rm -f test_*.out Test.txt final-test.bin final-test.go
exit ${1:-1} exit ${1:-1}
} }
trap cleanup INT trap cleanup INT
port=$(./get.bin -port)
sed s/8080/$port/ < final.go > final-test.go
gomake final-test.bin || cleanup 1
./final-test.bin &
wiki_pid=$!
sleep 1 sleep 1
./get.bin http://localhost:8080/edit/Test > test_edit.out ./get.bin http://127.0.0.1:$port/edit/Test > test_edit.out
diff -u test_edit.out test_edit.good || cleanup 1 diff -u test_edit.out test_edit.good || cleanup 1
./get.bin -post=body=some%20content http://localhost:8080/save/Test ./get.bin -post=body=some%20content http://127.0.0.1:$port/save/Test
diff -u Test.txt test_Test.txt.good || cleanup 1 diff -u Test.txt test_Test.txt.good || cleanup 1
./get.bin http://localhost:8080/view/Test > test_view.out ./get.bin http://127.0.0.1:$port/view/Test > test_view.out
diff -u test_view.out test_view.good || cleanup 1 diff -u test_view.out test_view.good || cleanup 1
echo "Passed" echo "Passed"