at master 57 lines 1.5 kB view raw
1{ 2 pkgs, 3 lib, 4 stdenv, 5 ... 6}: 7 8let 9 failures = lib.runTests { 10 # Merging two non-list definitions must still result in an error 11 # about a conflicting definition. 12 test-unitOption-merging-non-lists-conflict = 13 let 14 nixos = pkgs.nixos { 15 system.stateVersion = lib.trivial.release; 16 systemd.services.systemd-test-nixos = { 17 serviceConfig = lib.mkMerge [ 18 { StateDirectory = "foo"; } 19 { StateDirectory = "bar"; } 20 ]; 21 }; 22 }; 23 in 24 { 25 expr = 26 (builtins.tryEval (nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory)) 27 .success; 28 expected = false; 29 }; 30 31 # Merging must lift non-list definitions to a list 32 # if at least one of them is a list. 33 test-unitOption-merging-list-non-list-append = 34 let 35 nixos = pkgs.nixos { 36 system.stateVersion = lib.trivial.release; 37 systemd.services.systemd-test-nixos = { 38 serviceConfig = lib.mkMerge [ 39 { StateDirectory = "foo"; } 40 { StateDirectory = [ "bar" ]; } 41 ]; 42 }; 43 }; 44 in 45 { 46 expr = nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory; 47 expected = [ 48 "foo" 49 "bar" 50 ]; 51 }; 52 }; 53in 54 55lib.optional (failures != [ ]) ( 56 throw "The following systemd unit tests failed: ${lib.generators.toPretty { } failures}" 57)