diff --git a/.gitmodules b/.gitmodules
index 43e6a2c8573fafedb3261164a2a1b9aead0a7feb..b39060acb7b691d8ab4b642645b0b71bc987b8d8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -134,3 +134,7 @@
 	path = libdap-chain-net-srv-datum-pool
 	url = https://github.com/kelvinblockchain/libdap-chain-net-srv-datum-pool
 	branch = master
+[submodule "test/libdap-test"]
+	path = test/libdap-test
+	url = https://github.com/kelvinblockchain/libdap-test
+	branch = master
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..83c7e6e6ceff7e5ec1373b7ed4548434bdee9fff
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,30 @@
+sudo: required
+language: c
+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_KELVIN_NODE_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 f3f192512a33957df8851b31ccacd1de67b860a5..eec8515f339cc1c942b4f110a14a385112052cb3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,6 +66,10 @@ add_subdirectory(libdap-stream-ch-chain-net)
 add_subdirectory(libdap-stream-ch-chain-net-srv)
 #add_subdirectory(libdap-stream-ch-chat)
 
+if(BUILD_KELVIN_NODE_TESTS)
+    enable_testing()
+    add_subdirectory(test)
+endif()
 
 #include_directories("${INCLUDE_DIRECTORIES} ${dap_core_INCLUDE_DIRS}")
 #include_directories("${INCLUDE_DIRECTORIES} ${dap_http_INCLUDE_DIRS}")
diff --git a/README.md b/README.md
index e7d65b0e64ec7a1ab127c76f4984bc812323d3fa..fce7d3423e7e205fe8f3b7062dc31a68217584f8 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,4 @@
 # kelvin-node
 Kelvin Blockchain node
+
+[![Build Status](https://travis-ci.com/kelvinblockchain/kelvin-node.svg?branch=master)](https://travis-ci.com/kelvinblockchain/kelvin-node)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..945ebdb98ac298dc7dbde427b4357ef069c4cae2
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +1,18 @@
+if(TARGET kelvin_node_test)
+    return() # The project has already been built.
+endif()
+project(kelvin_node_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_core)
+
+add_test(
+    NAME kelvin_node_test
+    COMMAND kelvin_node_test
+)
diff --git a/test/libdap-test b/test/libdap-test
new file mode 160000
index 0000000000000000000000000000000000000000..2a18a8da0117b1d5f2d951ad3f50ad4e8a8b2fdd
--- /dev/null
+++ b/test/libdap-test
@@ -0,0 +1 @@
+Subproject commit 2a18a8da0117b1d5f2d951ad3f50ad4e8a8b2fdd
diff --git a/test/main.c b/test/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..d015aec2588f35b803c5923f045beeb994a85583
--- /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;
+}