Commit 73c73855 authored by Russ Cox's avatar Russ Cox

testing: add t.Failed() bool

R=r
DELTA=18  (10 added, 4 deleted, 4 changed)
OCL=29000
CL=29034
parent b91a043d
......@@ -21,11 +21,16 @@ import (
// Report as tests are run; default is silent for success.
var chatty = flag.Bool("chatty", false, "chatty")
// Insert tabs after newlines - but not the last one
// Insert final newline if needed and tabs after internal newlines.
func tabify(s string) string {
for i := 0; i < len(s) - 1; i++ { // -1 because if last char is newline, don't bother
n := len(s);
if n > 0 && s[n-1] != '\n' {
s += "\n";
n++;
}
for i := 0; i < n - 1; i++ { // -1 to avoid final newline
if s[i] == '\n' {
return s[0:i+1] + "\t" + tabify(s[i+1:len(s)]);
return s[0:i+1] + "\t" + tabify(s[i+1:n]);
}
}
return s
......@@ -44,6 +49,11 @@ func (t *T) Fail() {
t.failed = true
}
// Failed returns whether the Test function has failed.
func (t *T) Failed() bool {
return t.failed
}
// FailNow marks the Test function as having failed and stops its execution.
// Execution will continue at the next Test.
func (t *T) FailNow() {
......@@ -61,11 +71,7 @@ func (t *T) Log(args ...) {
// Log formats its arguments according to the format, analogous to Printf(),
// and records the text in the error log.
func (t *T) Logf(format string, args ...) {
t.errors += tabify(fmt.Sprintf("\t" + format, args));
l := len(t.errors);
if l > 0 && t.errors[l-1] != '\n' {
t.errors += "\n"
}
t.errors += "\t" + tabify(fmt.Sprintf(format, args));
}
// Error is equivalent to Log() followed by Fail().
......
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