Skip to content

Commit

Permalink
crypto/x509: fix panic in TestEnvVars, improve style
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
dmitshur committed Jun 27, 2017
1 parent 93870ae commit 441fd13
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/crypto/x509/root_unix_test.go
Expand Up @@ -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 {
Expand All @@ -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))
}
})
}
Expand Down

0 comments on commit 441fd13

Please sign in to comment.