mirror of
https://github.com/golang/go
synced 2024-11-19 18:54:41 -07:00
1f1f69e389
The original test would open a local port and then immediately close it and use the port number in subsequent tests. Between the port being closed and reused by the later process, it could be opened by some other program on the machine. Changed the test to run the server process directly and have it save the assigned port to a text file to be used by client processes. Fixes #5564. LGTM=adg R=golang-codereviews, gobot, adg CC=golang-codereviews https://golang.org/cl/72290043
49 lines
1.1 KiB
Bash
Executable File
49 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright 2010 The Go Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file.
|
|
|
|
set -e
|
|
wiki_pid=
|
|
cleanup() {
|
|
kill $wiki_pid
|
|
rm -f test_*.out Test.txt final.bin final-port.txt a.out get.bin
|
|
}
|
|
trap cleanup 0 INT
|
|
|
|
# If called with -all, check that all code snippets compile.
|
|
if [ "$1" == "-all" ]; then
|
|
for fn in *.go; do
|
|
go build -o a.out $fn
|
|
done
|
|
fi
|
|
|
|
go build -o get.bin get.go
|
|
go build -o final.bin final.go
|
|
(./final.bin --addr) &
|
|
wiki_pid=$!
|
|
|
|
l=0
|
|
while [ ! -f ./final-port.txt ]
|
|
do
|
|
l=$(($l+1))
|
|
if [ "$l" -gt 5 ]
|
|
then
|
|
echo "port not available within 5 seconds"
|
|
exit 1
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
addr=$(cat final-port.txt)
|
|
./get.bin http://$addr/edit/Test > test_edit.out
|
|
diff -u test_edit.out test_edit.good
|
|
./get.bin -post=body=some%20content http://$addr/save/Test > test_save.out
|
|
diff -u test_save.out test_view.good # should be the same as viewing
|
|
diff -u Test.txt test_Test.txt.good
|
|
./get.bin http://$addr/view/Test > test_view.out
|
|
diff -u test_view.out test_view.good
|
|
|
|
echo PASS
|