From 0f42979ad8e2d701a775b643e489d1deae251de2 Mon Sep 17 00:00:00 2001
From: armatusmiles <akurotych@gmail.com>
Date: Thu, 13 Dec 2018 17:12:46 +0200
Subject: [PATCH] [+] test module and .travis.yml

---
 .gitmodules         |  3 +++
 .travis.yml         | 28 ++++++++++++++++++++++++++++
 CMakeLists.txt      |  8 ++++++--
 test/CMakeLists.txt | 18 ++++++++++++++++++
 test/libdap-test    |  1 +
 test/main.c         |  7 +++++++
 6 files changed, 63 insertions(+), 2 deletions(-)
 create mode 100644 .travis.yml
 create mode 100644 test/CMakeLists.txt
 create mode 160000 test/libdap-test
 create mode 100644 test/main.c

diff --git a/.gitmodules b/.gitmodules
index 9e54bc2..511a70b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -13,3 +13,6 @@
 [submodule "libdap-stream-ch"]
 	path = libdap-stream-ch
 	url = https://github.com/kelvinblockchain/libdap-stream-ch
+[submodule "test/libdap-test"]
+	path = test/libdap-test
+	url = https://github.com/kelvinblockchain/libdap-test
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f2a5aa7
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,28 @@
+sudo: required
+language: cpp
+compiler: gcc
+dist: trusty
+notifications:
+  email: false
+
+before_install:
+    - git submodule init
+    - git submodule update --recursive
+
+script:
+    - export CC=gcc-5
+    - mkdir build
+    - cd build 
+    - cmake -DBUILD_LIB_DAP_CLIENT_TESTS=ON ../
+    - make
+    - ctest --verbose
+
+addons:
+  apt:
+    sources:
+    - ubuntu-toolchain-r-test
+    packages:
+    - gcc-5
+    - libev-dev
+    - libmagic-dev
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b31f29a..a187fa9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,12 @@ add_subdirectory(libdap-server)
 add_subdirectory(libdap-stream)
 add_subdirectory(libdap-stream-ch)
 
+if(BUILD_LIB_DAP_CLIENT_TESTS)
+    enable_testing()
+    add_subdirectory(test)
+endif()
+
+
 file(GLOB DAP_CLIENT_SRCS *.c)
 file(GLOB DAP_CLIENT_HEADERS *.h)
 
@@ -19,7 +25,5 @@ add_library(${PROJECT_NAME} STATIC ${DAP_CLIENT_SRCS} ${DAP_CLIENT_HEADERS})
 
 target_link_libraries(${PROJECT_NAME} dap_crypto dap_core dap_http_server dap_session dap_stream)
 
-#dap_udp_server dap_stream dap_session
-
 target_include_directories(${PROJECT_NAME} INTERFACE .)
 
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 0000000..4ea6b6a
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +1,18 @@
+if(TARGET libdap_client_test)
+    return() # The project has already been built.
+endif()
+project(libdap_client_test)
+
+add_subdirectory(libdap-test)
+
+file(GLOB SOURCES *.c)
+file(GLOB HEADERS *.h)
+
+add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
+
+target_link_libraries(${PROJECT_NAME} dap_test dap_core)
+
+add_test(
+    NAME libdap_client_test
+    COMMAND libdap_client_test
+)
diff --git a/test/libdap-test b/test/libdap-test
new file mode 160000
index 0000000..d40ba89
--- /dev/null
+++ b/test/libdap-test
@@ -0,0 +1 @@
+Subproject commit d40ba8973440b7c712d5a64df03a312adcf7c2fd
diff --git a/test/main.c b/test/main.c
new file mode 100644
index 0000000..d015aec
--- /dev/null
+++ b/test/main.c
@@ -0,0 +1,7 @@
+#include "dap_common.h"
+
+int main(void) {
+    // switch off debug info from library
+    set_log_level(L_CRITICAL);
+    return 0;
+}
-- 
GitLab