From 47212fc763788660ff9051ccee1f6fa8a0db7bdd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 16 Jan 2020 15:00:18 +0100 Subject: records: Improve reporting of "invalid field specifier" errors. Previously users would just see: error: invalid field specifier without source location or hints. * guix/records.scm (expand): Add optional 'parent-form' parameter and pass it to 'syntax-violation' when it is true. (make-syntactic-constructor): Pass S as a third argument to 'report-invalid-field-specifier'. * guix/ui.scm (report-load-error): For 'syntax-error', show SUBFORM or FORM in the message. * tests/records.scm ("define-record-type* & wrong field specifier"): Add a 'subform' parameter and adjust test accordingly. ("define-record-type* & wrong field specifier, identifier"): New test. * tests/guix-system.sh: Add test. --- tests/guix-system.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'tests/guix-system.sh') diff --git a/tests/guix-system.sh b/tests/guix-system.sh index 1b2c425725..271627c2a5 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +# Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès # Copyright © 2017 Tobias Geerinckx-Rice # Copyright © 2018 Chris Marusich # @@ -130,6 +130,26 @@ else fi fi +cat > "$tmpfile" < "$errorfile" +then false +else + # Here '%base-file-systems' appears as if it were a field specified of the + # enclosing 'operating-system' form due to parenthesis mismatch. + grep "$tmpfile:3:[0-9]\+:.*%base-file-system.*invalid field specifier" \ + "$errorfile" +fi + OS_BASE=' (host-name "antelope") (timezone "Europe/Paris") -- cgit v1.2.3 From 1bb30aa35b0a7cf999c570113b5836cff46bc8fa Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 17 Jan 2020 17:12:44 +0100 Subject: guix system: Add workaround in test for Guile 3.0.0. * tests/guix-system.sh: For the 'GRUB-config' test, add workaround for the reported line number in Guile 3.0.0. --- tests/guix-system.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'tests/guix-system.sh') diff --git a/tests/guix-system.sh b/tests/guix-system.sh index 271627c2a5..3a831cba1d 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -120,7 +120,12 @@ EOF if guix system build "$tmpfile" -n 2> "$errorfile" then false else - if test "`guile -c '(display (effective-version))'`" = 2.2 + if test "`guile -c '(display (effective-version))'`" = 3.0 + then + # FIXME: With Guile 3.3.0 the error is reported on line 11. + # See . + grep "$tmpfile:[0-9]\+:[0-9]\+:.*GRUB-config.*[Uu]nbound variable" "$errorfile" + elif test "`guile -c '(display (effective-version))'`" = 2.2 then # FIXME: With Guile 2.2.0 the error is reported on line 4. # See . -- cgit v1.2.3