From 9a2a20052a1a9c384a1b877d7c71d2d239f9467e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 23 Mar 2016 22:32:44 +0100 Subject: guix build: '--with-source' correctly matches versioned file names. * guix/scripts/build.scm: Use the right 'package-name->name+version' procedure. Fixes a regression introduced in 1b846da8c372bee78851439fd9e72b2499115e5a. * tests/scripts-build.scm ("options->transformation, with-source, with version"): New test. --- tests/scripts-build.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests') diff --git a/tests/scripts-build.scm b/tests/scripts-build.scm index 94ddaf447b..cf9770e952 100644 --- a/tests/scripts-build.scm +++ b/tests/scripts-build.scm @@ -22,6 +22,7 @@ (define-module (test-scripts-build) #:use-module (guix packages) #:use-module (guix scripts build) #:use-module (guix ui) + #:use-module (guix utils) #:use-module (gnu packages base) #:use-module (gnu packages busybox) #:use-module (ice-9 match) @@ -49,6 +50,25 @@ (define-module (test-scripts-build) (add-to-store store "guix.scm" #t "sha256" s))))))) +(test-assert "options->transformation, with-source, with version" + ;; Our pseudo-package is called 'guix.scm' so the 'guix.scm-2.0' source + ;; should be applicable, and its version should be extracted. + (let ((p (dummy-package "foo")) + (s (search-path %load-path "guix.scm"))) + (call-with-temporary-directory + (lambda (directory) + (let* ((f (string-append directory "/foo-42.0.tar.gz")) + (t (options->transformation `((with-source . ,f))))) + (copy-file s f) + (with-store store + (let ((new (t store p))) + (and (not (eq? new p)) + (string=? (package-name new) (package-name p)) + (string=? (package-version new) "42.0") + (string=? (package-source new) + (add-to-store store (basename f) #t + "sha256" f)))))))))) + (test-assert "options->transformation, with-source, no matches" ;; When a transformation in not applicable, a warning must be raised. (let* ((p (dummy-package "foobar")) -- cgit v1.2.3