Explorar o código

Create test program to verify package

DarkMorford %!s(int64=5) %!d(string=hai) anos
pai
achega
387bd58bbb
Modificáronse 3 ficheiros con 64 adicións e 0 borrados
  1. 17 0
      test_package/CMakeLists.txt
  2. 25 0
      test_package/conanfile.py
  3. 22 0
      test_package/example.cpp

+ 17 - 0
test_package/CMakeLists.txt

@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 3.1.2)
+project(PackageTest CXX)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup()
+
+if(${CMAKE_EXPORT_NO_PACKAGE_REGISTRY})
+endif()
+
+add_executable(example example.cpp)
+target_link_libraries(example ${CONAN_LIBS})
+
+# CTest is a testing tool that can be used to test your project.
+# enable_testing()
+# add_test(NAME example
+#          WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+#          COMMAND example)

+ 25 - 0
test_package/conanfile.py

@@ -0,0 +1,25 @@
+import os
+
+from conans import ConanFile, CMake, tools
+
+
+class ZlibTestConan(ConanFile):
+    settings = "os", "compiler", "build_type", "arch"
+    generators = "cmake"
+
+    def build(self):
+        cmake = CMake(self)
+        # Current dir is "test_package/build/<build_id>" and CMakeLists.txt is
+        # in "test_package"
+        cmake.configure()
+        cmake.build()
+
+    def imports(self):
+        self.copy("*.dll", dst="bin", src="bin")
+        self.copy("*.dylib*", dst="bin", src="lib")
+        self.copy('*.so*', dst='bin', src='lib')
+
+    def test(self):
+        if not tools.cross_building(self.settings):
+            os.chdir("bin")
+            self.run(".%sexample" % os.sep)

+ 22 - 0
test_package/example.cpp

@@ -0,0 +1,22 @@
+#include <zlib.h>
+
+int main() {
+    z_stream str;
+    str.zalloc = Z_NULL;
+    str.zfree  = Z_NULL;
+    str.opaque = Z_NULL;
+
+    int initOk = deflateInit(&str, Z_DEFAULT_COMPRESSION);
+    if (initOk != Z_OK) return 1;
+
+    int endOk = deflateEnd(&str);
+    if (endOk != Z_OK) return 1;
+
+    initOk = inflateInit(&str);
+    if (initOk != Z_OK) return 1;
+
+    endOk = inflateEnd(&str);
+    if (endOk != Z_OK) return 1;
+
+    return 0;
+}