From: Matthew Fernandez <matthew.fernandez@gmail.com>
Date: Sat, 18 Jul 2020 23:23:14 +0000 (-0700)
Subject: add CI tests that GVPR lib is parseable
X-Git-Tag: 2.46.0~20^2^2~178^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aaf8da158c35cb3c8f84d5d086bf64aac748250f;p=graphviz

add CI tests that GVPR lib is parseable

This does not test addedges, binduce, or histogram that require a command line
argument.
---

diff --git a/rtest/test_examples.py b/rtest/test_examples.py
index 993722e02..412795ce4 100644
--- a/rtest/test_examples.py
+++ b/rtest/test_examples.py
@@ -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)