let pkgs = import (builtins.fetchGit { name = "pinned-nixpkgs-21.11"; url = "https://github.com/NixOS/nixpkgs/"; ref = "refs/heads/nixos-21.11"; rev = "860b56be91fb874d48e23a950815969a7b832fbc"; }) {}; # TODO: This is where I'd put our IPFS plugin (if we had one!!) ipfs = pkgs.ipfs; # CID representing the SWHID # https://archive.softwareheritage.org/browse/snapshot/c7c108084bc0bf3d81436bf980b46e98bd338453/directory/ # (no particular attachment to darkroom, it was just the example # snapshot from the SWHID docs) swhid_cid = "znDfqECWqk8VqwNL2ayyYnvJdwDN9qYqa2"; # CID pointing to GNU Hello on Git (taken from the Nix-IPFS # integration docs) known_good_cid = "baf4bcfgi2up65zpzhg2fmyi52kecqfhsaevbaha"; in pkgs.nixosTest { system = "x86_64-linux"; machine = { config, pkgs, ... }: { networking.firewall.enable = false; services.ipfs = { enable = true; apiAddress = "/ip4/127.0.0.1/tcp/2324"; }; }; skipLint = true; # TODO: Add bridge node (when we have a bridge) testScript = '' import json import sys machine.wait_for_unit('ipfs') print(machine.wait_until_succeeds('ipfs swarm peers | grep ip4')) machine.succeed( 'ipfs --api /ip4/127.0.0.1/tcp/2324 dag get "${known_good_cid}"' ) # Hangs forever because IPFS doesn't understand our CID machine.fail( 'timeout 5 ipfs dag get ${swhid_cid}' ) ''; }