]> granicus.if.org Git - graphviz/commitdiff
Adapt test_examples.py to Windows
authorMagnus Jacobsson <magnus.jacobsson@berotec.se>
Mon, 6 Jul 2020 17:22:57 +0000 (19:22 +0200)
committerMagnus Jacobsson <magnus.jacobsson@berotec.se>
Sun, 12 Jul 2020 08:12:30 +0000 (10:12 +0200)
rtest/test_examples.py

index 21c9fa23b704e40189f2b1f7cf149ce10b695256..3e6f4da20f8f090a58bbc62b805afbe2267fbcab 100644 (file)
@@ -7,18 +7,16 @@ import subprocess
 
 def c_compiler():
     '''find the system's C compiler'''
-    return os.environ.get('CC', 'cc')
+    if platform.system() == 'Windows':
+      return "cl"
+    else:
+      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)
@@ -28,5 +26,9 @@ def test_compile_example(src):
     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])
+    if platform.system() == 'Windows':
+      subprocess.check_call([cc, filepath, '-nologo', '-link']
+        + ['{}.lib'.format(l) for l in libs])
+    else:
+      subprocess.check_call([cc, '-o', os.devnull, filepath]
+        + ['-l{}'.format(l) for l in libs])