Skip to content
  • Simon McVittie's avatar
    test: Skip TCP tests if getaddrinfo doesn't work · f1faafd5
    Simon McVittie authored
    For example, this can be the case in bubblewrap or Debian pbuilder after
    unsharing the network namespace:
    
        bwrap \
        --bind / / \
        --dev-bind /dev /dev \
        --bind /dev/shm /dev/shm \
        --bind /dev/pts /dev/pts \
        --unshare-net \
        ${builddir}/test/test-loopback --tap
        ...
        ok 1 /connect/tcp # SKIP Name resolution does not work here:
        getaddrinfo("127.0.0.1", "0", {flags=ADDRCONFIG, family=INET,
        socktype=STREAM, protocol=TCP}): Name or service not known
    
    On some systems this can be circumvented by using nss_wrapper from
    <https://cwrap.org/nss_wrapper.html
    
    >:
    
        cat > hosts <<EOF
        127.0.0.1 localhost
        EOF
        bwrap \
        ... \
        env \
        LD_PRELOAD=libnss_wrapper.so \
        NSS_WRAPPER_HOSTS=$(pwd)/hosts \
        ${builddir}/test/test-loopback --tap
        ...
        # listening at tcp:host=127.0.0.1,port=39219,family=ipv4,guid=...
    
    but for systems where that does't work, we should be prepared to skip
    the affected tests.
    
    Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
    Reviewed-by: default avatarPhilip Withnall <withnall@endlessm.com>
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=106812
    f1faafd5