From: Matthew Fernandez Date: Sat, 4 Jul 2020 17:28:35 +0000 (-0700) Subject: add compilation of the C examples to the test suite X-Git-Tag: 2.46.0~20^2^2~195^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14ff74f53804c47598e1a05546f806ef3458531d;p=graphviz add compilation of the C examples to the test suite --- 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])