diff --git a/command/pgp_test.go b/command/pgp_test.go index bc8d054b06..9a8353e366 100644 --- a/command/pgp_test.go +++ b/command/pgp_test.go @@ -7,6 +7,7 @@ import ( "io/ioutil" "reflect" "regexp" + "sort" "testing" "github.com/hashicorp/vault/vault" @@ -58,7 +59,7 @@ func getPubKeyFiles(t *testing.T) (string, []string, error) { func parseDecryptAndTestUnsealKeys(t *testing.T, input, rootToken string, fingerprints bool, - backupKeys map[string]string, + backupKeys map[string][]string, core *vault.Core) { decoder := base64.StdEncoding priv1Bytes, err := decoder.DecodeString(privKey1) @@ -112,9 +113,10 @@ func parseDecryptAndTestUnsealKeys(t *testing.T, } if backupKeys != nil && len(matchedFingerprints) != 0 { - testMap := map[string]string{} + testMap := map[string][]string{} for i, v := range matchedFingerprints { - testMap[v] = encodedKeys[i] + testMap[v] = append(testMap[v], encodedKeys[i]) + sort.Strings(testMap[v]) } if !reflect.DeepEqual(testMap, backupKeys) { t.Fatalf("test map and backup map do not match, test map is\n%#v\nbackup map is\n%#v", testMap, backupKeys) diff --git a/command/rekey_test.go b/command/rekey_test.go index 46178025bf..bd75a39438 100644 --- a/command/rekey_test.go +++ b/command/rekey_test.go @@ -3,6 +3,7 @@ package command import ( "encoding/hex" "os" + "sort" "strings" "testing" "time" @@ -223,7 +224,7 @@ func TestRekey_init_pgp(t *testing.T) { } type backupStruct struct { - Keys map[string]string + Keys map[string][]string } backupVals := &backupStruct{} @@ -242,7 +243,7 @@ func TestRekey_init_pgp(t *testing.T) { t.Fatalf("nonce mismatch between rekey and backed-up keys") } - backupVals.Keys = resp.Data["keys"].(map[string]string) + backupVals.Keys = resp.Data["keys"].(map[string][]string) // Now delete and try again; the values should be inaccessible req = logical.TestRequest(t, logical.DeleteOperation, "rekey/backup") @@ -262,5 +263,10 @@ func TestRekey_init_pgp(t *testing.T) { t.Fatalf("keys found when they should have been deleted") } + // Sort, because it'll be tested with DeepEqual later + for k, _ := range backupVals.Keys { + sort.Strings(backupVals.Keys[k]) + } + parseDecryptAndTestUnsealKeys(t, ui.OutputWriter.String(), token, true, backupVals.Keys, core) }