Fix the nixproc-generate-config tool, create a basic testcase for it
This commit is contained in:
parent
77a280e3ba
commit
5b114573df
|
@ -12,7 +12,7 @@ let
|
|||
createManagedProcessFromConfig = configFile:
|
||||
let
|
||||
createManagedProcess = import ./create-managed-process-universal.nix {
|
||||
inherit pkgs runtimeDir tmpDir forceDisableUserChange processManager;
|
||||
inherit pkgs stateDir runtimeDir tmpDir forceDisableUserChange processManager;
|
||||
};
|
||||
|
||||
properties = builtins.fromJSON (builtins.readFile configFile);
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
{nixpkgs ? <nixpkgs>}:
|
||||
|
||||
with import "${nixpkgs}/nixos/lib/testing-python.nix" { system = builtins.currentSystem; };
|
||||
|
||||
let
|
||||
webappUnprivilegedAutoModeConfig = (import ../examples/webapps-agnostic/processes.nix {
|
||||
forceDisableUserChange = true;
|
||||
processManager = null;
|
||||
webappMode = null;
|
||||
}).webapp.pkg;
|
||||
|
||||
webappUnprivilegedAutoModeSysvinit = (import ../examples/webapps-agnostic/processes.nix {
|
||||
forceDisableUserChange = true;
|
||||
processManager = "sysvinit";
|
||||
webappMode = null;
|
||||
}).webapp.pkg;
|
||||
|
||||
tools = import ../tools {};
|
||||
|
||||
nix-processmgmt = ./..;
|
||||
|
||||
env = "NIX_PATH=nixpkgs=${nixpkgs}";
|
||||
in
|
||||
makeTest {
|
||||
machine =
|
||||
{pkgs, ...}:
|
||||
|
||||
{
|
||||
virtualisation.pathsInNixDB = [ pkgs.stdenv ] ++ pkgs.coreutils.all ++ [
|
||||
webappUnprivilegedAutoModeConfig
|
||||
webappUnprivilegedAutoModeSysvinit
|
||||
];
|
||||
|
||||
virtualisation.writableStore = true;
|
||||
|
||||
# We can't download any substitutes in a test environment. To make tests
|
||||
# faster, we disable substitutes so that Nix does not waste any time by
|
||||
# attempting to download them.
|
||||
nix.extraOptions = ''
|
||||
substitute = false
|
||||
'';
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.stdenv
|
||||
pkgs.dysnomia
|
||||
tools.build
|
||||
tools.generate-config
|
||||
tools.sysvinit
|
||||
];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
# Make sure the unprivileged user can deploy
|
||||
machine.succeed("mkdir -p var/run var/tmp")
|
||||
|
||||
result = machine.succeed(
|
||||
"cat ${webappUnprivilegedAutoModeConfig}/webapp.json >&2"
|
||||
)
|
||||
|
||||
result = machine.succeed(
|
||||
"${env} nixproc-generate-config --process-manager sysvinit --force-disable-user-change ${webappUnprivilegedAutoModeConfig}/webapp.json"
|
||||
)
|
||||
|
||||
machine.succeed("{}/etc/rc.d/init.d/webapp start".format(result[:-1]))
|
||||
machine.succeed("pgrep -f '/bin/webapp -D$'")
|
||||
machine.succeed("curl --fail http://localhost:5000 | grep 'Simple test webapp'")
|
||||
'';
|
||||
}
|
|
@ -70,7 +70,7 @@ do
|
|||
tmpDirArg="--tmp-dir $2"
|
||||
;;
|
||||
--force-disable-user-change)
|
||||
forceDisableUserChangeArg="--force-disable-user-change"
|
||||
forceDisableUserChangeArg="--arg forceDisableUserChange true"
|
||||
;;
|
||||
--no-out-link)
|
||||
noOutLinkArg="--no-out-link"
|
||||
|
|
Loading…
Reference in New Issue