From a89b627334b2015f828816fc5c13adb0bbcd0903 Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Wed, 16 Oct 2019 16:44:09 +0200 Subject: [PATCH] + Unit Test Framework + README + CHANGELOG + LICENSE --- .gitignore | 15 +++++++++++++++ CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ CMakeLists.txt | 33 +++++++++++++++++++++++++++++++++ LICENSE | 29 +++++++++++++++++++++++++++++ README.md | 9 +++++++++ main/main.cpp | 5 +++++ src/demo.cpp | 5 +++++ src/demo.h | 8 ++++++++ test/test_demo.cpp | 6 ++++++ test/test_main.cpp | 6 ++++++ 10 files changed, 149 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 README.md create mode 100644 main/main.cpp create mode 100644 src/demo.cpp create mode 100644 src/demo.h create mode 100644 test/test_demo.cpp create mode 100644 test/test_main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e8eb7d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Editors & IDEs +cmake-build-*/ +.idea/ +*.iml +.vs/ + +# CMake +CMakeFiles +CmakeCache.txt + + +bin/ +lib/ +include/ +build/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..5fdc8ee --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,33 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## [Unreleased] + +- Continuous Integration + +## [0.0.1] - 2019-10-24 + +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + +### Security + +## [0.0.0] - 2019-10-17 + +### Added + +- README +- LICENCE +- CMake configuration diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..847eccb --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 3.0) + +if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") + message(FATAL_ERROR "In-source builds are disabled. + Please create a subfolder called build and use `cmake ..` inside it. + NOTE: cmake will now create CMakeCache.txt and CMakeFiles/*. + You must delete them, or cmake will refuse to work.") +endif() +set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "bin" "doc" "CMakeFiles" "lib" "include") + +project(Terminal) +set(CMAKE_CXX_STANDARD 14) + +file(GLOB_RECURSE SOURCES src/*.cpp) +file(GLOB_RECURSE HEADERS src/*.h) +file(GLOB_RECURSE TESTS test/*.cpp) + +set(LIB_PATH "${CMAKE_SOURCE_DIR}/../library") + +include_directories(${LIB_PATH}/include) +add_executable(Terminal ${SOURCES} ${HEADERS} main/main.cpp) + +target_link_libraries(Terminal ${LIB_PATH}/lib/liblibrary.a) + + +enable_testing() +find_package(Catch2 REQUIRED) +add_executable(UnitTests ${SOURCES} ${HEADERS} ${TESTS}) +target_link_libraries(UnitTests Catch2::Catch2) + +include(CTest) +include(Catch) +catch_discover_tests(UnitTests) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..66aec33 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2019, Projektgruppe vKVM WS 2019 +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..509e398 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# vKVM Terminal + +## Installation + +Use the installation script provided in the Scripts repository +to install the full package. + +Installing a single component is currently not supported. + diff --git a/main/main.cpp b/main/main.cpp new file mode 100644 index 0000000..53edc26 --- /dev/null +++ b/main/main.cpp @@ -0,0 +1,5 @@ +#include "../src/demo.h" + +int main() { + return test(); +} \ No newline at end of file diff --git a/src/demo.cpp b/src/demo.cpp new file mode 100644 index 0000000..1cc01fc --- /dev/null +++ b/src/demo.cpp @@ -0,0 +1,5 @@ +#include "demo.h" + +int test() { + return 42; +} diff --git a/src/demo.h b/src/demo.h new file mode 100644 index 0000000..9b77cb9 --- /dev/null +++ b/src/demo.h @@ -0,0 +1,8 @@ +#ifndef SHARED_MEMORY_DEMO_H +#define SHARED_MEMORY_DEMO_H + + +int test(); + + +#endif //SHARED_MEMORY_DEMO_H diff --git a/test/test_demo.cpp b/test/test_demo.cpp new file mode 100644 index 0000000..7cb240e --- /dev/null +++ b/test/test_demo.cpp @@ -0,0 +1,6 @@ +#include +#include "../src/demo.h" + +TEST_CASE("Demo test") { + REQUIRE(test() == 42); +} \ No newline at end of file diff --git a/test/test_main.cpp b/test/test_main.cpp new file mode 100644 index 0000000..6372e38 --- /dev/null +++ b/test/test_main.cpp @@ -0,0 +1,6 @@ +#define CATCH_CONFIG_MAIN + +#include + +//Dont touch this file. +// add your own tests in this directory according to https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md