splice.nix: improve performance with early cut-off
[NixPkgs.git] / pkgs / test / systemd / nixos / default.nix
blob37b42ea7ae27360039ded973d6bd7c7fddb2e1ed
1 { pkgs, lib, stdenv, ... }:
3 let
4   failures = lib.runTests {
5     # Merging two non-list definitions must still result in an error
6     # about a conflicting definition.
7     test-unitOption-merging-non-lists-conflict =
8       let nixos = pkgs.nixos {
9           system.stateVersion = lib.trivial.release;
10           systemd.services.systemd-test-nixos = {
11             serviceConfig = lib.mkMerge [
12               { StateDirectory = "foo"; }
13               { StateDirectory = "bar"; }
14             ];
15           };
16         };
17       in {
18       expr = (builtins.tryEval (nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory)).success;
19       expected = false;
20     };
22     # Merging must lift non-list definitions to a list
23     # if at least one of them is a list.
24     test-unitOption-merging-list-non-list-append =
25       let nixos = pkgs.nixos {
26           system.stateVersion = lib.trivial.release;
27           systemd.services.systemd-test-nixos = {
28             serviceConfig = lib.mkMerge [
29               { StateDirectory = "foo"; }
30               { StateDirectory = ["bar"]; }
31             ];
32           };
33         };
34       in {
35       expr = nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory;
36       expected = [ "foo" "bar" ];
37     };
38   };
41 lib.optional (failures != [])
42   (throw "The following systemd unit tests failed: ${lib.generators.toPretty {} failures}")