Commit 2fcb0452 authored by Andrew Gerrand's avatar Andrew Gerrand

gotest: don't run examples that have no expected output

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5364041
parent 46ee09ef
...@@ -37,6 +37,7 @@ os.Stdout and os.Stderr is compared against their doc comment. ...@@ -37,6 +37,7 @@ os.Stdout and os.Stderr is compared against their doc comment.
Multiple example functions may be provided for a given name XXX if they are Multiple example functions may be provided for a given name XXX if they are
discriminated by a distinct suffix starting with "_", such as ExampleXXX_2. discriminated by a distinct suffix starting with "_", such as ExampleXXX_2.
Example functions without doc comments are compiled but not executed.
See the documentation of the testing package for more information. See the documentation of the testing package for more information.
......
...@@ -231,9 +231,14 @@ func getTestNames() { ...@@ -231,9 +231,14 @@ func getTestNames() {
} else if isTest(name, "Benchmark") { } else if isTest(name, "Benchmark") {
f.benchmarks = append(f.benchmarks, name) f.benchmarks = append(f.benchmarks, name)
} else if isTest(name, "Example") { } else if isTest(name, "Example") {
output := doc.CommentText(n.Doc)
if output == "" {
// Don't run examples with no output.
continue
}
f.examples = append(f.examples, example{ f.examples = append(f.examples, example{
name: name, name: name,
output: doc.CommentText(n.Doc), output: output,
}) })
} }
// TODO: worth checking the signature? Probably not. // TODO: worth checking the signature? Probably not.
...@@ -372,7 +377,7 @@ func writeTestmainGo() { ...@@ -372,7 +377,7 @@ func writeTestmainGo() {
insideTests := false insideTests := false
for _, f := range files { for _, f := range files {
//println(f.name, f.pkg) //println(f.name, f.pkg)
if len(f.tests) == 0 && len(f.benchmarks) == 0 { if len(f.tests) == 0 && len(f.benchmarks) == 0 && len(f.examples) == 0 {
continue continue
} }
if isOutsideTest(f.pkg) { if isOutsideTest(f.pkg) {
......
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