guix-commits
[Top][All Lists]
Advanced

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

07/19: gnu: mediastreamer2: Enable tests.


From: guix-commits
Subject: 07/19: gnu: mediastreamer2: Enable tests.
Date: Mon, 29 Mar 2021 01:44:04 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit 0c6f7d8396349dc5afb5c24b72f940f097737e78
Author: Raghav Gururajan <rg@raghavgururajan.name>
AuthorDate: Tue Mar 16 16:56:25 2021 -0400

    gnu: mediastreamer2: Enable tests.
    
    * gnu/packages/linphone.scm (mediastreamer2)
    [arguments]: Remove tests? argument, enabling tests.
    [phases]{pre-check}: New phase.
    {check}: Replace with custom phase.
    [native-inputs]: Add xorg-server-for-tests.
    
    Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
    Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
---
 gnu/packages/linphone.scm | 39 ++++++++++++++++++++++++++++++++-------
 1 file changed, 32 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 129b676..f06b2be 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -532,8 +532,7 @@ API.  It also comprises a simple HTTP/HTTPS client 
implementation.")
     (outputs '("out" "doc" "tester"))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags (list "-DENABLE_STATIC=NO")
+     `(#:configure-flags (list "-DENABLE_STATIC=NO")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-version
@@ -541,6 +540,14 @@ API.  It also comprises a simple HTTP/HTTPS client 
implementation.")
              (substitute* "CMakeLists.txt"
                (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
                 (string-append "VERSION " ,version)))))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getenv "TEMP"))))
+         (delete 'check)                ;move after install
          (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -552,19 +559,37 @@ API.  It also comprises a simple HTTP/HTTPS client 
implementation.")
                          (list (string-append tester "/bin")
                                (string-append tester "/share")
                                (string-append doc "/share/doc")))
-               ;; Copy the tester executable.
+               ;; Move the tester executable.
                (rename-file (string-append out "/bin/" tester-name)
                             (string-append tester "/bin/" tester-name))
-               ;; Copy the tester data files.
+               ;; Move the tester data files.
                (rename-file (string-append out "/share/" tester-name)
                             (string-append tester "/share/" tester-name))
-               ;; Copy the HTML documentation.
+               ;; Move the HTML documentation.
                (rename-file (string-append out "/share/doc/" doc-name)
-                            (string-append doc "/share/doc/" doc-name))))))))
+                            (string-append doc "/share/doc/" doc-name)))))
+         (add-after 'separate-outputs 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((tester (string-append  (assoc-ref outputs "tester")
+                                           "/bin/mediastreamer2_tester")))
+               (for-each (lambda (suite-name)
+                           (invoke tester "--suite" suite-name))
+                         ;; Some tests fail, due to requiring access to the
+                         ;; sound card or the network.
+                           (list "Basic Audio"
+                                 ;; "Sound Card"
+                                 ;; "AdaptiveAlgorithm"
+                                 ;; "AudioStream"
+                                 ;; "VideoStream"
+                                 "H26x Tools"
+                                 "Framework"
+                                 ;; "Player"
+                                 "TextStream"))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
-       ("python" ,python-wrapper)))
+       ("python" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("alsa" ,alsa-lib)
        ("bcg729" ,bcg729)



reply via email to

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