@@ -16,6 +16,7 @@ package validate
16
16
17
17
import (
18
18
"errors"
19
+ "fmt"
19
20
"math/rand"
20
21
"strings"
21
22
"testing"
@@ -622,6 +623,21 @@ func makeTestBuild(buildID string) *cb.Build {
622
623
}
623
624
624
625
func TestCheckSecrets (t * testing.T ) {
626
+ makeSecretEnvs := func (n int ) []string {
627
+ var s []string
628
+ for i := 0 ; i < n ; i ++ {
629
+ s = append (s , fmt .Sprintf ("MY_SECRET_%d" , i ))
630
+ }
631
+ return s
632
+ }
633
+ makeSecrets := func (n int ) map [string ][]byte {
634
+ m := map [string ][]byte {}
635
+ for i := 0 ; i < n ; i ++ {
636
+ m [fmt .Sprintf ("MY_SECRET_%d" , i )] = []byte ("hunter2" )
637
+ }
638
+ return m
639
+ }
640
+
625
641
for _ , c := range []struct {
626
642
desc string
627
643
b * cb.Build
@@ -730,29 +746,28 @@ func TestCheckSecrets(t *testing.T) {
730
746
},
731
747
wantErr : errors .New (`secretEnv value for "MY_SECRET" cannot exceed 1KB` ),
732
748
}, {
733
- desc : "Build with >10 secret values" ,
749
+ desc : "Happy case: Build with acceptable secret values" ,
734
750
b : & cb.Build {
735
751
Steps : []* cb.BuildStep {{
736
- SecretEnv : [] string { "MY_SECRET_1" , "MY_SECRET_2" , "MY_SECRET_3" , "MY_SECRET_4" , "MY_SECRET_5" , "MY_SECRET_6" , "MY_SECRET_7" , "MY_SECRET_8" , "MY_SECRET_9" , "MY_SECRET_10" , "MY_SECRET_11" } ,
752
+ SecretEnv : makeSecretEnvs ( maxNumSecretEnvs ) ,
737
753
}},
738
754
Secrets : []* cb.Secret {{
739
755
KmsKeyName : kmsKeyName ,
740
- SecretEnv : map [string ][]byte {
741
- "MY_SECRET_1" : []byte ("hunter1" ),
742
- "MY_SECRET_2" : []byte ("hunter1" ),
743
- "MY_SECRET_3" : []byte ("hunter1" ),
744
- "MY_SECRET_4" : []byte ("hunter1" ),
745
- "MY_SECRET_5" : []byte ("hunter1" ),
746
- "MY_SECRET_6" : []byte ("hunter1" ),
747
- "MY_SECRET_7" : []byte ("hunter1" ),
748
- "MY_SECRET_8" : []byte ("hunter1" ),
749
- "MY_SECRET_9" : []byte ("hunter1" ),
750
- "MY_SECRET_10" : []byte ("hunter1" ),
751
- "MY_SECRET_11" : []byte ("hunter1" ),
752
- },
756
+ SecretEnv : makeSecrets (maxNumSecretEnvs ),
757
+ }},
758
+ },
759
+ }, {
760
+ desc : "Build with too many secret values" ,
761
+ b : & cb.Build {
762
+ Steps : []* cb.BuildStep {{
763
+ SecretEnv : makeSecretEnvs (maxNumSecretEnvs + 1 ),
764
+ }},
765
+ Secrets : []* cb.Secret {{
766
+ KmsKeyName : kmsKeyName ,
767
+ SecretEnv : makeSecrets (maxNumSecretEnvs + 1 ),
753
768
}},
754
769
},
755
- wantErr : errors .New ("build defines more than ten secret values" ),
770
+ wantErr : errors .New ("build defines more than 100 secret values" ),
756
771
}, {
757
772
desc : "Step has env and secret_env collision" ,
758
773
b : & cb.Build {
0 commit comments