diff options
Diffstat (limited to 'nixos/tests/kubo/kubo.nix')
-rw-r--r-- | nixos/tests/kubo/kubo.nix | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/nixos/tests/kubo/kubo.nix b/nixos/tests/kubo/kubo.nix new file mode 100644 index 00000000000..7965ad27738 --- /dev/null +++ b/nixos/tests/kubo/kubo.nix @@ -0,0 +1,53 @@ +{ lib, ...} : { + name = "kubo"; + meta = with lib.maintainers; { + maintainers = [ mguentner Luflosi ]; + }; + + nodes.machine = { config, ... }: { + services.kubo = { + enable = true; + # Also will add a unix domain socket socket API address, see module. + startWhenNeeded = true; + settings.Addresses.API = "/ip4/127.0.0.1/tcp/2324"; + dataDir = "/mnt/ipfs"; + }; + users.users.alice = { + isNormalUser = true; + extraGroups = [ config.services.kubo.group ]; + }; + }; + + testScript = '' + start_all() + + with subtest("Automatic socket activation"): + ipfs_hash = machine.succeed( + "echo fnord0 | su alice -l -c 'ipfs add --quieter'" + ) + machine.succeed(f"ipfs cat /ipfs/{ipfs_hash.strip()} | grep fnord0") + + machine.stop_job("ipfs") + + with subtest("IPv4 socket activation"): + machine.succeed("ipfs --api /ip4/127.0.0.1/tcp/2324 id") + ipfs_hash = machine.succeed( + "echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add --quieter" + ) + machine.succeed(f"ipfs cat /ipfs/{ipfs_hash.strip()} | grep fnord") + + machine.stop_job("ipfs") + + with subtest("Unix domain socket activation"): + ipfs_hash = machine.succeed( + "echo fnord2 | ipfs --api /unix/run/ipfs.sock add --quieter" + ) + machine.succeed( + f"ipfs --api /unix/run/ipfs.sock cat /ipfs/{ipfs_hash.strip()} | grep fnord2" + ) + + with subtest("Setting dataDir works properly with the hardened systemd unit"): + machine.succeed("test -e /mnt/ipfs/config") + machine.succeed("test ! -e /var/lib/ipfs/") + ''; +} |