// Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package x509 import ( "os" "os/exec" "testing" "time" ) func TestSystemRoots(t *testing.T) { t0 := time.Now() sysRoots, err := loadSystemRoots() // actual system roots sysRootsDuration := time.Since(t0) if err != nil { t.Fatalf("failed to read system roots: %v", err) } t.Logf("loadSystemRoots: %v", sysRootsDuration) // There are 174 system roots on Catalina, and 163 on iOS right now, require // at least 100 to make sure this is not completely broken. if want, have := 100, sysRoots.len(); have < want { t.Errorf("want at least %d system roots, have %d", want, have) } if t.Failed() { cmd := exec.Command("security", "dump-trust-settings") cmd.Stdout, cmd.Stderr = os.Stderr, os.Stderr cmd.Run() cmd = exec.Command("security", "dump-trust-settings", "-d") cmd.Stdout, cmd.Stderr = os.Stderr, os.Stderr cmd.Run() } }