aboutsummaryrefslogtreecommitdiff
path: root/src/log/log_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/log/log_test.go')
-rw-r--r--src/log/log_test.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/log/log_test.go b/src/log/log_test.go
index 5be8e82258..938ed42357 100644
--- a/src/log/log_test.go
+++ b/src/log/log_test.go
@@ -9,6 +9,7 @@ package log
import (
"bytes"
"fmt"
+ "io"
"os"
"regexp"
"strings"
@@ -20,7 +21,7 @@ const (
Rdate = `[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]`
Rtime = `[0-9][0-9]:[0-9][0-9]:[0-9][0-9]`
Rmicroseconds = `\.[0-9][0-9][0-9][0-9][0-9][0-9]`
- Rline = `(60|62):` // must update if the calls to l.Printf / l.Print below move
+ Rline = `(61|63):` // must update if the calls to l.Printf / l.Print below move
Rlongfile = `.*/[A-Za-z0-9_\-]+\.go:` + Rline
Rshortfile = `[A-Za-z0-9_\-]+\.go:` + Rline
)
@@ -179,6 +180,17 @@ func TestEmptyPrintCreatesLine(t *testing.T) {
}
}
+func TestDiscard(t *testing.T) {
+ l := New(io.Discard, "", 0)
+ s := strings.Repeat("a", 102400)
+ c := testing.AllocsPerRun(100, func() { l.Printf("%s", s) })
+ // One allocation for slice passed to Printf,
+ // but none for formatting of long string.
+ if c > 1 {
+ t.Errorf("got %v allocs, want at most 1", c)
+ }
+}
+
func BenchmarkItoa(b *testing.B) {
dst := make([]byte, 0, 64)
for i := 0; i < b.N; i++ {