import os import sys import time import unittest sys.path.insert(0, '.') from tests.test_util import run_exe, cpp_supported # Runs all pycparser examples with no command-line arguments and makes sure they # run successfully (return code = 0), without actually verifying their output. class TestExamplesSucceed(unittest.TestCase): @unittest.skipUnless(cpp_supported(), 'cpp only works on Unix') def test_all_examples(self): root = './examples' for filename in os.listdir(root): if os.path.splitext(filename)[1] == '.py': with self.subTest(name=filename): path = os.path.join(root, filename) rc, stdout, stderr = run_exe(path) self.assertEqual( rc, 0, f'example "{filename}" failed with stdout =\n{stdout}\nstderr =\n{stderr}') if __name__ == '__main__': unittest.main()