summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorHenri Menke <henrimenke@gmail.com>2020-09-09 10:15:59 +1200
committerBenno Fünfstück <benno.fuenfstueck@gmail.com>2020-09-14 22:35:05 +0200
commit9d60354faee3ec42fccd724fa795ac2f64bef82d (patch)
tree2a2a702176e30a9f217c916a35d66a7aa659954b /nixos
parente587b5a8a843b296ec6293bc7684fb7856773f71 (diff)
downloadnixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.tar
nixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.tar.gz
nixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.tar.bz2
nixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.tar.lz
nixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.tar.xz
nixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.tar.zst
nixpkgs-9d60354faee3ec42fccd724fa795ac2f64bef82d.zip
nixos/shadowsocks: add test without plugin
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/shadowsocks.nix2
-rw-r--r--nixos/tests/all-tests.nix2
-rw-r--r--nixos/tests/shadowsocks/common.nix (renamed from nixos/tests/shadowsocks.nix)24
-rw-r--r--nixos/tests/shadowsocks/default.nix16
4 files changed, 32 insertions, 12 deletions
diff --git a/nixos/modules/services/networking/shadowsocks.nix b/nixos/modules/services/networking/shadowsocks.nix
index 6009a91cbb2..d2541f9a6df 100644
--- a/nixos/modules/services/networking/shadowsocks.nix
+++ b/nixos/modules/services/networking/shadowsocks.nix
@@ -147,7 +147,7 @@ in
       description = "shadowsocks-libev Daemon";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.shadowsocks-libev cfg.plugin ] ++ optional (cfg.passwordFile != null) pkgs.jq;
+      path = [ pkgs.shadowsocks-libev ] ++ optional (cfg.plugin != null) cfg.plugin ++ optional (cfg.passwordFile != null) pkgs.jq;
       serviceConfig.PrivateTmp = true;
       script = ''
         ${optionalString (cfg.passwordFile != null) ''
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index e50c2c7c801..8048c885e15 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -309,7 +309,7 @@ in
   sanoid = handleTest ./sanoid.nix {};
   sddm = handleTest ./sddm.nix {};
   service-runner = handleTest ./service-runner.nix {};
-  shadowsocks = handleTest ./shadowsocks.nix {};
+  shadowsocks = handleTest ./shadowsocks {};
   shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
   shiori = handleTest ./shiori.nix {};
   signal-desktop = handleTest ./signal-desktop.nix {};
diff --git a/nixos/tests/shadowsocks.nix b/nixos/tests/shadowsocks/common.nix
index 6cb288f7611..8cbbc3f2068 100644
--- a/nixos/tests/shadowsocks.nix
+++ b/nixos/tests/shadowsocks/common.nix
@@ -1,5 +1,10 @@
-import ./make-test-python.nix ({ pkgs, lib, ... }: {
-    name = "shadowsocks";
+{ name
+, plugin ? null
+, pluginOpts ? ""
+}:
+
+import ../make-test-python.nix ({ pkgs, lib, ... }: {
+    inherit name;
     meta = {
       maintainers = with lib.maintainers; [ hmenke ];
     };
@@ -22,8 +27,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           port = 8488;
           fastOpen = false;
           mode = "tcp_and_udp";
-          plugin = "${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
-          pluginOpts = "server;host=nixos.org";
+        } // lib.optionalAttrs (plugin != null) {
+          inherit plugin;
+          pluginOpts = "server;${pluginOpts}";
         };
         services.nginx = {
           enable = true;
@@ -42,10 +48,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           description = "connect to shadowsocks";
           after = [ "network.target" ];
           wantedBy = [ "multi-user.target" ];
-          path = with pkgs; [
-            shadowsocks-libev
-            shadowsocks-v2ray-plugin
-          ];
+          path = with pkgs; [ shadowsocks-libev ];
           script = ''
             exec ss-local \
                 -s 192.168.0.1 \
@@ -54,8 +57,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
                 -k 'pa$$w0rd' \
                 -m chacha20-ietf-poly1305 \
                 -a nobody \
-                --plugin "${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin" \
-                --plugin-opts "host=nixos.org"
+                ${lib.optionalString (plugin != null) ''
+                  --plugin "${plugin}" --plugin-opts "${pluginOpts}"
+                ''}
           '';
         };
       };
diff --git a/nixos/tests/shadowsocks/default.nix b/nixos/tests/shadowsocks/default.nix
new file mode 100644
index 00000000000..37a8c3c9d0d
--- /dev/null
+++ b/nixos/tests/shadowsocks/default.nix
@@ -0,0 +1,16 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../../.. { inherit system config; }
+}:
+
+{
+  "basic" = import ./common.nix {
+    name = "basic";
+  };
+
+  "v2ray-plugin" = import ./common.nix {
+    name = "v2ray-plugin";
+    plugin = "${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
+    pluginOpts = "host=nixos.org";
+  };
+}