@@ -21,6 +21,7 @@ import (
21
21
_ "embed"
22
22
"encoding/asn1"
23
23
"encoding/pem"
24
+ "flag"
24
25
"fmt"
25
26
"math/big"
26
27
"math/rand"
@@ -43,8 +44,10 @@ import (
43
44
)
44
45
45
46
var (
46
- signMu sync.Once
47
- signer * test.AmdSigner
47
+ signMu sync.Once
48
+ signer * test.AmdSigner
49
+ requireCache = flag .Bool ("require_cert_cache" , true ,
50
+ "If true, hardware tests depend on host cache of endorsement key certificates" )
48
51
)
49
52
50
53
func product () string {
@@ -442,6 +445,7 @@ func TestOpenGetExtendedReportVerifyClose(t *testing.T) {
442
445
name string
443
446
getter reportGetter
444
447
skipVlek bool
448
+ skipNoCache bool
445
449
badRootErr string
446
450
vlekOnly bool
447
451
vlekErr string
@@ -459,6 +463,7 @@ func TestOpenGetExtendedReportVerifyClose(t *testing.T) {
459
463
badRootErr : "error verifying VCEK certificate" ,
460
464
vlekErr : "VLEK certificate is missing" ,
461
465
vlekBadRootErr : "VLEK certificate is missing" ,
466
+ skipNoCache : true ,
462
467
},
463
468
{
464
469
name : "GetReportVlek" ,
@@ -484,10 +489,16 @@ func TestOpenGetExtendedReportVerifyClose(t *testing.T) {
484
489
vlekOnly : true ,
485
490
badRootErr : "error verifying VLEK certificate" ,
486
491
vlekBadRootErr : "error verifying VLEK certificate" ,
492
+ skipNoCache : true ,
487
493
},
488
494
}
489
495
// Trust the test device's root certs.
490
- options := & Options {TrustedRoots : goodRoots , Getter : kds , Product : testProduct (t )}
496
+ options := & Options {
497
+ TrustedRoots : goodRoots ,
498
+ Getter : kds ,
499
+ Product : testProduct (t ),
500
+ DisableCertFetching : * requireCache && ! sg .UseDefaultSevGuest (),
501
+ }
491
502
badOptions := & Options {TrustedRoots : badRoots , Getter : kds , Product : testProduct (t )}
492
503
for _ , tc := range tests {
493
504
if testclient .SkipUnmockableTestCase (& tc ) {
@@ -504,6 +515,10 @@ func TestOpenGetExtendedReportVerifyClose(t *testing.T) {
504
515
t .Skip ()
505
516
return
506
517
}
518
+ if getReport .skipNoCache && * requireCache {
519
+ t .Skip ()
520
+ return
521
+ }
507
522
ereport , err := getReport .getter (d , tc .Input )
508
523
if ! test .Match (err , tc .WantErr ) {
509
524
t .Fatalf ("(d, %v) = %v, %v. Want err: %v" , tc .Input , ereport , err , tc .WantErr )
0 commit comments