Skip to content

Commit 534ee57

Browse files
committed
Remove test.pristine, generating it dynamically from reference instead.
1 parent 000b1bb commit 534ee57

File tree

2 files changed

+61
-70
lines changed

2 files changed

+61
-70
lines changed

tests/test.nix

Lines changed: 61 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
{
22
pkgs,
33
reference ? false,
4-
...
5-
}:
4+
}@args:
5+
66
let
7-
generate-testscript = pkgs.writeText "generate-testscript" ''
8-
machine.wait_for_unit("default.target")
9-
machine.succeed("${before-script}")
10-
machine.succeed("${tmpfiles} --create ${test-config}")
11-
machine.succeed("bash ${print-script} > output")
12-
machine.copy_from_vm(source="output")
13-
'';
147
before-script = pkgs.writeShellScript "before-script.sh" ''
158
mkdir /root/existing-dir
169
'';
@@ -28,40 +21,64 @@ let
2821
ls -FloRA --time-style=+"" /root
2922
find /root -print0 | sort --zero-terminated | xargs --null lsattr -d || true
3023
'';
31-
pristine-file = pkgs.writeText "test.pristine" (builtins.readFile ./test.pristine);
32-
tmpfiles = if reference then "systemd-tmpfiles" else "mini-tmpfiles";
33-
test = pkgs.testers.runNixOSTest {
34-
name = if reference then "reference-test" else "mini-test";
35-
nodes.machine =
36-
{
37-
config,
38-
pkgs,
39-
lib,
40-
...
41-
}:
42-
{
43-
boot.loader.systemd-boot.enable = true;
44-
environment.systemPackages = lib.optionals (!reference) [
45-
pkgs.mini-tmpfiles
46-
];
47-
# Once mini-tmpfiles is supports everything used during booting we can replace systemd-tmpfiles with it
48-
# systemd.services.systemd-tmpfiles-setup.serviceConfig = {
49-
# ExecStart = [
50-
# ""
51-
# "${pkgs.mini-tmpfiles}/bin/mini-tmpfiles --create --remove --boot --exclude-prefix=/dev --exclude-prefix=/sysroot"
52-
# ];
53-
# };
24+
testFile = (
25+
{
26+
generating ? false,
27+
}:
28+
let
29+
generate-output = ''
30+
machine.wait_for_unit("default.target")
31+
machine.succeed("${before-script}")
32+
machine.succeed("${tmpfiles} --create ${test-config}")
33+
machine.succeed("bash ${print-script} > output")
34+
'';
35+
tmpfiles = if reference || generating then "systemd-tmpfiles" else "mini-tmpfiles";
36+
generate-testscript = pkgs.writeText "generate-testscript" (
37+
generate-output
38+
+ ''
39+
machine.copy_from_vm(source="output")
40+
''
41+
);
42+
generated = (testFile { generating = true; }).generate;
43+
test = pkgs.testers.runNixOSTest {
44+
name = if reference then "reference-test" else "mini-test";
45+
nodes.machine =
46+
{
47+
config,
48+
pkgs,
49+
lib,
50+
...
51+
}:
52+
{
53+
boot.loader.systemd-boot.enable = true;
54+
environment.systemPackages = lib.optionals (!(reference || generating)) [
55+
pkgs.mini-tmpfiles
56+
];
57+
# Once mini-tmpfiles is supports everything used during booting we can replace systemd-tmpfiles with it
58+
# systemd.services.systemd-tmpfiles-setup.serviceConfig = {
59+
# ExecStart = [
60+
# ""
61+
# "${pkgs.mini-tmpfiles}/bin/mini-tmpfiles --create --remove --boot --exclude-prefix=/dev --exclude-prefix=/sysroot"
62+
# ];
63+
# };
64+
};
65+
testScript = pkgs.lib.optionalString (!generating) (
66+
generate-output
67+
+ ''
68+
machine.succeed("diff ${generated} output")
69+
''
70+
);
71+
passthru.generate =
72+
if generating then
73+
pkgs.runCommand "generated" { } ''
74+
${test.driver}/bin/nixos-test-driver ${generate-testscript}
75+
mv output $out
76+
''
77+
else
78+
generated;
5479
};
55-
testScript = ''
56-
machine.wait_for_unit("default.target")
57-
machine.succeed("${before-script}")
58-
machine.succeed("${tmpfiles} --create ${test-config}")
59-
machine.succeed("bash ${print-script} | diff ${pristine-file} -")
60-
'';
61-
passthru.generate = pkgs.runCommand "generated" { } ''
62-
${test.driver}/bin/nixos-test-driver ${generate-testscript}
63-
mv output $out
64-
'';
65-
};
80+
in
81+
test
82+
);
6683
in
67-
test
84+
testFile { }

tests/test.pristine

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)