Subject: Re: [bug#40543] [PATCH v2 5/5] gnu: virt-manager: Work towards enabling some tests.

From: Christopher Baines <[email-masked]>
Date: Thu, 16 Apr 2020 09:27:36 +0100

Marius Bakke <[email-masked]> writes:

> Christopher Baines <[email-masked]> writes:
>
>> * gnu/packages/virtualization.scm (virt-manager)[arguments]: Set #:test-target
>> to "test_ui", replace the 'check phase.
>> [native-inputs]: Add some inputs required for running tests.
>> ---
>>  gnu/packages/virtualization.scm | 25 +++++++++++++++++++++----
>>  1 file changed, 21 insertions(+), 4 deletions(-)
>>
>> diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
>> index be17ec15f0..c8840f345a 100644
>> --- a/gnu/packages/virtualization.scm
>> +++ b/gnu/packages/virtualization.scm
>> @@ -602,9 +602,10 @@ virtualization library.")
>>      (build-system python-build-system)
>>      (arguments
>>       `(#:use-setuptools? #f          ; uses custom distutils 'install' command
>> -       ;; Some of the tests seem to require network access to install virtual
>> -       ;; machines.
>> -       #:tests? #f
>> +       #:test-target "test_ui"
>> +       #:tests? #f                      ; TODO The tests currently fail
>> +                                        ; RuntimeError: Loop condition wasn't
>> +                                        ; met
>>         #:imported-modules ((guix build glib-or-gtk-build-system)
>>                             ,@%python-build-system-modules)
>>         #:modules ((ice-9 match)
>> @@ -651,6 +652,16 @@ virtualization library.")
>>                                 ,(filter identity paths))))
>>                           bin-files))
>>               #t))
>> +         (replace 'check
>> +           (lambda* (#:key tests? #:allow-other-keys)
>> +             (when tests?
>> +               (setenv "HOME" "/tmp")
>> +               (system "Xvfb :1 &")
>> +               (setenv "DISPLAY" ":1")
>> +               ;; Dogtail requires that Assistive Technology support be enabled
>> +               (setenv "GTK_MODULES" "gail:atk-bridge")
>> +               (invoke "dbus-run-session" "--" "python" "setup.py" "test_ui"))
>> +             #t))
>>           (add-after 'install 'glib-or-gtk-compile-schemas
>>             (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
>>           (add-after 'install 'glib-or-gtk-wrap
>> @@ -679,7 +690,13 @@ virtualization library.")
>>         ("gobject-introspection" ,gobject-introspection)
>>         ("gtk+" ,gtk+ "bin")             ; gtk-update-icon-cache
>>         ("perl" ,perl)                   ; pod2man
>> -       ("intltool" ,intltool)))
>> +       ("intltool" ,intltool)
>> +       ;; The following are required for running the tests
>> +       ("python-dogtail" ,python-dogtail)
>> +       ("xvfb" ,xorg-server)
>> +       ("dbus" ,dbus)
>> +       ("at-spi2-core" ,at-spi2-core)
>> +       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
>
> Perhaps we should comment these inputs for now so that they won't
> needlessly rebuild this package?

Sure, I'll comment them out.

> Also, this should use 'xorg-server-for-tests'.

I did see xorg-server-for-tests, but the comment said "This package is
intended to be used when building GTK". I guess the same reasoning
applies though, and it is used for packages other than GTK.

I'll make these changes and send some updated patches.