Message ID | d55f09b93e2f727d841cd4fba075a1049738712f.1698501649.git.ludo@gnu.org |
---|---|
State | New |
Headers | show |
Series | Make time-machine commit check cheaper; make test effective | expand |
Hi, Ludovic Courtès <ludo@gnu.org> writes: > 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 <https://issues.guix.gnu.org/62406>). Interesting. I had tested it, but I guess not with that script :-). [...] > -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 > + EXTRA_OPTIONS="--url=$abs_top_srcdir" Should the --url valE here be prefixed with "file://", just to make it extra clear we are cloning from a local file? > +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 Otherwise LGTM.
Hi, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: >> +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 >> + EXTRA_OPTIONS="--url=$abs_top_srcdir" > > Should the --url valE here be prefixed with "file://", just to make it > extra clear we are cloning from a local file? To my surprise, the test (which does little more than cloning the repo) runs in 5s without file:// and in 30mn otherwise! So I left the file:// prefix out and added a comment. Ludo’.
diff --git a/tests/guix-time-machine.sh b/tests/guix-time-machine.sh index 8b62ef75ea..a78c1533fb 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 <maxim.cournoyer@gmail.com> +# Copyright © 2023 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -20,9 +21,24 @@ # 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 + 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