From eaede0ded72e67cee4a91c086847d54cb64ca74c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 17 May 2021 23:48:35 +0200 Subject: bpo-44131: Test Py_FrozenMain() (GH-26126) * Add test_frozenmain to test_embed * Add Programs/test_frozenmain.py * Add Programs/freeze_test_frozenmain.py * Add Programs/test_frozenmain.h * Add make regen-test-frozenmain * Add test_frozenmain command to Programs/_testembed * _testembed.c: add error(msg) function --- Lib/test/test_embed.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Lib/test/test_embed.py') diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index 23cf297d4a..c68a66270c 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -1480,6 +1480,21 @@ class MiscTests(EmbeddingTestsMixin, unittest.TestCase): # when Python is initialized multiples times. self.run_embedded_interpreter("test_unicode_id_init") + # See bpo-44133 + @unittest.skipIf(os.name == 'nt', + 'Py_FrozenMain is not exported on Windows') + def test_frozenmain(self): + out, err = self.run_embedded_interpreter("test_frozenmain") + exe = os.path.realpath('./argv0') + expected = textwrap.dedent(f""" + Frozen Hello World + sys.argv ['./argv0', '-E', 'arg1', 'arg2'] + config program_name: ./argv0 + config executable: {exe} + config use_environment: 1 + """).lstrip() + self.assertEqual(out, expected) + class StdPrinterTests(EmbeddingTestsMixin, unittest.TestCase): # Test PyStdPrinter_Type which is used by _PySys_SetPreliminaryStderr(): -- cgit v1.2.1