nixos/frp: add test and link to package

This commit is contained in:
zaldnoay 2023-09-13 21:24:47 +08:00 committed by Lin Jian
parent 6cd38e43cd
commit b53e5a6479
3 changed files with 92 additions and 1 deletions

View File

@ -290,6 +290,7 @@ in {
freshrss-sqlite = handleTest ./freshrss-sqlite.nix {};
freshrss-pgsql = handleTest ./freshrss-pgsql.nix {};
frigate = handleTest ./frigate.nix {};
frp = handleTest ./frp.nix {};
frr = handleTest ./frr.nix {};
fsck = handleTest ./fsck.nix {};
fsck-systemd-stage-1 = handleTest ./fsck.nix { systemdStage1 = true; };

86
nixos/tests/frp.nix Normal file
View File

@ -0,0 +1,86 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "frp";
meta.maintainers = with lib.maintainers; [ zaldnoay janik ];
nodes = {
frps = {
networking = {
useNetworkd = true;
useDHCP = false;
firewall.enable = false;
};
systemd.network.networks."01-eth1" = {
name = "eth1";
networkConfig.Address = "10.0.0.1/24";
};
services.frp = {
enable = true;
role = "server";
settings = {
common = {
bind_port = 7000;
vhost_http_port = 80;
};
};
};
};
frpc = {
networking = {
useNetworkd = true;
useDHCP = false;
};
systemd.network.networks."01-eth1" = {
name = "eth1";
networkConfig.Address = "10.0.0.2/24";
};
services.httpd = {
enable = true;
adminAddr = "admin@example.com";
virtualHosts."test-appication" =
let
testdir = pkgs.writeTextDir "web/index.php" "<?php phpinfo();";
in
{
documentRoot = "${testdir}/web";
locations."/" = {
index = "index.php index.html";
};
};
phpPackage = pkgs.php81;
enablePHP = true;
};
services.frp = {
enable = true;
role = "client";
settings = {
common = {
server_addr = "10.0.0.1";
server_port = 7000;
};
web = {
type = "http";
local_port = 80;
custom_domains = "10.0.0.1";
};
};
};
};
};
testScript = ''
start_all()
frps.wait_for_unit("frp.service")
frps.wait_for_open_port(80)
frpc.wait_for_unit("frp.service")
response = frpc.succeed("curl -fvvv -s http://127.0.0.1/")
assert "PHP Version ${pkgs.php81.version}" in response, "PHP version not detected"
response = frpc.succeed("curl -fvvv -s http://10.0.0.1/")
assert "PHP Version ${pkgs.php81.version}" in response, "PHP version not detected"
'';
})

View File

@ -1,4 +1,4 @@
{ buildGoModule, lib, fetchFromGitHub }:
{ buildGoModule, lib, fetchFromGitHub, nixosTests }:
buildGoModule rec {
pname = "frp";
@ -17,6 +17,10 @@ buildGoModule rec {
subPackages = [ "cmd/frpc" "cmd/frps" ];
passthru.tests = {
frp = nixosTests.frp;
};
meta = with lib; {
description = "Fast reverse proxy";
longDescription = ''