tests: Unset NIX_STORE_DIR when running external tests.

This is a followup to cfcead2e51 and
47a6a938c3, which made (guix packages)
dependent on the value of NIX_STORE_DIR.

* guix/tests.scm (call-with-external-store): Unset NIX_STORE_DIR before
calling PROC.
This commit is contained in:
Ludovic Courtès 2021-07-05 15:34:24 +02:00
parent 5318bade32
commit 99ea6a2996
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -138,13 +138,21 @@ (define store
(open-connection))
(const #f)))
(dynamic-wind
(const #t)
(lambda ()
(proc store))
(lambda ()
(when store
(close-connection store))))))
(let ((store-variable (getenv "NIX_STORE_DIR")))
(dynamic-wind
(lambda ()
;; This environment variable is set by 'pre-inst-env' but it
;; influences '%store-directory' in (guix build utils), which is
;; itself used in (guix packages). Thus, unset it before going any
;; further.
(unsetenv "NIX_STORE_DIR"))
(lambda ()
(proc store))
(lambda ()
(when store-variable
(setenv "NIX_STORE_DIR" store-variable))
(when store
(close-connection store)))))))
(define-syntax-rule (with-external-store store exp ...)
"Evaluate EXP with STORE bound to the external store rather than the