Attempt to package CL unit testing with Nix

My first foray trying to package Common Lisp with Nix. I'm using @tazjin's
buildLisp and other libraries, all of which I'm importing as `tpkgs`, and all of
which have been a tremendous boon to my productivity.
This commit is contained in:
William Carroll 2020-01-23 13:45:57 +00:00
parent 55860debe5
commit d262d30543
7 changed files with 128 additions and 0 deletions

17
common-lisp/anaphora.nix Normal file
View file

@ -0,0 +1,17 @@
{ tpkgs ? (import (builtins.fetchGit "https://git.tazj.in/") {}), ... }:
let
src = builtins.fetchGit {
url = "https://github.com/tokenrove/anaphora.git";
rev = "aeace4c68cf55098a67112750b28f8f2dc6d0e30";
};
in tpkgs.nix.buildLisp.library {
name = "anaphora";
deps = [];
srcs = [
"${src}/packages.lisp"
"${src}/early.lisp"
"${src}/symbolic.lisp"
"${src}/anaphora.lisp"
];
}

20
common-lisp/cl-colors.nix Normal file
View file

@ -0,0 +1,20 @@
{ tpkgs ? (import (builtins.fetchGit "https://git.tazj.in/") {}), ... }:
let
src = builtins.fetchGit {
url = "https://github.com/tpapp/cl-colors.git";
rev = "827410584553f5c717eec6182343b7605f707f75";
};
in tpkgs.nix.buildLisp.library {
name = "cl-colors";
deps = with tpkgs.third_party.lisp; [
alexandria
(import ./let-plus.nix {})
];
srcs = [
"${src}/package.lisp"
"${src}/colors.lisp"
"${src}/colornames.lisp"
"${src}/hexcolors.lisp"
];
}

13
common-lisp/default.nix Normal file
View file

@ -0,0 +1,13 @@
{ tpkgs ? (import (builtins.fetchGit "https://git.tazj.in/") {}), ... }:
tpkgs.nix.buildLisp.program {
name = "unit-testing";
deps = with tpkgs.third_party.lisp; [
(import ./prove.nix {})
];
srcs = [
./unit-testing.lisp
];
}

19
common-lisp/let-plus.nix Normal file
View file

@ -0,0 +1,19 @@
{ tpkgs ? (import (builtins.fetchGit "https://git.tazj.in/") {}), ... }:
let
src = builtins.fetchGit {
url = "https://github.com/tpapp/let-plus.git";
rev = "7cf18b29ed0fe9c667a9a6a101b08ab9661a59e9";
};
in tpkgs.nix.buildLisp.library {
name = "let-plus";
deps = with tpkgs.third_party.lisp; [
alexandria
(import ./anaphora.nix {})
];
srcs = [
"${src}/package.lisp"
"${src}/let-plus.lisp"
"${src}/extensions.lisp"
];
}

View file

@ -0,0 +1,15 @@
{ tpkgs ? (import (builtins.fetchGit "https://git.tazj.in/") {}), ... }:
let
src = builtins.fetchGit {
url = "https://github.com/fukamachi/prove.git";
rev = "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de";
};
in tpkgs.nix.buildLisp.library {
name = "prove-asdf";
deps = [];
srcs = [
"${src}/src/output.lisp"
"${src}/src/asdf.lisp"
];
}

31
common-lisp/prove.nix Normal file
View file

@ -0,0 +1,31 @@
{ tpkgs ? (import (builtins.fetchGit "https://git.tazj.in/") {}), ... }:
let
src = builtins.fetchGit {
url = "https://github.com/fukamachi/prove.git";
rev = "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de";
};
in tpkgs.nix.buildLisp.library {
name = "prove";
deps = with tpkgs.third_party.lisp; [
cl-ppcre
cl-ansi-text
(import ./cl-colors.nix {})
alexandria
uiop
];
srcs = [
"${src}/src/asdf.lisp"
"${src}/src/suite.lisp"
"${src}/src/color.lisp"
"${src}/src/output.lisp"
"${src}/src/prove.lisp"
"${src}/src/report.lisp"
"${src}/src/reporter.lisp"
"${src}/src/test.lisp"
"${src}/src/reporter/dot.lisp"
"${src}/src/reporter/fiveam.lisp"
"${src}/src/reporter/list.lisp"
"${src}/src/reporter/tap.lisp"
];
}

View file

@ -0,0 +1,13 @@
(in-package #:cl-user)
(defpackage #:my-test
(:documentation "Unit testing in Common Lisp.")
(:use #:cl))
(in-package #:my-test)
(plan 3)
(ok (not (find 4 '(1 2 3))))
(is 4 4)
(isnt 1 #\1)
(finalize)