feature/tpm: don't log to stderr in tests

Fixes #17336

Change-Id: I7d2be4e8acf59116c57ce26049a6a5baa8f32436
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-09-30 08:21:02 -07:00
committed by Brad Fitzpatrick
parent 1803226945
commit 9b997c8f2f

View File

@@ -23,6 +23,7 @@ import (
"github.com/google/go-tpm/tpm2/transport"
"golang.org/x/crypto/nacl/secretbox"
"tailscale.com/atomicfile"
"tailscale.com/envknob"
"tailscale.com/feature"
"tailscale.com/hostinfo"
"tailscale.com/ipn"
@@ -31,6 +32,7 @@ import (
"tailscale.com/tailcfg"
"tailscale.com/types/key"
"tailscale.com/types/logger"
"tailscale.com/util/testenv"
)
var infoOnce = sync.OnceValue(info)
@@ -49,13 +51,20 @@ func init() {
}
}
var verboseTPM = envknob.RegisterBool("TS_DEBUG_TPM")
func info() *tailcfg.TPMInfo {
logf := logger.Discard
if !testenv.InTest() || verboseTPM() {
logf = log.New(log.Default().Writer(), "TPM: ", 0).Printf
}
tpm, err := open()
if err != nil {
log.Printf("TPM: error opening: %v", err)
logf("error opening: %v", err)
return nil
}
log.Printf("TPM: successfully opened")
logf("successfully opened")
defer tpm.Close()
info := new(tailcfg.TPMInfo)
@@ -84,12 +93,12 @@ func info() *tailcfg.TPMInfo {
PropertyCount: 1,
}.Execute(tpm)
if err != nil {
log.Printf("TPM: GetCapability %v: %v", cap.prop, err)
logf("GetCapability %v: %v", cap.prop, err)
continue
}
props, err := resp.CapabilityData.Data.TPMProperties()
if err != nil {
log.Printf("TPM: GetCapability %v: %v", cap.prop, err)
logf("GetCapability %v: %v", cap.prop, err)
continue
}
if len(props.TPMProperty) == 0 {
@@ -97,6 +106,7 @@ func info() *tailcfg.TPMInfo {
}
cap.apply(info, props.TPMProperty[0].Value)
}
logf("successfully read all properties")
return info
}