12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/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
- if ! which patch > /dev/null; then
- echo "Skipping test; patch command not found."
- exit 0
- fi
- wiki_pid=
- cleanup() {
- kill $wiki_pid
- rm -f test_*.out Test.txt final-test.go final-test.bin final-test-port.txt a.out get.bin
- }
- trap cleanup 0 INT
- rm -f get.bin final-test.bin a.out
- # 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
- cp final.go final-test.go
- patch final-test.go final-test.patch > /dev/null
- go build -o final-test.bin final-test.go
- ./final-test.bin &
- wiki_pid=$!
- l=0
- while [ ! -f ./final-test-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-test-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
|