diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-04-29 00:38:03 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-05-09 23:45:36 +0200 |
commit | 9562a2eb6162ea6712fe31529c30002a83313dd8 (patch) | |
tree | fe5a1b7293645fb81650c093deac2034594d0ff6 /tests/records.scm | |
parent | dde029147619cdee9956dfa053933f9a4e619b5d (diff) | |
download | guix-patches-9562a2eb6162ea6712fe31529c30002a83313dd8.tar guix-patches-9562a2eb6162ea6712fe31529c30002a83313dd8.tar.gz |
diagnostics, ui: Adjust to 'read-error' and 'syntax-error' in Guile 3.0.6.
* guix/diagnostics.scm (source-properties->location): Add clause for
vectors.
* guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6.
* tests/guix-package.sh: Relax regexp for the "unbound variable"
diagnostic check.
* tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6.
* tests/records.scm (location-alist): New procedure.
("define-record-type* & wrong field specifier")
("define-record-type* & wrong field specifier, identifier")
("define-record-type* & duplicate initializers"): Use it.
Diffstat (limited to 'tests/records.scm')
-rw-r--r-- | tests/records.scm | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/tests/records.scm b/tests/records.scm index 2c55a61720..706bb3dbfd 100644 --- a/tests/records.scm +++ b/tests/records.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +29,16 @@ (module-use! module (resolve-interface '(guix records))) module)) +(define (location-alist loc) + ;; Return a location alist. In Guile < 3.0.6, LOC is always an alist, but + ;; starting with 3.0.6, LOC is a vector (at least when it comes from + ;; 'syntax-error' exceptions), hence this conversion. + (match loc + (#(file line column) + `((line . ,line) (column . ,column) + (filename . ,file))) + (_ loc))) + (test-begin "records") @@ -298,7 +308,7 @@ (pk 'expected-loc `((line . ,(- (assq-ref loc 'line) 1)) ,@(alist-delete 'line loc))) - (pk 'actual-loc location))))))) + (pk 'actual-loc (location-alist location)))))))) (test-assert "define-record-type* & wrong field specifier, identifier" (let ((exp '(begin @@ -325,7 +335,7 @@ (pk 'expected-loc `((line . ,(- (assq-ref loc 'line) 2)) ,@(alist-delete 'line loc))) - (pk 'actual-loc location))))))) + (pk 'actual-loc (location-alist location)))))))) (test-assert "define-record-type* & missing initializers" (catch 'syntax-error @@ -396,7 +406,7 @@ (pk 'expected-loc `((line . ,(- (assq-ref loc 'line) 1)) ,@(alist-delete 'line loc))) - (pk 'actual-loc location))))))) + (pk 'actual-loc (location-alist location)))))))) (test-assert "ABI checks" (let ((module (test-module))) |