@@ -78,6 +78,7 @@ func TestRedact_Simple(t *testing.T) {
7878 redacted , _ := filters .Redact ("" , args , "" )
7979 assert .Equal (t , "--verbose=true --password " + REDACTION_STR + " --username foobar" , redacted )
8080}
81+
8182func TestRedact_BinaryFilter (t * testing.T ) {
8283 args := "--verbose=true --password ybx511!ackt544 --username foobar"
8384
@@ -102,3 +103,27 @@ func TestRedact_Multi(t *testing.T) {
102103 redacted , _ := filters .Redact ("" , args , "" )
103104 assert .Equal (t , "--verbose=true --password " + REDACTION_STR + " --username foobar " + REDACTION_STR + "cake " + REDACTION_STR + " innocent" , redacted )
104105}
106+
107+ func TestRedact_Envs (t * testing.T ) {
108+ envs := "VAR1=XXX SSH_PASSWORD=verysecretpassword VAR2=YYY"
109+
110+ filterList := `{"redact": ["(?:SSH_PASSWORD)[\\s=]+(\\S+)"]}`
111+ filters , err := ParseRedactionFilterList (filterList )
112+ require .NoError (t , err )
113+
114+ _ , redacted := filters .Redact ("" , "" , envs )
115+ assert .Equal (t , "VAR1=XXX SSH_PASSWORD=" + REDACTION_STR + " VAR2=YYY" , redacted )
116+ }
117+
118+ func TestRedact_ArgsWithEnvs (t * testing.T ) {
119+ args := "--verbose=true --password ybx511!ackt544 --username foobar cheesecake TOPSECRET innocent"
120+ envs := "VAR1=XXX SSH_PASSWORD=verysecretpassword VAR2=YYY"
121+
122+ filterList := `{"redact": ["(?:--password|-p)[\\s=]+(\\S+)", "\\W(TOPSECRET)\\W", "(cheese)cake", "(?:SSH_PASSWORD)[\\s=]+(\\S+)"]}`
123+ filters , err := ParseRedactionFilterList (filterList )
124+ require .NoError (t , err )
125+
126+ args , envs = filters .Redact ("" , args , envs )
127+ assert .Equal (t , "--verbose=true --password " + REDACTION_STR + " --username foobar " + REDACTION_STR + "cake " + REDACTION_STR + " innocent" , args )
128+ assert .Equal (t , "VAR1=XXX SSH_PASSWORD=" + REDACTION_STR + " VAR2=YYY" , envs )
129+ }
0 commit comments