diff --git a/tests/gexp.scm b/tests/gexp.scm
index f504b92d8418c3c44f73a0c99706e79f851028c5..f44f0eaf9ad350d8172ee84022e33db6fe21871b 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -24,6 +24,7 @@ (define-module (test-gexp)
   #:use-module (guix derivations)
   #:use-module (guix packages)
   #:use-module (guix tests)
+  #:use-module ((guix build utils) #:select (with-directory-excursion))
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bootstrap)
@@ -133,6 +134,14 @@ (define-syntax-rule (test-assertm name exp)
       (lambda ()
         (false-if-exception (delete-file link))))))
 
+(test-equal "local-file, relative file name"
+  (canonicalize-path (search-path %load-path "guix/base32.scm"))
+  (let ((directory (dirname (search-path %load-path
+                                         "guix/build-system/gnu.scm"))))
+    (with-directory-excursion directory
+        (let ((file (local-file "../guix/base32.scm")))
+          (local-file-absolute-file-name file)))))
+
 (test-assertm "local-file, #:select?"
   (mlet* %store-monad ((select? -> (lambda (file stat)
                                      (member (basename file)