bpo-36763: PyConfig_Read() handles PySys_AddXOption() (GH-15431)
PyConfig_Read() is now responsible to handle early calls to
PySys_AddXOption() and PySys_AddWarnOption().
Options added by PySys_AddXOption() are now handled the same way than
PyConfig.xoptions and command line -X options.
For example, PySys_AddXOption(L"faulthandler") enables faulthandler
as expected.
diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
index 6fb4012..2a5ace0 100644
--- a/Lib/test/test_embed.py
+++ b/Lib/test/test_embed.py
@@ -902,6 +902,23 @@
api=API_PYTHON,
modify_path_cb=modify_path)
+ def test_init_sys_add(self):
+ config = {
+ 'faulthandler': 1,
+ 'xoptions': [
+ 'config_xoption',
+ 'cmdline_xoption',
+ 'sysadd_xoption',
+ 'faulthandler',
+ ],
+ 'warnoptions': [
+ 'ignore:::config_warnoption',
+ 'ignore:::cmdline_warnoption',
+ 'ignore:::sysadd_warnoption',
+ ],
+ }
+ self.check_all_configs("test_init_sys_add", config, api=API_PYTHON)
+
def test_init_run_main(self):
code = ('import _testinternalcapi, json; '
'print(json.dumps(_testinternalcapi.get_configs()))')