mirror of
https://github.com/golang/go
synced 2024-09-06 00:19:45 +00: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:
parent
90585bde37
commit
5899cab037
|
@ -13,9 +13,9 @@ CLEANFILES+=index.html srcextract.bin htmlify.bin
|
|||
index.html: srcextract.bin htmlify.bin
|
||||
awk '/^!/{system(substr($$0,2)); next} {print}' "$$@" < wiki.html > index.html
|
||||
|
||||
test: final.bin get.bin
|
||||
test: get.bin
|
||||
bash ./test.sh
|
||||
rm -f final.6 final.bin get.6 get.bin
|
||||
rm -f get.6 get.bin
|
||||
|
||||
%.bin: %.$O
|
||||
$(LD) -o $@ $<
|
||||
|
|
|
@ -3,16 +3,30 @@ package main
|
|||
import (
|
||||
"http"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
"os"
|
||||
"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() {
|
||||
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)
|
||||
if url == "" {
|
||||
log.Exit("no url supplied")
|
||||
|
|
|
@ -1,22 +1,27 @@
|
|||
#!/bin/bash
|
||||
|
||||
./final.bin &
|
||||
wiki_pid=$!
|
||||
wiki_pid=
|
||||
|
||||
cleanup() {
|
||||
kill $wiki_pid
|
||||
rm -f test_*.out Test.txt
|
||||
rm -f test_*.out Test.txt final-test.bin final-test.go
|
||||
exit ${1:-1}
|
||||
}
|
||||
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
|
||||
|
||||
./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
|
||||
./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
|
||||
./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
|
||||
|
||||
echo "Passed"
|
||||
|
|
Loading…
Reference in a new issue