summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorRaghav Gururajan <rg@raghavgururajan.name>2021-03-16 16:56:25 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-03-29 01:17:13 -0400
commit0c6f7d8396349dc5afb5c24b72f940f097737e78 (patch)
tree9bc930d3a5b899d44d559daac626730135a367a9 /gnu
parent146a9403b3f9bda114e4e3a63ad1ad1aaac82d12 (diff)
downloadguix-0c6f7d8396349dc5afb5c24b72f940f097737e78.tar.gz
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>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/linphone.scm39
1 files changed, 32 insertions, 7 deletions
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 129b6764e5..f06b2be452 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)