feat(users/picnoir/tvix-daemon) add small VM integration test

Adding a VM integration test setup for tvix-daemon. This test acts as
our first milestone: implementing enough daemon operations to be able
to add a new store path to tvix-store.

The test is expected to fail for now. We don't want to run it on CI
yet.

Change-Id: I2bd8eb9a07c5de2ef91099e10fcac23c087b880b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11199
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Picnoir 2024-03-19 14:35:11 +01:00 committed by picnoir picnoir
parent 29b5ffbda0
commit 498beb54da
2 changed files with 33 additions and 0 deletions

View file

@ -0,0 +1,5 @@
# Integration VM Test
This VM test fails for now. We use it to conveniently test our implementation on a real world Nix setup.
For now, it only adds a new path to the store. It'll likely do more in the future.

View file

@ -0,0 +1,28 @@
{ depot, pkgs, lib, ... }:
let
nixosTestDrv = pkgs.nixosTest {
name = "tvix-daemon-vm-test";
nodes.machine = { config, pkgs, ... }: {
environment.systemPackages = [
(pkgs.writers.writeBashBin "poke-daemon" ''
NIX_REMOTE=unix:///nix/var/nix/daemon-socket/socket nix-instantiate -E '"''${/etc/nscd.conf}"'
'')
];
systemd.services.nix-daemon.serviceConfig.ExecStart = [
""
"${depot.users.picnoir.tvix-daemon.tvix-daemon}/bin/tvix-daemon"
];
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.succeed("poke-daemon")
'';
};
in
nixosTestDrv // {
# The test fails for now. TOREMOVE when we reach the stage where we
# can add stuff to the store.
meta.ci.skip = true;
}