From patchwork Thu Oct 10 15:49:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Nicol=C3=B2_Balzarotti?= X-Patchwork-Id: 16447 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id AB55117837; Mon, 9 Dec 2019 14:02:32 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 51512177E5 for ; Mon, 9 Dec 2019 14:02:32 +0000 (GMT) Received: from localhost ([::1]:40546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ieJcN-0006ft-GP for patchwork@mira.cbaines.net; Mon, 09 Dec 2019 09:02:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59721) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ieJc0-0006c2-Ns for guix-patches@gnu.org; Mon, 09 Dec 2019 09:02:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ieJbu-0000Dp-EJ for guix-patches@gnu.org; Mon, 09 Dec 2019 09:02:08 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:46835) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ieJbu-0000Dl-Az for guix-patches@gnu.org; Mon, 09 Dec 2019 09:02:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ieJbu-00030l-97 for guix-patches@gnu.org; Mon, 09 Dec 2019 09:02:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#38546] [PATCH 2/3] gnu: julia-build-system: Enable tests. References: <87v9qpvbyr.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> In-Reply-To: <87v9qpvbyr.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> Resent-From: =?utf-8?q?Nicol=C3=B2?= Balzarotti Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 09 Dec 2019 14:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38546 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Guix Patches <38546@debbugs.gnu.org> Received: via spool by 38546-submit@debbugs.gnu.org id=B38546.157590007211489 (code B ref 38546); Mon, 09 Dec 2019 14:02:02 +0000 Received: (at 38546) by debbugs.gnu.org; 9 Dec 2019 14:01:12 +0000 Received: from localhost ([127.0.0.1]:52805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ieJb6-0002zF-4Q for submit@debbugs.gnu.org; Mon, 09 Dec 2019 09:01:12 -0500 Received: from mail-wm1-f53.google.com ([209.85.128.53]:51965) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ieJb5-0002z2-GT for 38546@debbugs.gnu.org; Mon, 09 Dec 2019 09:01:11 -0500 Received: by mail-wm1-f53.google.com with SMTP id g206so15615370wme.1 for <38546@debbugs.gnu.org>; Mon, 09 Dec 2019 06:01:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=R1pOjVjfkYP0/RizHzBsVDjA1ihpjc8d/A/lxx+upj4=; b=BPp3TzqJLT8yrcFLcKy9xxpP/1UO9YoIFWRj0vEGRLOVfzUEegxschJtgqqoJfcK5g y4OXjPq2In2isRxzJGtw4Dk7gTbmx5kIKYbf2ufLMl6xHQY3vGf+GyC5SOEAQHIIsLxb wEp9FxgTJTBpCda2SLl5SZcPPZ7LcpCrQy49I9MrkO8H/WYm+bsw2X6KvqV1o57FY56a Roj1coS3bSbvmBGdCzyCRQcT6XLoUMdsj5f2uN4bvHFiyjxjI/55QGpFJXNwxvZm0G2N RnpEU7sQSmCHx81DVNIRSvs0lPH1QID1cABlSKKUaoxcybaCcyWJMxaYn1T50bj/0JuR abXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=R1pOjVjfkYP0/RizHzBsVDjA1ihpjc8d/A/lxx+upj4=; b=mBb7+7lm5/vgt5MMswvMkBaoT9ict6zA6US01jqennpuFdNY9M0OeYbnU3fLgwexlS ZKP6AYtNfPYRxaV49wlnpfIRH2uZnC4MPJLIaSKxS/bzlDxrL4nHs8jXrbKbSYfRzEAs SLlroXiN2CHFTrQIUULNmwTDhfLSMutVahG8YGD9hoadhR05Kh/EaFnCVdD4PyB6jpIj Cgodicu57Ru+LJdDCWQWFo9OGxtQqpr3V8qGaK7xtEox7AzaD5WKvnGBktaGCv6CGm9o ctKNb1SDLzhBcWtbb8j3+btTyrekIhasAFkAF4FOKYYc6qXtzcOhY1dyAppkKfNxPrgE pLTw== X-Gm-Message-State: APjAAAUdUU46ReqJhNefxuUn4xIyEo2kUnlBdx7VmCaHeN1n6ZJ3Cqp9 8402IVnTd4U6owec2NnPyB/19OBfNb4= X-Google-Smtp-Source: APXvYqzixuLdpDo6FFqpwBYQ2Of34hBBeKGEHPLPuCBKlcLfRlzrzaWgLL6meFNzv3SLsPgTdwz8VA== X-Received: by 2002:a05:600c:cd:: with SMTP id u13mr25130362wmm.24.1575900065069; Mon, 09 Dec 2019 06:01:05 -0800 (PST) Received: from guixSD (host1-200-dynamic.5-87-r.retail.telecomitalia.it. [87.5.200.1]) by smtp.gmail.com with ESMTPSA id w13sm28688595wru.38.2019.12.09.06.01.04 for <38546@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 06:01:04 -0800 (PST) From: =?utf-8?q?Nicol=C3=B2?= Balzarotti X-Google-Original-From: nixo Date: Thu, 10 Oct 2019 17:49:15 +0200 Message-ID: <87sgltvbs1.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- guix/build-system/julia.scm | 4 +++- guix/build/julia-build-system.scm | 28 +++++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/guix/build-system/julia.scm b/guix/build-system/julia.scm index 488fe9bb1d..0c07484f12 100644 --- a/guix/build-system/julia.scm +++ b/guix/build-system/julia.scm @@ -26,6 +26,7 @@ #:use-module (guix build-system gnu) #:use-module (ice-9 match) #:use-module (srfi srfi-26) + #:use-module (gnu packages check) ;; libfaketime #:export (%julia-build-system-modules julia-build julia-build-system)) @@ -68,6 +69,7 @@ ;; Keep the standard inputs of 'gnu-build-system'. ,@(standard-packages))) (build-inputs `(("julia" ,julia) + ("libfaketime" ,libfaketime) ,@native-inputs)) (outputs outputs) (build julia-build) @@ -75,7 +77,7 @@ (define* (julia-build store name inputs #:key source - (tests? #f) + (tests? #t) (phases '(@ (guix build julia-build-system) %standard-phases)) (outputs '("out")) diff --git a/guix/build/julia-build-system.scm b/guix/build/julia-build-system.scm index ff6fcf5fe3..bd4c64fa11 100644 --- a/guix/build/julia-build-system.scm +++ b/guix/build/julia-build-system.scm @@ -32,7 +32,13 @@ ;; Code: (define (invoke-julia code) - (invoke "julia" "-e" code)) + ;; Julia stores the result of the time() call + ;; inside the precompiled file. When trying to load it, its precompilation + ;; it fails at comparing the file mtime with the precompilation time, + ;; always triggering a recompile. This fixes the stored value. + ;; Also, libc.jl rand() uses time() as its seed. This might introduce indeterminism while building + ;; Default guix mtime is 1, so I'm setting the same here (if they differ, precompilation is invalid) + (invoke "faketime" "-f" "1970-01-01 00:00:01" "julia" "-e" code)) ;; subpath where we store the package content (define %package-path "/share/julia/packages/") @@ -78,13 +84,17 @@ (invoke-julia (string-append "using " package))) #t) -(define* (check #:key source inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (package (strip-store-file-name source)) - (builddir (string-append out "/share/julia/"))) - (setenv "JULIA_DEPOT_PATH" builddir) - (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs)) - (invoke-julia (string-append "using Pkg;Pkg.test(\"" package "\")"))) +(define* (check #:key tests? source inputs outputs #:allow-other-keys) + (when tests? + (let* ((out (assoc-ref outputs "out")) + (package (strip-store-file-name source)) + (builddir (string-append out "/share/julia/"))) + (setenv "JULIA_DEPOT_PATH" builddir) + (setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs)) + (display builddir) + (invoke "julia" (string-append builddir + "packages/" + package "/test/runtests.jl")))) #t) (define (julia-create-package-toml outputs source @@ -119,7 +129,7 @@ version = \"" version "\" (delete 'check) ; tests must be run after installation (replace 'install install) (add-after 'install 'precompile precompile) - ;; (add-after 'install 'check check) + (add-after 'install 'check check) ;; TODO: In the future we could add a "system-image-generation" phase ;; where we use PackageCompiler.jl to speed up package loading times (delete 'configure)