From c8c340b4683d6025abb73430ef7ae0e211892c54 Mon Sep 17 00:00:00 2001 From: Markus Scherer Date: Tue, 19 Dec 2023 16:06:42 +0100 Subject: souffle: add some package tests --- pkgs/development/compilers/souffle/default.nix | 4 ++- pkgs/development/compilers/souffle/tests.nix | 36 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/souffle/tests.nix (limited to 'pkgs/development') diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix index cacd63450c4b7..b426e1e9f3fdb 100644 --- a/pkgs/development/compilers/souffle/default.nix +++ b/pkgs/development/compilers/souffle/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub , bash-completion, perl, ncurses, zlib, sqlite, libffi , mcpp, cmake, bison, flex, doxygen, graphviz -, makeWrapper, python3 +, makeWrapper, python3, callPackage }: @@ -51,6 +51,8 @@ stdenv.mkDerivation rec { outputs = [ "out" ]; + passthru.tests = callPackage ./tests.nix { }; + meta = with lib; { description = "Translator of declarative Datalog programs into the C++ language"; homepage = "https://souffle-lang.github.io/"; diff --git a/pkgs/development/compilers/souffle/tests.nix b/pkgs/development/compilers/souffle/tests.nix new file mode 100644 index 0000000000000..82b4fa489dae4 --- /dev/null +++ b/pkgs/development/compilers/souffle/tests.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, souffle, runCommand }: +let + simpleTest = { name, commands }: + stdenv.mkDerivation { + inherit name; + meta.timeout = 60; + buildCommand = '' + echo -e '.decl A(X: number)\n.output A\nA(1).' > A.dl + ${commands} + [ "$(cat A.csv)" = "1" ] + touch $out + ''; + }; +in { + interpret = simpleTest { + name = "souffle-test-interpret"; + commands = "${souffle}/bin/souffle A.dl"; + }; + + compile-in-one-step = simpleTest { + name = "souffle-test-compile-in-one-step"; + commands = '' + ${souffle}/bin/souffle -o A A.dl + ./A + ''; + }; + + compile-in-two-steps = simpleTest { + name = "souffle-test-compile-in-two-steps"; + commands = '' + ${souffle}/bin/souffle -g A.cpp A.dl + ${souffle}/bin/souffle-compile.py A.cpp -o A + ./A + ''; + }; +} -- cgit 1.4.1