nixos/tests/go-httpbin: init

This commit is contained in:
Defelo
2025-07-23 12:24:19 +02:00
parent 224dc30d39
commit e1b8c6c493
3 changed files with 44 additions and 1 deletions

View File

@@ -607,6 +607,7 @@ in
gnupg = runTest ./gnupg.nix;
goatcounter = runTest ./goatcounter.nix;
go-camo = runTest ./go-camo.nix;
go-httpbin = runTest ./go-httpbin.nix;
go-neb = runTest ./go-neb.nix;
gobgpd = runTest ./gobgpd.nix;
gocd-agent = runTest ./gocd-agent.nix;

View File

@@ -0,0 +1,38 @@
{ lib, ... }:
{
name = "go-httpbin";
meta.maintainers = with lib.maintainers; [ defelo ];
nodes.machine = {
services.go-httpbin = {
enable = true;
settings.PORT = 8000;
};
};
interactive.nodes.machine = {
services.go-httpbin.settings.HOST = "0.0.0.0";
networking.firewall.allowedTCPPorts = [ 8000 ];
virtualisation.forwardPorts = [
{
from = "host";
host.port = 8000;
guest.port = 8000;
}
];
};
testScript = ''
import json
machine.wait_for_unit("go-httpbin.service")
machine.wait_for_open_port(8000)
resp = json.loads(machine.succeed("curl localhost:8000/get?foo=bar"))
assert resp["args"]["foo"] == ["bar"]
assert resp["method"] == "GET"
assert resp["origin"] == "127.0.0.1"
assert resp["url"] == "http://localhost:8000/get?foo=bar"
'';
}

View File

@@ -2,6 +2,7 @@
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
nix-update-script,
}:
@@ -35,7 +36,10 @@ buildGoModule (finalAttrs: {
runHook postInstallCheck
'';
passthru.updateScript = nix-update-script { };
passthru = {
tests = { inherit (nixosTests) go-httpbin; };
updateScript = nix-update-script { };
};
meta = {
description = "Reasonably complete and well-tested golang port of httpbin, with zero dependencies outside the go stdlib";