From 9f05fbb67d0de4d577c21a6fb6888cb6be67cd12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 28 Oct 2023 15:55:32 +0200 Subject: [PATCH] =?UTF-8?q?tests:=20Make=20=E2=80=98guix=20time-machine?= =?UTF-8?q?=E2=80=99=20test=20effective.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test as added in 79ec651a286c71a3d4c72be33a1f80e76a560031 had no effect: first because ‘guix time-machine --commit=X’, not followed by a command, does nothing, and second because the “! COMMAND” shell stanza does not have the desired effect (see ). This change rewrites the test to make it effective. * tests/guix-time-machine.sh: Rewrite. Change-Id: Ib44a11331c8625e346139a236cffa699cdbd02f2 --- tests/guix-time-machine.sh | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/tests/guix-time-machine.sh b/tests/guix-time-machine.sh index 8b62ef75ea..983f796225 100644 --- a/tests/guix-time-machine.sh +++ b/tests/guix-time-machine.sh @@ -1,5 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2023 Maxim Cournoyer +# Copyright © 2023 Ludovic Courtès # # This file is part of GNU Guix. # @@ -20,9 +21,26 @@ # Test the 'guix time-machine' command-line utility. # -guix time-machine --version +if [ -d "$abs_top_srcdir/.git" ] \ + || guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null +then + guix time-machine --version +else + echo "This test requires networking or a local Git checkout; skipping." >&2 + exit 77 +fi -# Visiting a commit older than v1.0.0 fails. -! guix time-machine --commit=v0.15.0 +if [ -d "$abs_top_srcdir/.git" ] +then + # Note: No "file://" prefix because that makes cloning much more expensive + # for some reason. + EXTRA_OPTIONS="--url=$abs_top_srcdir" +else + EXTRA_OPTIONS="" +fi -exit 0 +# Visiting a commit older than v1.0.0 must fail (this test is expensive +# because it clones the whole repository). +guix time-machine -q --commit=v0.15.0 $EXTRA_OPTIONS -- describe && false + +true