forked from mirrors/nixpkgs
nixos/osquery: add test
Some time ago I fixed the broken package `osquery` (see #39336). I had to test the package manually by starting the daemon locally, however this doesn't ensure that the module is still functional. In order to cover the package *and* the integration with the NixOS module I thought that adding a testcase might be the best idea. The current testcase does the following things: * Starts an `osqueryd` service in a test machine with customized logger path and PID file * Ensures that the `osqueryd.service` unit is running * Checks if the customized flags (`pidfile`, `logger_path`) are applied to `osquery`. * Performs a simple test query against the `etc_hosts` database to check if the basic funcitonality of `osquery` (storing system information into a database) works fine.
This commit is contained in:
parent
69d4bdc557
commit
e12cc85b07
|
@ -307,6 +307,7 @@ in rec {
|
||||||
tests.influxdb = callTest tests/influxdb.nix {};
|
tests.influxdb = callTest tests/influxdb.nix {};
|
||||||
tests.ipv6 = callTest tests/ipv6.nix {};
|
tests.ipv6 = callTest tests/ipv6.nix {};
|
||||||
tests.jenkins = callTest tests/jenkins.nix {};
|
tests.jenkins = callTest tests/jenkins.nix {};
|
||||||
|
tests.osquery = callTest tests/osquery.nix {};
|
||||||
tests.plasma5 = callTest tests/plasma5.nix {};
|
tests.plasma5 = callTest tests/plasma5.nix {};
|
||||||
tests.plotinus = callTest tests/plotinus.nix {};
|
tests.plotinus = callTest tests/plotinus.nix {};
|
||||||
tests.keymap = callSubTests tests/keymap.nix {};
|
tests.keymap = callSubTests tests/keymap.nix {};
|
||||||
|
|
28
nixos/tests/osquery.nix
Normal file
28
nixos/tests/osquery.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
import ./make-test.nix ({ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "osquery";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ ma27 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine = {
|
||||||
|
services.osquery.enable = true;
|
||||||
|
services.osquery.loggerPath = "/var/log/osquery/logs";
|
||||||
|
services.osquery.pidfile = "/var/run/osqueryd.pid";
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
$machine->start;
|
||||||
|
$machine->waitForUnit("osqueryd.service");
|
||||||
|
|
||||||
|
$machine->succeed("echo 'SELECT address FROM etc_hosts LIMIT 1;' | osqueryi | grep '127.0.0.1'");
|
||||||
|
$machine->succeed(
|
||||||
|
"echo 'SELECT value FROM osquery_flags WHERE name = \"logger_path\";' | osqueryi | grep /var/log/osquery/logs"
|
||||||
|
);
|
||||||
|
|
||||||
|
$machine->succeed("echo 'SELECT value FROM osquery_flags WHERE name = \"pidfile\";' | osqueryi | grep /var/run/osqueryd.pid");
|
||||||
|
'';
|
||||||
|
})
|
Loading…
Reference in a new issue