Commit 441fd133 authored by Dmitri Shuralyov's avatar Dmitri Shuralyov Committed by Dmitri Shuralyov

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: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 93870aee
...@@ -99,7 +99,7 @@ func TestEnvVars(t *testing.T) { ...@@ -99,7 +99,7 @@ func TestEnvVars(t *testing.T) {
r, err := loadSystemRoots() r, err := loadSystemRoots()
if err != nil { if err != nil {
t.Fatal("unexpected failure: ", err) t.Fatal("unexpected failure:", err)
} }
if r == nil { if r == nil {
...@@ -110,17 +110,17 @@ func TestEnvVars(t *testing.T) { ...@@ -110,17 +110,17 @@ func TestEnvVars(t *testing.T) {
t.Fatal("nil roots") t.Fatal("nil roots")
} }
// Verify len(r.certs) == len(tc.cns), otherwise report where the mismatch is.
for i, cn := range tc.cns { for i, cn := range tc.cns {
if i > len(r.certs) { if i >= len(r.certs) {
t.Errorf("missing cert %v @ %v", cn, i) t.Errorf("missing cert %v @ %v", cn, i)
} else if r.certs[i].Subject.CommonName != cn { } else if r.certs[i].Subject.CommonName != cn {
fmt.Printf("%#v\n", r.certs[0].Subject) 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) { 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))
} }
}) })
} }
......
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