summaryrefslogtreecommitdiffstats
path: root/Programs/_testembed.c
diff options
context:
space:
mode:
Diffstat (limited to 'Programs/_testembed.c')
-rw-r--r--Programs/_testembed.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index b61fe34..773c6c3 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -1726,6 +1726,44 @@ static int test_get_argc_argv(void)
}
+static int check_use_frozen_modules(const char *rawval)
+{
+ wchar_t optval[100];
+ if (rawval == NULL) {
+ wcscpy(optval, L"frozen_modules");
+ }
+ else if (swprintf(optval, 100, L"frozen_modules=%s", rawval) < 0) {
+ error("rawval is too long");
+ return -1;
+ }
+
+ PyConfig config;
+ PyConfig_InitPythonConfig(&config);
+
+ config.parse_argv = 1;
+
+ wchar_t* argv[] = {
+ L"./argv0",
+ L"-X",
+ optval,
+ L"-c",
+ L"pass",
+ };
+ config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv);
+ init_from_config_clear(&config);
+
+ dump_config();
+ Py_Finalize();
+ return 0;
+}
+
+static int test_init_use_frozen_modules(void)
+{
+ const char *envvar = getenv("TESTFROZEN");
+ return check_use_frozen_modules(envvar);
+}
+
+
static int test_unicode_id_init(void)
{
// bpo-42882: Test that _PyUnicode_FromId() works
@@ -1912,6 +1950,7 @@ static struct TestCase TestCases[] = {
{"test_run_main", test_run_main},
{"test_run_main_loop", test_run_main_loop},
{"test_get_argc_argv", test_get_argc_argv},
+ {"test_init_use_frozen_modules", test_init_use_frozen_modules},
// Audit
{"test_open_code_hook", test_open_code_hook},