From 3fd93fec957491450639c647e05a5f72f1e787fd Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Tue, 10 Nov 2020 19:26:04 -0800 Subject: [PATCH] tests: Add common functions for to check for network reachability. * tests/common.sh: New file. * tests/guix-build-branch.sh, tests/guix-pack.sh, tests/guix-package-net.sh: Use skip_if_network_unreachable function from common.sh. * tests/guix-environment.sh: Use network_reachable function from common.sh. --- Makefile.am | 1 + tests/common.sh | 30 ++++++++++++++++++++++++++++++ tests/guix-build-branch.sh | 8 ++------ tests/guix-environment.sh | 5 ++--- tests/guix-pack.sh | 5 ++--- tests/guix-package-net.sh | 9 ++------- 6 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 tests/common.sh diff --git a/Makefile.am b/Makefile.am index e7053ee4f4..7dbe41201c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -599,6 +599,7 @@ EXTRA_DIST += \ tests/test.drv \ tests/signing-key.pub \ tests/signing-key.sec \ + tests/common.sh \ tests/cve-sample.json \ tests/civodul.key \ tests/rsa.key \ diff --git a/tests/common.sh b/tests/common.sh new file mode 100644 index 0000000000..f9dd3c2c59 --- /dev/null +++ b/tests/common.sh @@ -0,0 +1,30 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2018, 2019, 2020 Ludovic Courtès +# Copyright © 2020 Vagrant Cascadian +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +network_reachable() { + if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null; then + return 0 + fi +} + +skip_if_network_unreachable() { + if ! network_reachable ; then + exit 77 + fi +} diff --git a/tests/guix-build-branch.sh b/tests/guix-build-branch.sh index 79aa06a58f..89f7ea4a08 100644 --- a/tests/guix-build-branch.sh +++ b/tests/guix-build-branch.sh @@ -24,12 +24,8 @@ guix build --version # 'guix build --with-branch' requires access to the network to clone the # Git repository below. - -if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null -then - # Skipping. - exit 77 -fi +. $(dirname $0)/common.sh +skip_if_network_unreachable orig_drv="`guix build guile-gcrypt -d`" latest_drv="`guix build guile-gcrypt --with-branch=guile-gcrypt=master -d`" diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index f8be48f0c0..ce01ac04be 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -174,9 +174,8 @@ case "$transformed_drv" in *) false;; esac - -if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null -then +. $(dirname $0)/common.sh +if network_reachable ; then # Compute the build environment for the initial GNU Make. guix environment --bootstrap --no-substitutes --search-paths --pure \ -e '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/a" diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index 0339221ac2..822a67b157 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -23,9 +23,8 @@ # A network connection is required to build %bootstrap-coreutils&co, # which is required to run these tests with the --bootstrap option. -if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null; then - exit 77 -fi +. $(dirname $0)/common.sh +skip_if_network_unreachable guix pack --version diff --git a/tests/guix-package-net.sh b/tests/guix-package-net.sh index 6d21c6cff6..f682d09245 100644 --- a/tests/guix-package-net.sh +++ b/tests/guix-package-net.sh @@ -38,13 +38,8 @@ shebang_too_long () -ge 128 } -if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null \ - || shebang_too_long -then - # Skipping. - exit 77 -fi - +. $(dirname $0)/common.sh +skip_if_network_unreachable profile="t-profile-$$" profile_alt="t-profile-alt-$$" -- 2.20.1