From 14ff74f53804c47598e1a05546f806ef3458531d Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Sat, 4 Jul 2020 10:28:35 -0700 Subject: [PATCH] add compilation of the C examples to the test suite --- rtest/test_examples.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 rtest/test_examples.py diff --git a/rtest/test_examples.py b/rtest/test_examples.py new file mode 100644 index 000000000..21c9fa23b --- /dev/null +++ b/rtest/test_examples.py @@ -0,0 +1,32 @@ +# tests that examples provided with Graphviz compile correctly + +import os +import platform +import pytest +import subprocess + +def c_compiler(): + '''find the system's C compiler''' + return os.environ.get('CC', 'cc') + +@pytest.mark.parametrize('src', ['demo.c', 'dot.c', 'example.c', 'neatopack.c', + 'simple.c']) +def test_compile_example(src): + '''try to compile the example''' + + # FIXME: if you know how to call the C compiler on Windows, please implement + # this functionality + if platform.system() == 'Windows': + pytest.skip('not implemented for Windows') + + # construct an absolute path to the example + filepath = os.path.join(os.path.abspath(os.path.dirname(__file__)), + '../dot.demo', src) + + cc = c_compiler() + + libs = ('cgraph', 'gvc') + + # ensure the C compiler can build this without error + subprocess.check_call([cc, '-o', os.devnull, filepath] + + ['-l{}'.format(l) for l in libs]) -- 2.40.0