M tests/builders.scm => tests/builders.scm +5 -0
@@ 50,9 50,13 @@
(list name (package-derivation %store package))))
(@@ (distro packages base) %boot0-inputs))))
+(define network-reachable?
+ (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)))
+
(test-begin "builders")
+(unless network-reachable? (test-skip 1))
(test-assert "url-fetch"
(let* ((url '("http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"
"ftp://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"))
@@ 69,6 73,7 @@
(and (build-system? gnu-build-system)
(eq? gnu-build (build-system-builder gnu-build-system))))
+(unless network-reachable? (test-skip 1))
(test-assert "gnu-build"
(let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")
(hash (nix-base32-string->bytevector
M tests/derivations.scm => tests/derivations.scm +4 -2
@@ 290,8 290,9 @@
(define %coreutils
(false-if-exception
- (or (package-derivation %store %bootstrap-coreutils&co)
- (nixpkgs-derivation "coreutils"))))
+ (and (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)
+ (or (package-derivation %store %bootstrap-coreutils&co)
+ (nixpkgs-derivation "coreutils")))))
(test-skip (if %coreutils 0 1))
@@ 385,6 386,7 @@
(and (equal? '(hello) (call-with-input-file one read))
(equal? '(world) (call-with-input-file two read)))))))
+(test-skip (if %coreutils 0 1))
(test-assert "build-expression->derivation with one input"
(let* ((builder '(call-with-output-file %output
(lambda (p)
M tests/guix-package.sh => tests/guix-package.sh +25 -21
@@ 31,31 31,35 @@ test -L "$profile" && test -L "$profile-1-link"
test -f "$profile/bin/guile"
-guix-package -b -p "$profile" \
- -i `guix-build -e '(@@ (distro packages base) gnu-make-boot0)'`
-test -L "$profile-2-link"
-test -f "$profile/bin/make" && test -f "$profile/bin/guile"
+# Check whether we have network access.
+if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
+then
+ guix-package -b -p "$profile" \
+ -i `guix-build -e '(@@ (distro packages base) gnu-make-boot0)'`
+ test -L "$profile-2-link"
+ test -f "$profile/bin/make" && test -f "$profile/bin/guile"
-# Check whether `--list-installed' works.
-# XXX: Change the tests when `--install' properly extracts the package
-# name and version string.
-installed="`guix-package -p "$profile" --list-installed | cut -f1 | xargs echo | sort`"
-case "x$installed" in
- "guile-bootstrap make-boot0")
- true;;
- "make-boot0 guile-bootstrap")
- true;;
- "*")
- false;;
-esac
+ # Check whether `--list-installed' works.
+ # XXX: Change the tests when `--install' properly extracts the package
+ # name and version string.
+ installed="`guix-package -p "$profile" --list-installed | cut -f1 | xargs echo | sort`"
+ case "x$installed" in
+ "guile-bootstrap make-boot0")
+ true;;
+ "make-boot0 guile-bootstrap")
+ true;;
+ "*")
+ false;;
+ esac
-test "`guix-package -p "$profile" -I 'g.*e' | cut -f1`" = "guile-bootstrap"
+ test "`guix-package -p "$profile" -I 'g.*e' | cut -f1`" = "guile-bootstrap"
-# Remove a package.
-guix-package -b -p "$profile" -r "guile-bootstrap-2.0"
-test -L "$profile-3-link"
-test -f "$profile/bin/make" && ! test -f "$profile/bin/guile"
+ # Remove a package.
+ guix-package -b -p "$profile" -r "guile-bootstrap-2.0"
+ test -L "$profile-3-link"
+ test -f "$profile/bin/make" && ! test -f "$profile/bin/guile"
+fi
# Make sure the `:' syntax works.
guix-package -b -i "libsigsegv:lib" -n
M tests/packages.scm => tests/packages.scm +2 -0
@@ 125,6 125,8 @@
(let ((p (pk 'drv d (derivation-path->output-path d))))
(eq? 'hello (call-with-input-file p read))))))
+(unless (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))
+ (test-skip 1))
(test-assert "GNU Make, bootstrap"
;; GNU Make is the first program built during bootstrap; we choose it
;; here so that the test doesn't last for too long.
M tests/union.scm => tests/union.scm +5 -1
@@ 64,7 64,11 @@
(bin make)
(share (doc (make README))))))
-(test-skip (if %store 0 1))
+(test-skip (if (and %store
+ (false-if-exception
+ (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)))
+ 0
+ 1))
(test-assert "union-build"
(let* ((inputs (map (match-lambda