Commit d4953725 authored by Rob Pike's avatar Rob Pike

new gotest shell script (will be a proper command some day, probably)

automates construction and execution of unit tests.

R=rsc
DELTA=60  (58 added, 0 deleted, 2 changed)
OCL=19482
CL=19484
parent 6b7dd4c0
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# Use of this source code is governed by a BSD-style # Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file. # license that can be found in the LICENSE file.
for i in cc 6l 6a 6c gc 6g ar db nm blyacc acid cov gobuild prof for i in cc 6l 6a 6c gc 6g ar db nm blyacc acid cov gobuild prof gotest
do do
cd $i cd $i
make clean make clean
......
# 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.
include ../../Make.conf
TARG=gotest
clean:
@true
install: $(TARG)
cp $(TARG) $(BIN)/$(TARG)
#!/bin/bash
# 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.
# Using all the test*.go files in the current directory, write out a file
# _testmain.go that runs all its tests. Compile everything and run the
# tests.
set -e
gofiles=$(echo test*.go)
ofiles=$(echo $gofiles | sed 's/\.go/.6/g')
files=$(echo $gofiles | sed 's/\.go//g')
echo $ofiles
for i in $gofiles
do
6g $i
done
# They all compile; now generate the code to call them.
{
# package spec
echo 'package main'
echo
# imports
for i in $files
do
echo 'import "./'$i'"'
done
echo 'import "testing"'
# test array
echo
echo 'var tests = &[]testing.Test {'
for i in $(6nm $ofiles | grep ' T .*·Test' | sed 's/.* //; s/·/./')
do
echo ' testing.Test{ "'$i'", &'$i' },'
done
echo '}'
# body
echo
echo 'func main() {'
echo ' testing.Main(tests)'
echo '}'
}>_testmain.go
6g _testmain.go
6l _testmain.6
6.out
...@@ -12,7 +12,7 @@ bash mkenam ...@@ -12,7 +12,7 @@ bash mkenam
make enam.o make enam.o
cd .. cd ..
for i in cc 6l 6a 6c gc 6g ar db nm blyacc acid cov gobuild prof for i in cc 6l 6a 6c gc 6g ar db nm blyacc acid cov gobuild prof gotest
do do
echo; echo; echo %%%% making $i %%%%; echo echo; echo; echo %%%% making $i %%%%; echo
cd $i cd $i
......
...@@ -48,6 +48,7 @@ buildfiles flag.go\ ...@@ -48,6 +48,7 @@ buildfiles flag.go\
bufio.go\ bufio.go\
once.go\ once.go\
bignum.go\ bignum.go\
testing.go\
builddirs net\ builddirs net\
time\ time\
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment