From 9ed36cd3d6a4146f5f314b79a6fd6ada93d03164 Mon Sep 17 00:00:00 2001
From: Danny Milosavljevic <dannym@scratchpost.org>
Date: Thu, 10 May 2018 00:05:58 +0200
Subject: [PATCH] build-system: android-ndk: Support unit tests.

* guix/build-system/android-ndk.scm (android-ndk-build): Add googletest.
* guix/build/android-ndk-build-system.scm (check): Check whether tests are
enabled.  Run root-level tests as well.
---
 guix/build-system/android-ndk.scm       |  1 +
 guix/build/android-ndk-build-system.scm | 14 +++++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm
index 842d983a626..891fc6e042a 100644
--- a/guix/build-system/android-ndk.scm
+++ b/guix/build-system/android-ndk.scm
@@ -113,6 +113,7 @@ (define private-keywords
                         ;; Keep the standard inputs of 'gnu-build-system'
                         ,@(standard-packages)))
          (build-inputs `(("android-make-stub" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub))
+                         ("googletest" ,(module-ref (resolve-interface '(gnu packages check)) 'googletest))
                          ,@native-inputs))
          (outputs outputs)
          (build android-ndk-build)
diff --git a/guix/build/android-ndk-build-system.scm b/guix/build/android-ndk-build-system.scm
index b5d4b36d308..86d0858488b 100644
--- a/guix/build/android-ndk-build-system.scm
+++ b/guix/build/android-ndk-build-system.scm
@@ -68,11 +68,15 @@ (define* (install #:key inputs outputs (make-flags '()) #:allow-other-keys)
         (copy-recursively "include" (string-append out "/include")))
     #t))
 
-(define* (check #:key inputs outputs tests? (make-flags '()) #:allow-other-keys)
-  ;; TODO: Also handle root-level tests.
-  (when (and (file-exists? "tests") tests?)
-    (with-directory-excursion "tests"
-      (apply invoke "make" "check" make-flags))))
+(define* (check #:key target inputs outputs (tests? (not target)) (make-flags '()) #:allow-other-keys)
+  (if tests?
+      (begin
+        (apply invoke "make" "check" make-flags)
+        (when (and (file-exists? "tests") tests?)
+          (with-directory-excursion "tests"
+            (apply invoke "make" "check" make-flags))))
+      (format #t "test suite not run~%"))
+  #t)
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
-- 
GitLab