Skip to content

Commit 7af9e7c

Browse files
authored
CDRIVER-4515 Add prose test to not spawn mongocrypt if shared library is loaded (#1149)
1 parent 42296db commit 7af9e7c

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

src/libmongoc/tests/test-mongoc-client-side-encryption.c

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2675,13 +2675,27 @@ test_bypass_spawning_via_helper (const char *auto_encryption_opt)
26752675
mongoc_auto_encryption_opts_set_bypass_query_analysis (
26762676
auto_encryption_opts, true);
26772677
} else if (0 == strcmp (auto_encryption_opt, "cryptSharedLibRequired")) {
2678+
bson_t *schema =
2679+
get_bson_from_json_file ("./src/libmongoc/tests/"
2680+
"client_side_encryption_prose/external/"
2681+
"external-schema.json");
2682+
BSON_ASSERT (schema);
2683+
bson_t *schema_map = BCON_NEW ("db.coll", BCON_DOCUMENT (schema));
2684+
mongoc_auto_encryption_opts_set_schema_map (auto_encryption_opts,
2685+
schema_map);
26782686
check_crypt_shared = true;
26792687
char *env_cryptSharedLibPath =
26802688
test_framework_getenv ("MONGOC_TEST_CRYPT_SHARED_LIB_PATH");
26812689
BSON_ASSERT (env_cryptSharedLibPath);
26822690
BSON_APPEND_UTF8 (extra, "cryptSharedLibPath", env_cryptSharedLibPath);
26832691
BSON_APPEND_BOOL (extra, "cryptSharedLibRequired", true);
2692+
BSON_APPEND_UTF8 (
2693+
extra,
2694+
"mongocryptdURI",
2695+
"mongodb://localhost:27021/db?serverSelectionTimeoutMS=1000");
26842696
bson_free (env_cryptSharedLibPath);
2697+
bson_destroy (schema);
2698+
bson_destroy (schema_map);
26852699
} else {
26862700
test_error ("Unexpected 'auto_encryption_opt' argument: %s",
26872701
auto_encryption_opt);
@@ -2706,7 +2720,7 @@ test_bypass_spawning_via_helper (const char *auto_encryption_opt)
27062720
NULL);
27072721
}
27082722

2709-
/* Insert { 'encrypt': 'test' }. Should succeed. */
2723+
/* Insert { 'unencrypted': 'test' }. Should succeed. */
27102724
coll = mongoc_client_get_collection (client_encrypted, "db", "coll");
27112725
doc_to_insert = BCON_NEW ("unencrypted", "test");
27122726
ret = mongoc_collection_insert_one (
@@ -2740,8 +2754,9 @@ test_bypass_spawning_via_bypassQueryAnalysis (void *unused)
27402754
test_bypass_spawning_via_helper ("bypass_query_analysis");
27412755
}
27422756

2757+
/* Prose Test 8: Bypass Spawning mongocryptd - Via loading shared library */
27432758
static void
2744-
test_bypass_spawning_via_cryptSharedLibRequired (void *unused)
2759+
test_bypass_spawning_via_cryptSharedLibLoaded (void *unused)
27452760
{
27462761
BSON_UNUSED (unused);
27472762
test_bypass_spawning_via_helper ("cryptSharedLibRequired");
@@ -5773,8 +5788,8 @@ test_client_side_encryption_install (TestSuite *suite)
57735788
test_framework_skip_if_max_wire_version_less_than_8);
57745789
TestSuite_AddFull (suite,
57755790
"/client_side_encryption/bypass_spawning_mongocryptd/"
5776-
"cryptSharedLibRequired",
5777-
test_bypass_spawning_via_cryptSharedLibRequired,
5791+
"cryptSharedLibLoaded",
5792+
test_bypass_spawning_via_cryptSharedLibLoaded,
57785793
NULL,
57795794
NULL,
57805795
test_framework_skip_if_no_client_side_encryption,

0 commit comments

Comments
 (0)