]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-13-NSPAWN: add more test case for passing network interfaces 30956/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Jan 2024 01:55:35 +0000 (10:55 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 19 Jan 2024 10:06:19 +0000 (19:06 +0900)
- test interface renaming that conflicts with the current alternative
  network interface name,
- test passing wlan interfaces.

test/TEST-13-NSPAWN/test.sh
test/units/testsuite-13.nspawn.sh

index 2e94156432b63f3b5edb1547e2533e8bf21be547..28d845c94bd38dbdb7f1ced606d1150ba58f0060 100755 (executable)
@@ -13,6 +13,10 @@ test_append_files() {
     local workspace="${1:?}"
     local container="$workspace/testsuite-13-container-template"
 
+    # For virtual wlan interface.
+    instmods mac80211_hwsim
+    generate_module_dependencies
+
     # Create a dummy container "template" with a minimal toolset, which we can
     # then use as a base for our nspawn/machinectl tests
     initdir="$container" setup_basic_dirs
index 8a6fa84dc96ec70cb16795aa634f3cc5e23b3bb4..e984d585ca0d91399a3d5409f42862596e5b03b6 100755 (executable)
@@ -324,7 +324,7 @@ EOF
 }
 
 nspawn_settings_cleanup() {
-    for dev in sd-host-only sd-shared{1,2} sd-macvlan{1,2} sd-ipvlan{1,2}; do
+    for dev in sd-host-only sd-shared{1,2,3} sd-macvlan{1,2} sd-ipvlan{1,2}; do
         ip link del "$dev" || :
     done
 
@@ -332,7 +332,7 @@ nspawn_settings_cleanup() {
 }
 
 testcase_nspawn_settings() {
-    local root container dev private_users
+    local root container dev private_users wlan_names='' wlan_checks=''
 
     mkdir -p /run/systemd/nspawn
     root="$(mktemp -d /var/lib/machines/testsuite-13.nspawn-settings.XXX)"
@@ -341,10 +341,17 @@ testcase_nspawn_settings() {
     rm -f "/etc/systemd/nspawn/$container.nspawn"
     mkdir -p "$root/tmp" "$root"/opt/{tmp,inaccessible,also-inaccessible}
 
-    for dev in sd-host-only sd-shared{1,2} sd-macvlan{1,2} sd-macvlanloong sd-ipvlan{1,2} sd-ipvlanlooong; do
+    # add virtual wlan interfaces
+    if modprobe mac80211_hwsim radios=2; then
+        wlan_names='wlan0 wlan1:wl-renamed1'
+        wlan_checks='ip link | grep wlan0\nip link | grep wl-renamed1'
+    fi
+
+    for dev in sd-host-only sd-shared{1,2,3} sd-macvlan{1,2} sd-macvlanloong sd-ipvlan{1,2} sd-ipvlanlooong; do
         ip link add "$dev" type dummy
     done
     udevadm settle
+    ip link property add dev sd-shared3 altname sd-altname3 altname sd-altname-tooooooooooooo-long
     ip link
     trap nspawn_settings_cleanup RETURN
 
@@ -394,7 +401,7 @@ Private=yes
 VirtualEthernet=yes
 VirtualEthernetExtra=my-fancy-veth1
 VirtualEthernetExtra=fancy-veth2:my-fancy-veth2
-Interface=sd-shared1 sd-shared2:sd-shared2
+Interface=sd-shared1 sd-shared2:sd-renamed2 sd-shared3:sd-altname3 ${wlan_names}
 MACVLAN=sd-macvlan1 sd-macvlan2:my-macvlan2 sd-macvlanloong
 IPVLAN=sd-ipvlan1 sd-ipvlan2:my-ipvlan2 sd-ipvlanlooong
 Zone=sd-zone0
@@ -437,12 +444,17 @@ ip link | grep host0@
 ip link | grep my-fancy-veth1@
 ip link | grep my-fancy-veth2@
 ip link | grep sd-shared1
-ip link | grep sd-shared2
+ip link | grep sd-renamed2
+ip link | grep sd-shared3
+ip link | grep sd-altname3
+ip link | grep sd-altname-tooooooooooooo-long
 ip link | grep mv-sd-macvlan1@
 ip link | grep my-macvlan2@
 ip link | grep iv-sd-ipvlan1@
 ip link | grep my-ipvlan2@
 EOF
+    echo -e "$wlan_checks" >>"$root/entrypoint.sh"
+
     timeout 30 systemd-nspawn --directory="$root"
 
     # And now for stuff that needs to run separately