anchor.diff:  let
  -  gopherRoot  = "/tmp/gopher";
  -  gopherHost  = "gopherd";
  -  fileContent = "Hello Gopher!";
  -  fileName    = "file.txt";
  +  gopherRoot   = "/tmp/gopher";
  +  gopherHost   = "gopherd";
  +  gopherClient = "client";
  +  fileContent  = "Hello Gopher!\n";
  +  fileName     = "file.txt";
   in
     import ./make-test-python.nix ({...}: {
       name = "spacecookie";
  
positive.code:         };
        };
  
        client = {};
      };
  
      testScript = ''
        start_all()
        ${gopherHost}.wait_for_open_port(70)
        ${gopherHost}.wait_for_unit("spacecookie.service")
        client.wait_for_unit("network.target")
  
        fileResponse = client.succeed("curl -f -s gopher://${gopherHost}//${fileName}")
  
        # the file response should return our created file exactly
        if not (fileResponse == "${fileContent}\n"):
            raise Exception("Unexpected file response")
  
        # sanity check on the directory listing: we serve a directory and a file
        # via gopher, so the directory listing should have exactly two entries,
        # one with gopher file type 0 (file) and one with file type 1 (directory).
        dirResponse = client.succeed("curl -f -s gopher://${gopherHost}")
        dirEntries = [l[0] for l in dirResponse.split("\n") if len(l) > 0]
        dirEntries.sort()
  
  
negative.code:         systemd.services.spacecookie = {
            preStart = ''
              mkdir -p ${gopherRoot}/directory
              printf "%s" "${fileContent}" > ${gopherRoot}/${fileName}
            '';
          };
  
  