]> granicus.if.org Git - graphviz/commitdiff
add CI tests that GVPR lib is parseable
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 18 Jul 2020 23:23:14 +0000 (16:23 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 29 Jul 2020 00:51:46 +0000 (17:51 -0700)
This does not test addedges, binduce, or histogram that require a command line
argument.

rtest/test_examples.py

index 993722e026e68a8da0c2956318a17f1af81547c2..412795ce4075acadb13ff1ace2825895860ed8e6 100644 (file)
@@ -3,6 +3,7 @@
 import os
 import platform
 import pytest
+import shutil
 import subprocess
 
 def c_compiler():
@@ -32,3 +33,24 @@ def test_compile_example(src):
     else:
       subprocess.check_call([cc, '-o', os.devnull, filepath]
         + ['-l{}'.format(l) for l in libs])
+
+@pytest.mark.parametrize('src', ['addrings', 'attr', 'bbox', 'bipart',
+  'chkedges', 'clustg', 'collapse', 'cycle', 'deghist', 'delmulti', 'depath',
+  'flatten', 'group', 'indent', 'path', 'scale', 'span', 'treetoclust',
+  'addranks', 'anon', 'bb', 'chkclusters', 'cliptree', 'col', 'color',
+  'dechain', 'deledges', 'delnodes', 'dijkstra', 'get-layers-list', 'knbhd',
+  'maxdeg', 'rotate', 'scalexy', 'topon'])
+def test_gvpr_example(src):
+    '''check GVPR can parse the given example'''
+
+    # skip this test if GVPR is unavailable
+    if shutil.which('gvpr') is None:
+      pytest.skip('GVPR not available')
+
+    # construct an absolute path to the example
+    path = os.path.join(os.path.abspath(os.path.dirname(__file__)),
+      '../cmd/gvpr/lib', src)
+
+    # run GVPR with the given script
+    with open(os.devnull, 'rt') as nul:
+      subprocess.check_call(['gvpr', '-f', path], stdin=nul)