]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Make /etc/alternatives work in VM
authorJohannes Berg <johannes.berg@intel.com>
Sat, 2 Feb 2019 22:38:35 +0000 (23:38 +0100)
committerJouni Malinen <j@w1.fi>
Tue, 5 Feb 2019 21:51:37 +0000 (23:51 +0200)
In recent Debian versions, ebtables is an alias managed by
the alternatives(8) mechanism. This means /usr/sbin/ebtables
is a symlink to /etc/alternatives/ebtables, which in turn
links to the real binary.

As we mount a tmpfs over /etc, we cannot access this.

Fix this by bind-mounting the real /etc to /tmp/etc and
adding a symlink from /etc/alternatives to this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
tests/hwsim/vm/inside.sh

index c22289cc35ee3c98fd17dce99a01eacbab0d227a..22620c13328e05c324e34d9ac2f0172d2254a373 100755 (executable)
@@ -1,10 +1,13 @@
 #!/bin/sh
 
+# keep old /etc
+mount tmpfs -t tmpfs /tmp
+mkdir /tmp/etc
+mount --bind /etc /tmp/etc
 # mount all kinds of things
 mount tmpfs -t tmpfs /etc
 # we need our own /dev/rfkill, and don't want device access
 mount tmpfs -t tmpfs /dev
-mount tmpfs -t tmpfs /tmp
 # some sockets go into /var/run, and / is read-only
 mount tmpfs -t tmpfs /var/run
 mount proc -t proc /proc
@@ -79,6 +82,9 @@ udp     17      UDP
 ipv6-icmp 58   IPv6-ICMP
 EOF
 
+# we may need /etc/alternatives, at least on Debian-based systems
+ln -s /tmp/etc/alternatives /etc/
+
 # local network is needed for some tests
 ip link set lo up