summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudius Holeksa <mail@keldu.de>2023-05-10 11:42:47 +0200
committerClaudius Holeksa <mail@keldu.de>2023-05-10 11:42:47 +0200
commite8778aba27e0737b4212d4b5fca9af531b975d40 (patch)
tree0f1cfc1ccbfa8bb2b72582071803453b6d5c222d
parentffc0a775ce95d08ad6fa3f45cf2d100901466c1b (diff)
downloadmini-test-e8778aba27e0737b4212d4b5fca9af531b975d40.tar.gz
Fixed an issue with incomplete compilation flags. Confirmed functionality by building an example
-rw-r--r--Makefile6
-rw-r--r--example/.nix/derivation.nix25
-rw-r--r--example/Makefile16
-rw-r--r--example/default.nix8
-rw-r--r--example/example.cpp41
5 files changed, 93 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 8df54cc..b34b95a 100644
--- a/Makefile
+++ b/Makefile
@@ -6,8 +6,8 @@ all: build/libkeltest.a
build/libkeltest.a:
mkdir -p ./build
- c++ -std=c++17 -DKELTEST_COMPILE_TEST_BINARY src/keltest/test.cpp -o build/test.o
- ar q build/libkeltest.a build/test.o
+ c++ -std=c++17 -DKELTEST_COMPILE_TEST_BINARY src/keltest/test.cpp -c -o build/test.o
+ ar rcs build/libkeltest.a build/test.o
clean:
rm -rf ./build
@@ -16,4 +16,4 @@ install: build/libkeltest.a
mkdir -p ${PREFIX}/lib
mkdir -p ${PREFIX}/include/keltest
cp build/libkeltest.a ${PREFIX}/lib/libkeltest.a
- cp src/keltest/test.h ${PREFIX}/include/keltest/test.h
+ cp src/keltest/*.h ${PREFIX}/include/keltest/
diff --git a/example/.nix/derivation.nix b/example/.nix/derivation.nix
new file mode 100644
index 0000000..763dc46
--- /dev/null
+++ b/example/.nix/derivation.nix
@@ -0,0 +1,25 @@
+{ lib
+, stdenvNoCC
+, clang
+, gnumake
+, kel-test
+}:
+
+stdenvNoCC.mkDerivation {
+ pname = "kel-test-example";
+ version = "0.0.0";
+
+ src = ./..;
+
+ nativeBuildInputs = [
+ clang
+ gnumake
+ kel-test
+ ];
+
+ installPhase = ''
+ PREFIX=$out make install
+ '';
+
+ output = [ "out" ];
+}
diff --git a/example/Makefile b/example/Makefile
new file mode 100644
index 0000000..408b2f3
--- /dev/null
+++ b/example/Makefile
@@ -0,0 +1,16 @@
+.PHONY: all clean
+
+PREFIX ?= /usr/local
+
+all: build/example
+
+build/example:
+ mkdir -p ./build
+ c++ -std=c++17 -lkeltest example.cpp -o build/example
+
+clean:
+ rm -rf ./build
+
+install: build/example
+ mkdir -p ${PREFIX}/bin
+ cp build/example ${PREFIX}/bin/example
diff --git a/example/default.nix b/example/default.nix
new file mode 100644
index 0000000..2c84988
--- /dev/null
+++ b/example/default.nix
@@ -0,0 +1,8 @@
+{ pkgs ? import <nixpkgs> {}
+}:
+
+let
+ kel-test = pkgs.callPackage ./../.nix/derivation.nix {};
+in pkgs.callPackage ./.nix/derivation.nix {
+ inherit kel-test;
+}
diff --git a/example/example.cpp b/example/example.cpp
new file mode 100644
index 0000000..6616c9f
--- /dev/null
+++ b/example/example.cpp
@@ -0,0 +1,41 @@
+/**
+Copyright (C) 2023 Claudius "keldu" Holeksa
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
+#include <keltest/test.h>
+
+#include <string>
+
+std::string greet(const std::string& val){
+ return val;
+}
+
+namespace {
+KEL_TEST("Greeting"){
+ std::string hello = "hello";
+
+ std::string answer = greet(hello);
+
+ KEL_EXPECT(answer == "hello", "Person did not reply with a hello");
+}
+
+KEL_TEST("Weird Greeting"){
+ std::string hello = "How are you?";
+
+ std::string answer = greet(hello);
+
+ KEL_EXPECT(answer == "Fine. How are you?", "Person did not reply with an expected answer");
+}
+}