diff options
Diffstat (limited to 'src/tests/qemu.sh')
-rwxr-xr-x | src/tests/qemu.sh | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/src/tests/qemu.sh b/src/tests/qemu.sh deleted file mode 100755 index 8bd5026..0000000 --- a/src/tests/qemu.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -# This compiles a kernel, creates a rootfs, and then starts up -# QEMU to run the netns.sh test. -# -# The exit code is 0 when this is successful. - -set -ex -cleanup() { - set +e - [[ -d $scratch_dir ]] || exit - cd / - rm -rf "$scratch_dir" -} -trap cleanup EXIT -wireguard_dir="$(readlink -f "$(dirname "$(readlink -f "$0")")/..")" -scratch_dir="$(mktemp -d)" -cd "$scratch_dir" -mkdir -p root/tools -root_dir="$(readlink -f root)" -wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz -tar xf linux-*.tar.xz -cd linux-* -make x86_64_defconfig -sed -i "/^if NET\$/a source \"$wireguard_dir/Kconfig\"" net/Kconfig -echo "obj-y += ../../../../../../../../../../../../../../../../../../../../../..$wireguard_dir/" >> net/Makefile -cat >> .config <<_EOF -CONFIG_NET=y -CONFIG_INET=y -CONFIG_NETFILTER=y -CONFIG_NETFILTER_XTABLES=y -CONFIG_NETFILTER_ADVANCED=y -CONFIG_NF_CONNTRACK=y -CONFIG_IP6_NF_IPTABLES=y -CONFIG_IPV6=y -CONFIG_NET_UDP_TUNNEL=y -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_WIREGUARD=y -CONFIG_WIREGUARD_DEBUG=y -CONFIG_WIREGUARD_PARALLEL=y -CONFIG_HW_RANDOM_VIRTIO=y -_EOF -make kvmconfig -make -j$(nproc) -make INSTALL_HDR_PATH="$root_dir" headers_install -cd .. - -wget https://www.musl-libc.org/releases/musl-1.1.15.tar.gz -tar xf musl-*.tar.gz -cd musl-* -unset CC -./configure --prefix="$root_dir" -make -j$(nproc) -make install -export CC="$root_dir/bin/musl-gcc" -export CFLAGS="-static -O2" -cd .. -wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz -tar xf bash-*.tar.gz -cd bash-* -for i in {1..43}; do - wget -O - http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$(printf '%03d' $i) | patch -p0 -done -./configure --prefix="$root_dir" --without-bash-malloc -make -j$(nproc) -make install -cd .. -wget https://busybox.net/downloads/busybox-1.25.0.tar.bz2 -tar xf busybox-*.tar.bz2 -cd busybox-* -make defconfig -make -j$(nproc) -cp busybox "$root_dir/bin/" -cd .. -wget http://ftp.netfilter.org/pub/libmnl/libmnl-1.0.4.tar.bz2 -tar xf libmnl-*.tar.bz2 -cd libmnl-* -./configure --prefix="$root_dir" --enable-static --disable-shared -make -j$(nproc) -make install -cd .. -wget https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.3.0.tar.xz -tar xf iproute2-*.tar.xz -cd iproute2-* -sed -i 's/-O2/-O2 -static/' Makefile -sed -i '/ARPD/d' Makefile -sed -i 's/arpd.8//' man/man8/Makefile -sed -i 's/m_ipt.o//' tc/Makefile -sed -i 's/[^ ]*_bpf.o//' tc/Makefile -echo -e "TC_CONFIG_XT=n\nTC_CONFIG_ATM=n\nTC_CONFIG_IPSET=n\nIP_CONFIG_SETNS=y" > Config -wget -O - https://cgit.gentoo.org/proj/musl.git/plain/sys-apps/iproute2/files/iproute2-4.3.0-musl.patch | patch -p1 -make -j$(nproc) PREFIX="$root_dir" CC="$CC" LDFLAGS=-static -cp ip/ip misc/ss "$root_dir/tools" -cd .. -wget http://downloads.es.net/pub/iperf/iperf-3.1.3.tar.gz -tar xf iperf-*.tar.gz -cd iperf-* -wget -O - https://github.com/esnet/iperf/commit/1fe02385b60c9dcd8a04b8bd3ff5cff120ec35a6.diff | patch -p1 -sed -i 's/-pg//;s/-g//' src/Makefile* -LDFLAGS=-static CFLAGS="-static -O2 -D_GNU_SOURCE" ./configure --prefix="$root_dir" --disable-shared --enable-static -make -j$(nprocs) -rm src/iperf3 -sed -i 's/iperf3_CFLAGS =/iperf3_CFLAGS = -all-static/' src/Makefile -make -cp src/iperf3 "$root_dir/tools" -wget https://github.com/iputils/iputils/archive/s20160308.tar.gz -O iputils-s20160308.tar.gz -tar xf iputils-*.tar.gz -cd iputils-* -LDFLAGS=-static make CC="$CC" USE_IDN=no USE_CAP=no USE_CRYPTO=no USE_GCRYPT=no USE_NETTLE=no ping -j$(nproc) -cp ping $root_dir/tools/ping -cp ping $root_dir/tools/ping6 -cd .. -cp -r "$wireguard_dir" "$root_dir/wireguard" -cd "$root_dir/wireguard/tools" -make clean -LDFLAGS=-static PKG_CONFIG_SYSROOT_DIR="$root_dir" PKG_CONFIG_PATH="$root_dir/lib/pkgconfig" PKG_CONFIG_LIBDIR="$root_dir/lib/pkgconfig" PREFIX="$root_dir" make -j$(nproc) -cd "$root_dir/.." - -qemu-system-x86_64 \ - -enable-kvm \ - -cpu host \ - -smp 2 \ - -m 64M \ - -nographic \ - -object rng-random,id=rng0,filename=/dev/urandom \ - -device virtio-rng-pci,rng=rng0 \ - -kernel linux-*/arch/x86/boot/bzImage \ - -fsdev local,path="$root_dir",security_model=none,id=root \ - -device virtio-9p-pci,fsdev=root,mount_tag=/dev/root \ - -append "root=/dev/root rw rootfstype=9p rootflags=trans=virtio console=ttyS0 init=/wireguard/tests/guest-init.sh" - -[[ -e $root_dir/wg-netns-success ]] |