From 6ac50ca5f3edc478a9593f721c8f1b095a5cdb18 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Tue, 17 May 2016 20:39:53 +0200
Subject: Fix tests under MinGW

- Fix PATH for api_test, see:
  https://cmake.org/pipermail/cmake/2009-May/029423.html
- DLL is named libcmark.dll under MinGW.
---
 test/CMakeLists.txt |  6 +++---
 test/cmark.py       | 17 ++++++++++-------
 2 files changed, 13 insertions(+), 10 deletions(-)

(limited to 'test')

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index fbfd1d0..211bf69 100755
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -13,9 +13,9 @@ add_test(NAME api_test COMMAND api_test)
 
 if (WIN32)
   file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/src WIN_DLL_DIR)
-  set_tests_properties(api_test PROPERTIES
-    ENVIRONMENT "PATH=${WIN_DLL_DIR};$ENV{PATH}"
-    )
+  set(NEWPATH "${WIN_DLL_DIR};$ENV{PATH}")
+  string(REPLACE ";" "\\;" NEWPATH "${NEWPATH}")
+  set_tests_properties(api_test PROPERTIES ENVIRONMENT "PATH=${NEWPATH}")
   set(ROUNDTRIP,"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip.bat")
 else(WIN32)
   set(ROUNDTRIP,"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip.sh")
diff --git a/test/cmark.py b/test/cmark.py
index 1110860..787c310 100644
--- a/test/cmark.py
+++ b/test/cmark.py
@@ -24,15 +24,18 @@ class CMark:
         else:
             sysname = platform.system()
             if sysname == 'Darwin':
-                libname = "libcmark.dylib"
+                libnames = [ "libcmark.dylib" ]
             elif sysname == 'Windows':
-                libname = "cmark.dll"
+                libnames = [ "cmark.dll", "libcmark.dll" ]
             else:
-                libname = "libcmark.so"
-            if library_dir:
-                libpath = os.path.join(library_dir, libname)
-            else:
-                libpath = os.path.join("build", "src", libname)
+                libnames = [ "libcmark.so" ]
+            if not library_dir:
+                library_dir = os.path.join("build", "src")
+            for libname in libnames:
+                candidate = os.path.join(library_dir, libname)
+                if os.path.isfile(candidate):
+                    libpath = candidate
+                    break
             cmark = CDLL(libpath)
             markdown = cmark.cmark_markdown_to_html
             markdown.restype = c_char_p
-- 
cgit v1.2.3