Skip to content

Commit 651e4d6

Browse files
committed
test: wait for DAD on both ends before checking connectivity
topo_basic only waited for the client's link-local DAD to finish, then pinged the server's link-local, which could still be tentative. Ensure both workflows dump test-suite.log on failure. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
1 parent 9e2d105 commit 651e4d6

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,4 @@ jobs:
9999
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
100100
- name: Build & Check
101101
run: |
102-
make distcheck
102+
make distcheck || (find . -name test-suite.log -exec cat {} +; false)

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
4343
- name: Build release ...
4444
run: |
45-
make release
45+
make release || (find . -name test-suite.log -exec cat {} +; false)
4646
ls -lF ../
4747
mkdir -p artifacts/
4848
mv ../*.tar.* artifacts/

test/lib.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,12 +219,17 @@ topo_basic()
219219
sllip=$(grep "eth0" "$DIR/tmp" | grep -i "fe80" | sed -e 's;.*\(fe80::.*\)/64.*;\1;')
220220
if [ -n "$sllip" ] ; then client_addr_ll6=$sllip ; fi
221221

222-
# Wait *dad_transmits +1 seconds for DAD to finish and link local address become valid
222+
# Wait for DAD to finish on BOTH ends so the link-local addresses are
223+
# valid -- pinging a still-tentative peer fails, which slower setups
224+
# such as `make distcheck` trip over. dad_transmits + a few seconds.
223225
to=$(nsenter --net="$client" -- cat /proc/sys/net/ipv6/conf/eth0/dad_transmits)
224-
while [ $to -gt -1 ] ; do
225-
nsenter --net="$client" -- ip -6 addr show dev eth0 | grep -q tentative || break
226-
: $((to -= 1))
226+
to=$((to + 3))
227+
while [ $to -gt 0 ] ; do
228+
tentative=$(nsenter --net="$client" -- ip -6 addr show dev eth0 tentative
229+
nsenter --net="$server" -- ip -6 addr show dev eth0 tentative)
230+
[ -z "$tentative" ] && break
227231
sleep 1
232+
: $((to -= 1))
228233
done
229234

230235
echo "$server" >> "$DIR/mounts"

0 commit comments

Comments
 (0)