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:
parent
90585bde37
commit
5899cab037
@ -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 $@ $<
|
||||||
|
@ -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")
|
||||||
|
@ -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"
|
||||||
|
Loading…
Reference in New Issue
Block a user