Loading nixos/tests/all-tests.nix +1 −0 Original line number Diff line number Diff line Loading @@ -528,6 +528,7 @@ in { memcached = handleTest ./memcached.nix {}; merecat = handleTest ./merecat.nix {}; metabase = handleTest ./metabase.nix {}; mihomo = handleTest ./mihomo.nix {}; mindustry = handleTest ./mindustry.nix {}; minecraft = handleTest ./minecraft.nix {}; minecraft-server = handleTest ./minecraft-server.nix {}; Loading nixos/tests/mihomo.nix 0 → 100644 +44 −0 Original line number Diff line number Diff line import ./make-test-python.nix ({ pkgs, ... }: { name = "mihomo"; meta.maintainers = with pkgs.lib.maintainers; [ Guanran928 ]; nodes.machine = { environment.systemPackages = [ pkgs.curl ]; services.nginx = { enable = true; statusPage = true; }; services.mihomo = { enable = true; configFile = pkgs.writeTextFile { name = "config.yaml"; text = '' mixed-port: 7890 external-controller: 127.0.0.1:9090 authentication: - "user:supersecret" ''; }; }; }; testScript = '' # Wait until it starts machine.wait_for_unit("nginx.service") machine.wait_for_unit("mihomo.service") machine.wait_for_open_port(80) machine.wait_for_open_port(7890) machine.wait_for_open_port(9090) # Proxy machine.succeed("curl --fail --max-time 10 --proxy http://user:supersecret@localhost:7890 http://localhost") machine.succeed("curl --fail --max-time 10 --proxy socks5://user:supersecret@localhost:7890 http://localhost") machine.fail("curl --fail --max-time 10 --proxy http://user:supervillain@localhost:7890 http://localhost") machine.fail("curl --fail --max-time 10 --proxy socks5://user:supervillain@localhost:7890 http://localhost") # Web UI machine.succeed("curl --fail http://localhost:9090") == '{"hello":"clash"}' ''; }) pkgs/by-name/mi/mihomo/package.nix +6 −0 Original line number Diff line number Diff line { lib , fetchFromGitHub , buildGoModule , nixosTests }: buildGoModule rec { Loading Loading @@ -31,6 +32,11 @@ buildGoModule rec { # network required doCheck = false; passthru.tests = { mihomo = nixosTests.mihomo; }; meta = with lib; { description = "A rule-based tunnel in Go"; homepage = "https://github.com/MetaCubeX/mihomo"; Loading Loading
nixos/tests/all-tests.nix +1 −0 Original line number Diff line number Diff line Loading @@ -528,6 +528,7 @@ in { memcached = handleTest ./memcached.nix {}; merecat = handleTest ./merecat.nix {}; metabase = handleTest ./metabase.nix {}; mihomo = handleTest ./mihomo.nix {}; mindustry = handleTest ./mindustry.nix {}; minecraft = handleTest ./minecraft.nix {}; minecraft-server = handleTest ./minecraft-server.nix {}; Loading
nixos/tests/mihomo.nix 0 → 100644 +44 −0 Original line number Diff line number Diff line import ./make-test-python.nix ({ pkgs, ... }: { name = "mihomo"; meta.maintainers = with pkgs.lib.maintainers; [ Guanran928 ]; nodes.machine = { environment.systemPackages = [ pkgs.curl ]; services.nginx = { enable = true; statusPage = true; }; services.mihomo = { enable = true; configFile = pkgs.writeTextFile { name = "config.yaml"; text = '' mixed-port: 7890 external-controller: 127.0.0.1:9090 authentication: - "user:supersecret" ''; }; }; }; testScript = '' # Wait until it starts machine.wait_for_unit("nginx.service") machine.wait_for_unit("mihomo.service") machine.wait_for_open_port(80) machine.wait_for_open_port(7890) machine.wait_for_open_port(9090) # Proxy machine.succeed("curl --fail --max-time 10 --proxy http://user:supersecret@localhost:7890 http://localhost") machine.succeed("curl --fail --max-time 10 --proxy socks5://user:supersecret@localhost:7890 http://localhost") machine.fail("curl --fail --max-time 10 --proxy http://user:supervillain@localhost:7890 http://localhost") machine.fail("curl --fail --max-time 10 --proxy socks5://user:supervillain@localhost:7890 http://localhost") # Web UI machine.succeed("curl --fail http://localhost:9090") == '{"hello":"clash"}' ''; })
pkgs/by-name/mi/mihomo/package.nix +6 −0 Original line number Diff line number Diff line { lib , fetchFromGitHub , buildGoModule , nixosTests }: buildGoModule rec { Loading Loading @@ -31,6 +32,11 @@ buildGoModule rec { # network required doCheck = false; passthru.tests = { mihomo = nixosTests.mihomo; }; meta = with lib; { description = "A rule-based tunnel in Go"; homepage = "https://github.com/MetaCubeX/mihomo"; Loading