diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2021-10-25 21:26:41 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-25 21:26:41 (GMT) |
commit | 6afb285ff0790471a6858e44f85d143f07fda70c (patch) | |
tree | 4e8505fe17c108c8a58aecea7111775b59a66b29 /Programs | |
parent | 2b8677a3cd855eb3a579894c64588eab0e006269 (diff) | |
download | cpython-6afb285ff0790471a6858e44f85d143f07fda70c.zip cpython-6afb285ff0790471a6858e44f85d143f07fda70c.tar.gz cpython-6afb285ff0790471a6858e44f85d143f07fda70c.tar.bz2 |
bpo-45020: Add tests for the -X "frozen_modules" option. (gh-28997)
We hadn't explicitly added any tests for this, so here they are.
https://bugs.python.org/issue45020
Diffstat (limited to 'Programs')
-rw-r--r-- | Programs/_testembed.c | 39 |
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}, |