// 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. /* Gotest is an automated testing tool for Go packages. Normally a Go package is compiled without its test files. Gotest is a simple script that recompiles the package along with any files named *_test.go. Functions in the test sources named TestXXX (where XXX is any alphanumeric string starting with an upper case letter) will be run when the binary is executed. Gotest requires that the package have a standard package Makefile, one that includes go/src/Make.pkg. The test functions are run in the order they appear in the source. They should have signature func TestXXX(t *testing.T) { ... } Benchmark functions can be written as well; they will be run only when the -benchmarks flag is provided. Benchmarks should have signature func BenchmarkXXX(b *testing.B) { ... } See the documentation of the testing package for more information. By default, gotest needs no arguments. It compiles all the .go files in the directory, including tests, and runs the tests. If file names are given, only those test files are added to the package. (The non-test files are always compiled.) The package is built in a special subdirectory so it does not interfere with the non-test installation. Usage: gotest [pkg_test.go ...] The resulting binary, called (for amd64) 6.out, has a couple of arguments. Usage: 6.out [-v] [-match pattern] [-benchmarks pattern] The -v flag causes the tests to be logged as they run. The -match flag causes only those tests whose names match the regular expression pattern to be run. By default all tests are run silently. If all the specified test pass, 6.out prints PASS and exits with a 0 exit code. If any tests fail, it prints FAIL and exits with a non-zero code. The -benchmarks flag is analogous to the -match flag, but applies to benchmarks. No benchmarks run by default. */ package documentation