2008-10-16 20:24:33 -06:00
|
|
|
# Copyright 2009 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.
|
|
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
TMP1=test_tmp1.go
|
|
|
|
TMP2=test_tmp2.go
|
|
|
|
COUNT=0
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
count() {
|
|
|
|
let COUNT=$COUNT+1
|
|
|
|
let M=$COUNT%10
|
|
|
|
if [ $M == 0 ]; then
|
|
|
|
echo -n "."
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2008-10-20 18:13:02 -06:00
|
|
|
# apply to one file
|
2008-10-16 20:24:33 -06:00
|
|
|
apply1() {
|
|
|
|
#echo $1 $2
|
2008-10-20 18:13:02 -06:00
|
|
|
case `basename $F` in
|
2008-10-22 12:27:18 -06:00
|
|
|
selftest.go | func3.go ) ;; # skip - these are test cases for syntax errors
|
|
|
|
newfn.go ) ;; # skip these - cannot parse w/o type information
|
2008-10-20 18:13:02 -06:00
|
|
|
* ) $1 $2; count ;;
|
|
|
|
esac
|
2008-10-16 20:24:33 -06:00
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
2008-10-20 18:13:02 -06:00
|
|
|
# apply to local files
|
|
|
|
applydot() {
|
|
|
|
for F in *.go
|
|
|
|
do
|
|
|
|
apply1 $1 $F
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# apply to all files in the list
|
2008-10-16 20:24:33 -06:00
|
|
|
apply() {
|
|
|
|
for F in \
|
|
|
|
$GOROOT/usr/gri/pretty/*.go \
|
2008-10-18 17:42:25 -06:00
|
|
|
$GOROOT/test/*.go \
|
2008-10-16 20:24:33 -06:00
|
|
|
$GOROOT/src/pkg/*.go \
|
|
|
|
$GOROOT/src/lib/*.go \
|
|
|
|
$GOROOT/src/lib/*/*.go \
|
|
|
|
$GOROOT/usr/r/*/*.go
|
|
|
|
do
|
2008-10-20 18:13:02 -06:00
|
|
|
apply1 $1 $F
|
2008-10-16 20:24:33 -06:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
2008-10-16 20:24:33 -06:00
|
|
|
cleanup() {
|
|
|
|
rm -f $TMP1 $TMP2
|
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
2008-10-16 20:24:33 -06:00
|
|
|
silent() {
|
|
|
|
cleanup
|
|
|
|
pretty -s $1 > $TMP1
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
cat $TMP1
|
|
|
|
echo "Error (silent mode test): test.sh $1"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
2008-10-16 20:24:33 -06:00
|
|
|
idempotent() {
|
|
|
|
cleanup
|
|
|
|
pretty $1 > $TMP1
|
|
|
|
pretty $TMP1 > $TMP2
|
|
|
|
cmp -s $TMP1 $TMP2
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
diff $TMP1 $TMP2
|
|
|
|
echo "Error (idempotency test): test.sh $1"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
2008-10-20 17:44:03 -06:00
|
|
|
valid() {
|
|
|
|
cleanup
|
|
|
|
pretty $1 > $TMP1
|
|
|
|
6g -o /dev/null $TMP1
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "Error (validity test): test.sh $1"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2008-10-16 20:24:33 -06:00
|
|
|
runtest() {
|
|
|
|
#echo "Testing silent mode"
|
|
|
|
cleanup
|
2008-10-20 18:13:02 -06:00
|
|
|
$1 silent
|
2008-10-16 20:24:33 -06:00
|
|
|
|
|
|
|
#echo "Testing idempotency"
|
|
|
|
cleanup
|
2008-10-20 18:13:02 -06:00
|
|
|
$1 idempotent
|
2008-10-16 20:24:33 -06:00
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
2008-10-16 20:24:33 -06:00
|
|
|
runtests() {
|
|
|
|
if [ $# == 0 ]; then
|
|
|
|
runtest apply
|
2008-10-20 18:13:02 -06:00
|
|
|
# verify the pretty-printed files can be compiled with 6g again
|
|
|
|
# do it in local directory only because of the prerequisites required
|
|
|
|
#echo "Testing validity"
|
|
|
|
cleanup
|
|
|
|
applydot valid
|
2008-10-16 20:24:33 -06:00
|
|
|
else
|
|
|
|
for F in $*; do
|
|
|
|
runtest apply1 $F
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
|
|
|
|
# run selftest always
|
|
|
|
pretty -t selftest.go > $TMP1
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
cat $TMP1
|
|
|
|
echo "Error (selftest): pretty -t selftest.go"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
count
|
|
|
|
|
|
|
|
|
|
|
|
# run over all .go files
|
2008-10-16 20:24:33 -06:00
|
|
|
runtests $*
|
|
|
|
cleanup
|
|
|
|
|
2008-10-18 17:42:25 -06:00
|
|
|
# done
|
|
|
|
echo
|
|
|
|
echo "PASSED ($COUNT tests)"
|