guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/22: guix: ant-build-system: Add #:test-include and #:test-exclude arg


From: julien lepiller
Subject: 02/22: guix: ant-build-system: Add #:test-include and #:test-exclude arguments.
Date: Tue, 3 Oct 2017 15:41:13 -0400 (EDT)

roptat pushed a commit to branch master
in repository guix.

commit f403d7abdf28d2d6e4446a2989e0d37d023b6b53
Author: Julien Lepiller <address@hidden>
Date:   Tue Sep 5 22:14:11 2017 +0200

    guix: ant-build-system: Add #:test-include and #:test-exclude arguments.
    
    * guix/build-system/ant.scm: Add #:test-include and #:test-exclude
    arguments.
    * guix/build/ant-build-system.scm: Generate test list from arguments.
    * doc/guix.texi (Build Systems): Document it.
---
 doc/guix.texi                   |  6 +++++-
 guix/build-system/ant.scm       |  4 ++++
 guix/build/ant-build-system.scm | 17 +++++++++++++----
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 312f5e7..f0a59a6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3481,7 +3481,11 @@ specify the source sub-directory, defaulting to ``src''.
 
 The @code{#:main-class} parameter can be used with the minimal ant 
 buildfile to specify the main class of the resulting jar.  This makes the 
-jar file executable.
+jar file executable.  The @code{#:test-include} parameter can be used to 
+specify the list of junit tests to run. It defaults to
address@hidden(list "**/*Test.java")}.  The @code{#:test-exclude} can be used to
+disable some tests. It defaults to @code{(list "**/Abstract*.java")},
+because abstract classes cannot be run as tests.
 
 The parameter @code{#:build-target} can be used to specify the Ant task
 that should be run during the @code{build} phase.  By default the
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index a700230..b5626bd 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -100,6 +100,8 @@
                     (build-target "jar")
                     (jar-name #f)
                     (main-class #f)
+                    (test-include (list "**/*Test.java"))
+                    (test-exclude (list "**/Abstract*.java"))
                     (source-dir "src")
                     (test-dir "src/test")
                     (phases '(@ (guix build ant-build-system)
@@ -132,6 +134,8 @@
                   #:build-target ,build-target
                   #:jar-name ,jar-name
                   #:main-class ,main-class
+                  #:test-include (list ,@test-include)
+                  #:test-exclude (list ,@test-exclude)
                   #:source-dir ,source-dir
                   #:test-dir ,test-dir
                   #:phases ,phases
diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 727d3a3..a440daf 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -36,7 +36,9 @@
 ;; Code:
 
 (define* (default-build.xml jar-name prefix #:optional
-                            (source-dir ".") (test-dir "./test") (main-class 
#f))
+                            (source-dir ".") (test-dir "./test") (main-class 
#f)
+                            (test-include '("**/*Test.java"))
+                            (test-exclude '("**/Abstract*Test.java")))
   "Create a simple build.xml with standard targets for Ant."
   (call-with-output-file "build.xml"
     (lambda (port)
@@ -109,7 +111,12 @@
                                 (batchtest (@ (fork "yes")
                                               (todir 
"${test.home}/test-reports"))
                                            (fileset (@ (dir 
"${test.home}/java"))
-                                                    (include (@ (name 
"**/*Test.java" )))))))
+                                                    ,@(map (lambda (file)
+                                                            `(include (@ (name 
,file))))
+                                                       test-include)
+                                                    ,@(map (lambda (file)
+                                                            `(exclude (@ (name 
,file))))
+                                                       test-exclude)))))
 
                  (target (@ (name "jar")
                             (depends "compile, manifest"))
@@ -150,12 +157,14 @@ to the default GNU unpack strategy."
 (define* (configure #:key inputs outputs (jar-name #f)
                     (source-dir "src")
                     (test-dir "src/test")
-                    (main-class #f) #:allow-other-keys)
+                    (main-class #f)
+                    (test-include '("**/*Test.java"))
+                    (test-exclude '("**/Abstract*.java")) #:allow-other-keys)
   (when jar-name
     (default-build.xml jar-name
                        (string-append (assoc-ref outputs "out")
                                       "/share/java")
-                       source-dir test-dir main-class))
+                       source-dir test-dir main-class test-include 
test-exclude))
   (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
   (setenv "CLASSPATH" (generate-classpath inputs)))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]