aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tests/debug.mk
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2016-07-13 17:23:47 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2016-07-18 03:41:57 +0200
commitab013cc1adde5e5e2aa06f3ce451e76ca3494b0c (patch)
tree348d376f2bab4465c12ee432f4a447d2729232c5 /src/tests/debug.mk
parentreceive: assume we usually succeed with userspace (diff)
downloadwireguard-linux-compat-ab013cc1adde5e5e2aa06f3ce451e76ca3494b0c.tar.xz
wireguard-linux-compat-ab013cc1adde5e5e2aa06f3ce451e76ca3494b0c.zip
tests: improve test suite and add qemu tester
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/tests/debug.mk')
-rw-r--r--src/tests/debug.mk70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/tests/debug.mk b/src/tests/debug.mk
new file mode 100644
index 0000000..a013c97
--- /dev/null
+++ b/src/tests/debug.mk
@@ -0,0 +1,70 @@
+REMOTE_HOST1 ?= root@172.16.48.128
+REMOTE_HOST2 ?= root@172.16.48.129
+REMOTE_HOST3 ?= root@172.16.48.130
+PEER1 := [Peer]\nPublicKey=UQGBaem0U6JjIObMQzunZ2Euv8MMYcUUdWKJV87WDE8=\nAllowedIPs=192.168.2.1/32,abcd::1/128\nEndpoint=$(subst root@,,$(REMOTE_HOST1)):12912\n
+PEER2 := [Peer]\nPublicKey=tNXrD6GCvHRNgoZ/D/BmTbTbzoVGZh0R2V6rzY6hwl4=\nAllowedIPs=192.168.2.2/32,abcd::2/128\nEndpoint=$(subst root@,,$(REMOTE_HOST2)):21281\n
+PEER3 := [Peer]\nPublicKey=gLvFUb1FTyoACC/yZNqGLKnNkt+w30JEvfFChDVuewo=\nAllowedIPs=192.168.2.3/32,abcd::3/128\nEndpoint=$(subst root@,,$(REMOTE_HOST3)):54812\n
+SSH_OPTS := -q -o ControlMaster=auto -o ControlPath=.ssh-deployment.sock
+SSH_OPTS1 := $(SSH_OPTS)-1
+SSH_OPTS2 := $(SSH_OPTS)-2
+SSH_OPTS3 := $(SSH_OPTS)-3
+RSYNC_OPTS := --include="tools" --include="noise" --include="crypto" --include="*.mk" --include="*.sh" --include="*.8" --include="*.S" --include="*.c" --include="*.h" --include="Makefile" --exclude="*" -avP #--delete --delete-excluded
+
+MAYBE_DEBUG := "debug"
+ifeq ($(D),0)
+MAYBE_DEBUG :=
+endif
+
+test: debug
+ -sudo modprobe ip6_udp_tunnel
+ -sudo modprobe udp_tunnel
+ -sudo modprobe x_tables
+ -sudo modprobe ipv6
+ -sudo modprobe xt_hashlimit
+ ./tests/netns.sh
+
+remote-test:
+ ssh $(SSH_OPTS1) -Nf $(REMOTE_HOST1)
+ rsync --rsh="ssh $(SSH_OPTS1)" $(RSYNC_OPTS) . $(REMOTE_HOST1):wireguard-build/
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'make -C wireguard-build test -j$$(nproc)'
+ ssh $(SSH_OPTS1) -O exit $(REMOTE_HOST1)
+
+remote-run-1:
+ ssh $(SSH_OPTS1) -Nf $(REMOTE_HOST1)
+ rsync --rsh="ssh $(SSH_OPTS1)" $(RSYNC_OPTS) . $(REMOTE_HOST1):wireguard-build/
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'ip l d wg0; rmmod wireguard; cd wireguard-build && make -j$$(nproc) $(MAYBE_DEBUG) && make install'
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'ip l a wg0 type wireguard'
+ printf '[Interface]\nListenPort=12912\nPrivateKey=4IoHwlfTyKb9Z9W1YPmBmZvSiU6qcs0oa4xnjAEm/3U=\n$(PEER2)$(PEER3)' | ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'cat > config.conf'
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'wg setconf wg0 config.conf'
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'ip l set up dev wg0'
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'ip a a 192.168.2.1/24 dev wg0'
+ ssh $(SSH_OPTS1) $(REMOTE_HOST1) 'ip a a abcd::1/120 dev wg0'
+ ssh $(SSH_OPTS1) -O exit $(REMOTE_HOST1)
+
+
+remote-run-2:
+ ssh $(SSH_OPTS2) -Nf $(REMOTE_HOST2)
+ rsync --rsh="ssh $(SSH_OPTS2)" $(RSYNC_OPTS) . $(REMOTE_HOST2):wireguard-build/
+ ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'ip l d wg0; rmmod wireguard; cd wireguard-build && make -j$$(nproc) $(MAYBE_DEBUG) && make install'
+ ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'ip l a wg0 type wireguard'
+ printf '[Interface]\nListenPort=21281\nPrivateKey=kEKL+m4h5xTn2cYKU6NTEv32kuXHAkuqrjdT9VtsnX8=\n$(PEER1)$(PEER3)' | ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'cat > config.conf'
+ ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'wg setconf wg0 config.conf'
+ ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'ip l set up dev wg0'
+ ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'ip a a 192.168.2.2/24 dev wg0'
+ ssh $(SSH_OPTS2) $(REMOTE_HOST2) 'ip a a abcd::2/120 dev wg0'
+ ssh $(SSH_OPTS2) -O exit $(REMOTE_HOST2)
+
+remote-run-3:
+ ssh $(SSH_OPTS3) -Nf $(REMOTE_HOST3)
+ rsync --rsh="ssh $(SSH_OPTS3)" $(RSYNC_OPTS) . $(REMOTE_HOST3):wireguard-build/
+ ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'ip l d wg0; rmmod wireguard; cd wireguard-build && make -j$$(nproc) $(MAYBE_DEBUG) && make install'
+ ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'ip l a wg0 type wireguard'
+ printf '[Interface]\nListenPort=54812\nPrivateKey=qFunvj5kgENrtWn754hNBLrk5mMA+8+evVtnI2YqWkk=\n$(PEER1)$(PEER2)' | ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'cat > config.conf'
+ ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'wg setconf wg0 config.conf'
+ ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'ip l set up dev wg0'
+ ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'ip a a 192.168.2.3/24 dev wg0'
+ ssh $(SSH_OPTS3) $(REMOTE_HOST3) 'ip a a abcd::3/120 dev wg0'
+ ssh $(SSH_OPTS3) -O exit $(REMOTE_HOST3)
+
+remote-run:
+ $(MAKE) -j3 remote-run-1 remote-run-2 remote-run-3