From 047e9ee7328f5922f0e7d3bfaaa513461d192691 Mon Sep 17 00:00:00 2001 From: Hannes Kuchelmeister Date: Fri, 1 Jan 2021 21:38:20 +0100 Subject: [PATCH] created build pipeline to allow unit testing --- .gitignore | 6 ++++- Assignment_2/CMakeLists.txt | 15 ++++++++++++ Assignment_2/clean.sh | 1 + Assignment_2/compile_and_run.sh | 1 - Assignment_2/lib/CMakeLists.txt | 1 + Assignment_2/{ => lib}/FineList.cpp | 0 Assignment_2/{ => lib}/LazyList.cpp | 0 Assignment_2/{ => lib}/MultiSet.cpp | 0 Assignment_2/{ => lib}/Node.cpp | 0 Assignment_2/{ => lib}/OptimisticList.cpp | 0 Assignment_2/{ => lib}/Set.cpp | 0 Assignment_2/main.cpp | 8 +++---- Assignment_2/run.sh | 4 ++++ Assignment_2/test.sh | 4 ++++ Assignment_2/test/CMakeLists.txt | 29 +++++++++++++++++++++++ Assignment_2/test/FineSet_test.cpp | 9 +++++++ Assignment_2/test/LazySet_test.cpp | 9 +++++++ Assignment_2/test/MultiSet_test.cpp | 9 +++++++ Assignment_2/test/OptimisticSet_test.cpp | 9 +++++++ 19 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 Assignment_2/CMakeLists.txt create mode 100755 Assignment_2/clean.sh delete mode 100755 Assignment_2/compile_and_run.sh create mode 100644 Assignment_2/lib/CMakeLists.txt rename Assignment_2/{ => lib}/FineList.cpp (100%) rename Assignment_2/{ => lib}/LazyList.cpp (100%) rename Assignment_2/{ => lib}/MultiSet.cpp (100%) rename Assignment_2/{ => lib}/Node.cpp (100%) rename Assignment_2/{ => lib}/OptimisticList.cpp (100%) rename Assignment_2/{ => lib}/Set.cpp (100%) create mode 100755 Assignment_2/run.sh create mode 100755 Assignment_2/test.sh create mode 100644 Assignment_2/test/CMakeLists.txt create mode 100644 Assignment_2/test/FineSet_test.cpp create mode 100644 Assignment_2/test/LazySet_test.cpp create mode 100644 Assignment_2/test/MultiSet_test.cpp create mode 100644 Assignment_2/test/OptimisticSet_test.cpp diff --git a/.gitignore b/.gitignore index 1f96a8b..8b42398 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,8 @@ !*/*.cpp !*/*.h !.gitignore -!*/*.sh \ No newline at end of file +!*/*.sh +!*/*.txt + +!test +!lib \ No newline at end of file diff --git a/Assignment_2/CMakeLists.txt b/Assignment_2/CMakeLists.txt new file mode 100644 index 0000000..a636796 --- /dev/null +++ b/Assignment_2/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.16) +project(assignment_2) + +find_package( Threads ) + +set(CMAKE_CXX_STANDARD 20) +include_directories(${PROJECT_SOURCE_DIR}) # Allows absolute paths: #include +enable_testing() + +add_subdirectory(lib) +add_subdirectory(test) # enable_testing() used there + +add_executable(assignment_2 main.cpp) +target_link_libraries(assignment_2 sets) +target_link_libraries(assignment_2 ${CMAKE_THREAD_LIBS_INIT} ) \ No newline at end of file diff --git a/Assignment_2/clean.sh b/Assignment_2/clean.sh new file mode 100755 index 0000000..8c6e74b --- /dev/null +++ b/Assignment_2/clean.sh @@ -0,0 +1 @@ +rm -R build diff --git a/Assignment_2/compile_and_run.sh b/Assignment_2/compile_and_run.sh deleted file mode 100755 index 57fe503..0000000 --- a/Assignment_2/compile_and_run.sh +++ /dev/null @@ -1 +0,0 @@ -g++ -g main.cpp -lpthread && ./a.out \ No newline at end of file diff --git a/Assignment_2/lib/CMakeLists.txt b/Assignment_2/lib/CMakeLists.txt new file mode 100644 index 0000000..ae08c07 --- /dev/null +++ b/Assignment_2/lib/CMakeLists.txt @@ -0,0 +1 @@ +add_library(sets STATIC FineList.cpp LazyList.cpp OptimisticList.cpp MultiSet.cpp Node.cpp Set.cpp) diff --git a/Assignment_2/FineList.cpp b/Assignment_2/lib/FineList.cpp similarity index 100% rename from Assignment_2/FineList.cpp rename to Assignment_2/lib/FineList.cpp diff --git a/Assignment_2/LazyList.cpp b/Assignment_2/lib/LazyList.cpp similarity index 100% rename from Assignment_2/LazyList.cpp rename to Assignment_2/lib/LazyList.cpp diff --git a/Assignment_2/MultiSet.cpp b/Assignment_2/lib/MultiSet.cpp similarity index 100% rename from Assignment_2/MultiSet.cpp rename to Assignment_2/lib/MultiSet.cpp diff --git a/Assignment_2/Node.cpp b/Assignment_2/lib/Node.cpp similarity index 100% rename from Assignment_2/Node.cpp rename to Assignment_2/lib/Node.cpp diff --git a/Assignment_2/OptimisticList.cpp b/Assignment_2/lib/OptimisticList.cpp similarity index 100% rename from Assignment_2/OptimisticList.cpp rename to Assignment_2/lib/OptimisticList.cpp diff --git a/Assignment_2/Set.cpp b/Assignment_2/lib/Set.cpp similarity index 100% rename from Assignment_2/Set.cpp rename to Assignment_2/lib/Set.cpp diff --git a/Assignment_2/main.cpp b/Assignment_2/main.cpp index 25e3297..ef1f028 100644 --- a/Assignment_2/main.cpp +++ b/Assignment_2/main.cpp @@ -2,10 +2,10 @@ #include #include -#include "Set.cpp" -#include "LazyList.cpp" -#include "FineList.cpp" -#include "OptimisticList.cpp" +#include +#include +#include +#include using namespace std::chrono; diff --git a/Assignment_2/run.sh b/Assignment_2/run.sh new file mode 100755 index 0000000..a3bae38 --- /dev/null +++ b/Assignment_2/run.sh @@ -0,0 +1,4 @@ +mkdir -p build && cd build +cmake .. +cmake --build . +./assignment_2 diff --git a/Assignment_2/test.sh b/Assignment_2/test.sh new file mode 100755 index 0000000..ad9f576 --- /dev/null +++ b/Assignment_2/test.sh @@ -0,0 +1,4 @@ +mkdir -p build && cd build +cmake .. +cmake --build . +ctest . diff --git a/Assignment_2/test/CMakeLists.txt b/Assignment_2/test/CMakeLists.txt new file mode 100644 index 0000000..bdae1d4 --- /dev/null +++ b/Assignment_2/test/CMakeLists.txt @@ -0,0 +1,29 @@ +include(FetchContent) +FetchContent_Declare( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG release-1.10.0 +) +FetchContent_MakeAvailable(googletest) + +add_executable(fine_unit_test FineSet_test.cpp) +target_link_libraries(fine_unit_test PUBLIC gtest gtest_main) +target_link_libraries(fine_unit_test PUBLIC sets) + +add_test(FineSetTest fine_unit_test) + + +add_executable(lazy_unit_test LazySet_test.cpp) +target_link_libraries(lazy_unit_test PUBLIC gtest gtest_main) +target_link_libraries(lazy_unit_test PUBLIC sets) +add_test(LazySetTest lazy_unit_test) + +add_executable(optimistic_unit_test OptimisticSet_test.cpp) +target_link_libraries(optimistic_unit_test PUBLIC gtest gtest_main) +target_link_libraries(optimistic_unit_test PUBLIC sets) +add_test(OptimisticSetTest optimistic_unit_test) + +add_executable(multi_unit_test MultiSet_test.cpp) +target_link_libraries(multi_unit_test PUBLIC gtest gtest_main) +target_link_libraries(multi_unit_test PUBLIC sets) +add_test(MultiSetTest multi_unit_test) diff --git a/Assignment_2/test/FineSet_test.cpp b/Assignment_2/test/FineSet_test.cpp new file mode 100644 index 0000000..03e7e6c --- /dev/null +++ b/Assignment_2/test/FineSet_test.cpp @@ -0,0 +1,9 @@ +#include + +#include + + +TEST(FineSetTest, Whatever2) { + FineSet * fl = new FineSet(); + //ASSERT_TRUE(fl->add(1)); +} diff --git a/Assignment_2/test/LazySet_test.cpp b/Assignment_2/test/LazySet_test.cpp new file mode 100644 index 0000000..892ee2a --- /dev/null +++ b/Assignment_2/test/LazySet_test.cpp @@ -0,0 +1,9 @@ +#include + +#include + + +TEST(LazySetTest, Whatever3) { + LazySet * fl = new LazySet(); + //ASSERT_TRUE(fl->add(1)); +} diff --git a/Assignment_2/test/MultiSet_test.cpp b/Assignment_2/test/MultiSet_test.cpp new file mode 100644 index 0000000..8ed43b1 --- /dev/null +++ b/Assignment_2/test/MultiSet_test.cpp @@ -0,0 +1,9 @@ +#include + +#include + + +TEST(MultiSetTest, Whatever2) { + MultiSet * fl = new MultiSet(); + //ASSERT_TRUE(fl->add(1)); +} diff --git a/Assignment_2/test/OptimisticSet_test.cpp b/Assignment_2/test/OptimisticSet_test.cpp new file mode 100644 index 0000000..0865882 --- /dev/null +++ b/Assignment_2/test/OptimisticSet_test.cpp @@ -0,0 +1,9 @@ +#include + +#include + + +TEST(OptimisticSetTest, Whatever2) { + OptimisticSet * fl = new OptimisticSet(); + //ASSERT_TRUE(fl->add(1)); +}