From de3207828c0aaaf640dcbc7aa7a823f6c406384a Mon Sep 17 00:00:00 2001
From: Meik Selig <ms570458@fh-muenster.de>
Date: Wed, 19 Feb 2020 11:51:58 +0100
Subject: [PATCH] build and run nix

---
 default.nix | 30 +++++++++++++++++++++++++++---
 run.nix     | 22 ++++++++++++++++++++++
 2 files changed, 49 insertions(+), 3 deletions(-)
 create mode 100644 run.nix

diff --git a/default.nix b/default.nix
index a69aa77..5a246a8 100644
--- a/default.nix
+++ b/default.nix
@@ -1,17 +1,41 @@
 with import <nixpkgs> {};
-let build = import ./build.nix;
+let 
+    build = import ./build.nix;
+    run = import ./run.nix;
 in rec
 {
 calc = build {
     derivName = "calc";
     target = "calc";
-    buildDependencies = [coreutils];
     output = "calc";
 };
 test = build {
     derivName = "test";
     target = "unit_test";
-    buildDependencies = [coreutils catch2];
+    buildDependencies = [catch2];
     output = "unit_test";
 };
+fuzzCalc = build {
+    derivName = "fuzz_calc";
+    target = "fuzz_calc";
+    buildDependencies = [afl];
+    output = "fuzz_calc";
+};
+
+runTest = run {
+    derivName = "testResult";
+    target = "unit_test";
+    buildDependencies = [catch2];
+    checkCommand = "make run_test";
+    output = "unit_test";
+};
+
+runFuzz = run {
+    derivName = "fuzzerResult";
+    target = "fuzz_calc";
+    buildDependencies = [afl];
+    checkCommand = "bash fuzz_seconds.sh ${fuzzCalc}/bin/fuzz_calc";
+    output = "out/*";
+};
+
 }
\ No newline at end of file
diff --git a/run.nix b/run.nix
new file mode 100644
index 0000000..a2a6086
--- /dev/null
+++ b/run.nix
@@ -0,0 +1,22 @@
+{derivName, target, buildDependencies?[], checkCommand, output}:
+let pkgs = import <nixpkgs> {};
+in
+pkgs.stdenv.mkDerivation {
+    name = derivName;
+    src = ./.;
+    output = output;
+    buildInputs = buildDependencies;
+    checkCommand = checkCommand;
+    doCheck = true;
+    buildPhase = '''';
+
+    checkPhase = ''
+        ls -la
+        $checkCommand
+    '';
+
+    installPhase = ''
+        mkdir -p $out/
+        cp -r $output $out/
+    '';
+}
\ No newline at end of file
-- 
GitLab