1
0
mirror of https://github.com/golang/go synced 2024-11-18 04:24:47 -07:00

crypto/x509: fix panic in TestEnvVars, improve style

This panic happens when the test fails due to the returned number of
certificates (r.certs) being less than expected by test case (tc.cns).
When i == len(r.certs) in the for loop, r.certs[i] will cause an index
out of range panic.

Also improve readability, consistency and style of the code. Use the
more common "got x, want y" pattern. See https://golang.org/s/style#useful-test-failures
for reference (and grep codebase for most common occurrences). Add a
comment, and remove blank line separating two blocks that are both
related to verifying that len(r.certs) == len(tc.cns). This should
help with readability.

Remove space after colon in call to t.Fatal, since it adds spaces
between its arguments.

Fixes #20801.

Change-Id: I40476103f1b5a0fa74b05637c250926b571c92fd
Reviewed-on: https://go-review.googlesource.com/46715
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Dmitri Shuralyov 2017-06-26 14:32:55 -04:00 committed by Dmitri Shuralyov
parent 93870aeee9
commit 441fd13386

View File

@ -99,7 +99,7 @@ func TestEnvVars(t *testing.T) {
r, err := loadSystemRoots()
if err != nil {
t.Fatal("unexpected failure: ", err)
t.Fatal("unexpected failure:", err)
}
if r == nil {
@ -110,17 +110,17 @@ func TestEnvVars(t *testing.T) {
t.Fatal("nil roots")
}
// Verify len(r.certs) == len(tc.cns), otherwise report where the mismatch is.
for i, cn := range tc.cns {
if i > len(r.certs) {
if i >= len(r.certs) {
t.Errorf("missing cert %v @ %v", cn, i)
} else if r.certs[i].Subject.CommonName != cn {
fmt.Printf("%#v\n", r.certs[0].Subject)
t.Errorf("unexpected cert common name %q expected %q", r.certs[i].Subject.CommonName, cn)
t.Errorf("unexpected cert common name %q, want %q", r.certs[i].Subject.CommonName, cn)
}
}
if len(r.certs) > len(tc.cns) {
t.Errorf("expected %v certs got %v", len(tc.cns), len(r.certs))
t.Errorf("got %v certs, which is more than %v wanted", len(r.certs), len(tc.cns))
}
})
}