mirror of
https://gitlab.com/TECHNOFAB/nixtest.git
synced 2025-12-11 17:50:11 +01:00
99 lines
3.6 KiB
Nix
99 lines
3.6 KiB
Nix
{
|
|
pkgs,
|
|
ntlib,
|
|
...
|
|
}: {
|
|
suites."Lib Tests" = {
|
|
pos = __curPos;
|
|
tests = [
|
|
{
|
|
name = "autodiscovery";
|
|
type = "script";
|
|
script = let
|
|
actual = ntlib.helpers.toPrettyFile (ntlib.autodiscover {
|
|
dir = ./fixtures;
|
|
});
|
|
# tests if strings with store path context work
|
|
actualDirString = ntlib.helpers.toPrettyFile (ntlib.autodiscover {
|
|
dir = "${./fixtures}";
|
|
});
|
|
in
|
|
# sh
|
|
''
|
|
${ntlib.helpers.path [pkgs.gnugrep]}
|
|
${ntlib.helpers.scriptHelpers}
|
|
assert_file_contains ${actual} "sample_test.nix" "should find sample_test.nix"
|
|
assert_file_contains ${actual} "base = \"/nix/store/.*-source/tests/fixtures/\"" "should set base to fixtures dir"
|
|
|
|
assert_file_contains ${actualDirString} "sample_test.nix" "should find sample_test.nix"
|
|
assert_file_contains ${actualDirString} "base = \"/nix/store/.*-fixtures/\"" "should set base to fixtures dir"
|
|
'';
|
|
}
|
|
{
|
|
name = "binary";
|
|
type = "script";
|
|
script = let
|
|
binary =
|
|
(ntlib.mkBinary {
|
|
nixtests = "stub";
|
|
extraParams = "--impure";
|
|
})
|
|
+ "/bin/nixtests:run";
|
|
in
|
|
# sh
|
|
''
|
|
${ntlib.helpers.path [pkgs.gnugrep]}
|
|
${ntlib.helpers.scriptHelpers}
|
|
assert_file_contains ${binary} "nixtest" "should contain nixtest"
|
|
assert_file_contains ${binary} "--impure" "should contain --impure arg"
|
|
assert_file_contains ${binary} "--tests=stub" "should contain --tests arg"
|
|
|
|
run "${binary} --help"
|
|
assert_eq $exit_code 0 "should exit 0"
|
|
assert_contains "$output" "Usage of nixtest" "should show help"
|
|
|
|
run "${binary}"
|
|
assert_eq $exit_code 1 "should exit 1"
|
|
assert_contains "$output" "Tests file does not exist"
|
|
'';
|
|
}
|
|
{
|
|
name = "full run with fixtures";
|
|
type = "script";
|
|
script = let
|
|
binary =
|
|
(ntlib.mkNixtest {
|
|
modules = ntlib.autodiscover {dir = ./fixtures;};
|
|
args = {inherit pkgs;};
|
|
})
|
|
+ "/bin/nixtests:run";
|
|
in
|
|
# sh
|
|
''
|
|
${ntlib.helpers.path [pkgs.gnugrep pkgs.mktemp pkgs.coreutils]}
|
|
${ntlib.helpers.scriptHelpers}
|
|
export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
|
|
export NIX_SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
|
|
cp -r ${./../snapshots} snapshots
|
|
|
|
# start without nix & env binaries to expect errors
|
|
run "${binary} --junit=junit.xml"
|
|
assert "$exit_code -eq 2" "should exit 2"
|
|
assert "-f junit.xml" "should create junit.xml"
|
|
assert_contains "$output" "executable file not found" "nix should not be found in pure mode"
|
|
|
|
# now add required deps
|
|
${ntlib.helpers.pathAdd [pkgs.nix pkgs.coreutils]}
|
|
run "${binary} --junit=junit2.xml"
|
|
assert "$exit_code -eq 2" "should exit 2"
|
|
assert "-f junit2.xml" "should create junit2.xml"
|
|
assert_not_contains "$output" "executable file not found" "nix should now exist"
|
|
assert_contains "$output" "suite-one" "should contain suite-one"
|
|
assert_contains "$output" "8/11 (1 SKIPPED)" "should be 8/11 total"
|
|
assert_contains "$output" "ERROR" "should contain an error"
|
|
assert_contains "$output" "SKIP" "should contain a skip"
|
|
'';
|
|
}
|
|
];
|
|
};
|
|
}
|