Skip to content

Commit cc3be25

Browse files
committed
fix tests
1 parent 00e69f5 commit cc3be25

File tree

2 files changed

+70
-39
lines changed

2 files changed

+70
-39
lines changed

.evergreen/config.yml

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -554,9 +554,6 @@ functions:
554554
args: [*task-runner, evg-test-kmip]
555555

556556
start-kms-failpoint-server:
557-
- command: ec2.assume_role
558-
params:
559-
role_arn: ${aws_test_secrets_role}
560557
- command: subprocess.exec
561558
params:
562559
working_dir: src/go.mongodb.org/mongo-driver
@@ -578,14 +575,14 @@ functions:
578575
binary: "bash"
579576
env:
580577
GO_BUILD_TAGS: cse
581-
include_expansions_in_env: [AUTH, SSL, MONGODB_URI, TOPOLOGY,
582-
MONGO_GO_DRIVER_COMPRESSOR]
578+
include_expansions_in_env: [AUTH, SSL, MONGODB_URI, TOPOLOGY, MONGO_GO_DRIVER_COMPRESSOR]
583579
args: [*task-runner, setup-test]
584580
- command: subprocess.exec
585581
type: test
586582
params:
587583
binary: "bash"
588584
env:
585+
CSFLE_TLS_CA_FILE: "${PARENT_DIR}/x509gen/ca.pem"
589586
KMS_FAILPOINT_SERVERS_RUNNING: "true"
590587
args: [*task-runner, evg-test-retry-kms-requests]
591588

@@ -1532,10 +1529,6 @@ tasks:
15321529
SSL: "nossl"
15331530
- func: start-kms-failpoint-server
15341531
- func: run-retry-kms-requests
1535-
vars:
1536-
TOPOLOGY: "server"
1537-
AUTH: "noauth"
1538-
SSL: "nossl"
15391532

15401533
- name: "test-serverless"
15411534
tags: ["serverless"]

internal/integration/client_side_encryption_prose_test.go

Lines changed: 68 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2988,8 +2988,16 @@ func TestClientSideEncryptionProse(t *testing.T) {
29882988
mt.Skipf("Skipping test as KMS_FAILPOINT_SERVERS_RUNNING is not set")
29892989
}
29902990

2991-
tlsCfg := &tls.Config{
2992-
InsecureSkipVerify: true,
2991+
mt.Parallel()
2992+
2993+
var tlsCfg *tls.Config
2994+
if tlsCAFileKMIP != "" {
2995+
var err error
2996+
clientAndCATlsMap := map[string]interface{}{
2997+
"tlsCAFile": tlsCAFileKMIP,
2998+
}
2999+
tlsCfg, err = options.BuildTLSConfig(clientAndCATlsMap)
3000+
require.Nil(mt, err, "BuildTLSConfig error: %v", err)
29933001
}
29943002

29953003
setFailPoint := func(failure string, count int) error {
@@ -3012,39 +3020,69 @@ func TestClientSideEncryptionProse(t *testing.T) {
30123020
return res.Body.Close()
30133021
}
30143022

3015-
keyVaultClient, err := mongo.Connect(options.Client().ApplyURI(mtest.ClusterURI()))
3016-
require.NoError(mt, err, "error on Connect: %v", err)
3017-
3018-
ceo := options.ClientEncryption().
3019-
SetKeyVaultNamespace("keyvault.datakeys").
3020-
SetKmsProviders(fullKmsProvidersMap).
3021-
SetTLSConfig(map[string]*tls.Config{"aws": tlsCfg})
3022-
clientEncryption, err := mongo.NewClientEncryption(keyVaultClient, ceo)
3023-
require.NoError(mt, err, "error on NewClientEncryption: %v", err)
3024-
3025-
err = setFailPoint("network", 1)
3026-
require.NoError(mt, err, "mock server error: %v", err)
3027-
3028-
dkOpts := options.DataKey().SetMasterKey(
3029-
bson.D{
3023+
dataKeys := []struct {
3024+
provider string
3025+
masterKey interface{}
3026+
}{
3027+
{"aws", bson.D{
30303028
{"region", "foo"},
30313029
{"key", "bar"},
30323030
{"endpoint", "127.0.0.1:9003"},
3033-
},
3034-
)
3035-
var keyID bson.Binary
3036-
keyID, err = clientEncryption.CreateDataKey(context.Background(), "aws", dkOpts)
3037-
require.NoError(mt, err, "error in CreateDataKey: %v", err)
3031+
}},
3032+
{"azure", bson.D{
3033+
{"keyVaultEndpoint", "127.0.0.1:9003"},
3034+
{"keyName", "foo"},
3035+
}},
3036+
{"gcp", bson.D{
3037+
{"projectId", "foo"},
3038+
{"location", "bar"},
3039+
{"keyRing", "baz"},
3040+
{"keyName", "qux"},
3041+
{"endpoint", "127.0.0.1:9003"},
3042+
}},
3043+
}
30383044

3039-
err = setFailPoint("network", 1)
3040-
require.NoError(mt, err, "mock server error: %v", err)
3045+
testCases := []struct {
3046+
name string
3047+
failure string
3048+
}{
3049+
{"Case 1: createDataKey and encrypt with TCP retry", "network"},
3050+
{"Case 2: createDataKey and encrypt with HTTP retry", "http"},
3051+
}
30413052

3042-
testVal := bson.RawValue{Type: bson.TypeInt32, Value: bsoncore.AppendInt32(nil, 123)}
3043-
eo := options.Encrypt().
3044-
SetKeyID(keyID).
3045-
SetAlgorithm("AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic")
3046-
_, err = clientEncryption.Encrypt(context.Background(), testVal, eo)
3047-
assert.NoError(mt, err, "error in Encrypt: %v", err)
3053+
for _, tc := range testCases {
3054+
mt.Run(tc.name, func(mt *mtest.T) {
3055+
for _, dataKey := range dataKeys {
3056+
keyVaultClient, err := mongo.Connect(options.Client().ApplyURI(mtest.ClusterURI()))
3057+
require.NoError(mt, err, "error on Connect: %v", err)
3058+
3059+
ceo := options.ClientEncryption().
3060+
SetKeyVaultNamespace(kvNamespace).
3061+
SetKmsProviders(fullKmsProvidersMap).
3062+
SetTLSConfig(map[string]*tls.Config{dataKey.provider: tlsCfg})
3063+
clientEncryption, err := mongo.NewClientEncryption(keyVaultClient, ceo)
3064+
require.NoError(mt, err, "error on NewClientEncryption: %v", err)
3065+
3066+
err = setFailPoint(tc.failure, 1)
3067+
require.NoError(mt, err, "mock server error: %v", err)
3068+
3069+
dkOpts := options.DataKey().SetMasterKey(dataKey.masterKey)
3070+
var keyID bson.Binary
3071+
keyID, err = clientEncryption.CreateDataKey(context.Background(), dataKey.provider, dkOpts)
3072+
require.NoError(mt, err, "error in CreateDataKey: %v", err)
3073+
3074+
err = setFailPoint(tc.failure, 1)
3075+
require.NoError(mt, err, "mock server error: %v", err)
3076+
3077+
testVal := bson.RawValue{Type: bson.TypeInt32, Value: bsoncore.AppendInt32(nil, 123)}
3078+
eo := options.Encrypt().
3079+
SetKeyID(keyID).
3080+
SetAlgorithm("AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic")
3081+
_, err = clientEncryption.Encrypt(context.Background(), testVal, eo)
3082+
assert.NoError(mt, err, "error in Encrypt: %v", err)
3083+
}
3084+
})
3085+
}
30483086
})
30493087
}
30503088

0 commit comments

Comments
 (0)