summary refs log tree commit diff
path: root/gnu/tests
AgeCommit message (Collapse)Author
2022-12-12tests: Add system tests for each supported kernel version.Marius Bakke
* gnu/tests/base.scm (%test-basic-os): Rename to ... (test-basic-os): ... this, and turn into procedure that takes optional KERNEL argument. (%test-basic-os): Use that procedure. (%test-linux-libre-5.15, %test-linux-libre-5.10, %test-linux-libre-5.4, %test-linux-libre-4.19, %test-linux-libre-4.14, %test-linux-libre-4.9): New tests.
2022-12-12Merge branch 'version-1.4.0'Ludovic Courtès
2022-12-06tests: docker-system: Increase image size.Ludovic Courtès
* gnu/tests/docker.scm (run-docker-system-test)[vm]: Increase 'disk-image-size'.
2022-12-06Revert "tests: install: Fix iso-image-installer test."Maxim Cournoyer
This reverts commit 0f66ef9aa99d2043abccbc80d858bdeca57534ac. e2fsprogs is now included in the installation operating system since 34f69bc6e6ea555929ecca83ee7592f5261ff5f2, making this workaround obsolete. Suggested-by: Ludovic Courtès <ludo@gnu.org>
2022-12-05Revert "tests: install: Fix iso-image-installer test."Maxim Cournoyer
This reverts commit 0f66ef9aa99d2043abccbc80d858bdeca57534ac. e2fsprogs is now included in the installation operating system since 34f69bc6e6ea555929ecca83ee7592f5261ff5f2, making this workaround obsolete. Suggested-by: Ludovic Courtès <ludo@gnu.org>
2022-12-04tests: Add gdm tests.Bruno Victal
* gnu/tests/gdm.scm: New file. * gnu/local.mk: Register it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-20tests: mysql: Wait for the socket before running queries.Marius Bakke
* gnu/tests/databases.scm (run-mysql-test): Add socket test.
2022-11-18services: Add Shepherd 'configuration' action to various services.Ludovic Courtès
* gnu/services/avahi.scm (avahi-shepherd-service): Add 'actions' field. * gnu/services/base.scm (nscd-actions): Add call to 'shepherd-configuration-action'. * gnu/services/desktop.scm (upower-shepherd-service): Add 'actions' field. (elogind-shepherd-service): Likewise. * gnu/services/dict.scm (dicod-shepherd-service): Likewise. * gnu/services/networking.scm (openntpd-shepherd-service): Likewise. (tor-shepherd-service): Likewise. * gnu/services/ssh.scm (openssh-shepherd-service): Likewise. * gnu/services/web.scm (nginx-shepherd-service): Likewise. * gnu/services/xorg.scm (gdm-shepherd-service): Likewise. * gnu/tests/base.scm (run-basic-test)["nscd configuration action"]: New test. * doc/guix.texi (Services): Document it.
2022-11-17tests: lightdm: Use set-xorg-configuration to set keyboard layout.Maxim Cournoyer
This is to validate that it works, when the login manager service type is properly specified. * gnu/tests/lightdm.scm (%lightdm-os): Use set-xorg-configuration.
2022-11-17tests: root-unmount: Wait for the first QEMU process to finish.Ludovic Courtès
There was a tiny possibility that the first QEMU process would still be running by the time we launch the second one. * gnu/build/marionette.scm (marionette-pid): Export. * gnu/tests/base.scm (run-root-unmount-test)[test]: Add 'waitpid' call.
2022-10-07tests: xvnc: Do not use specification->package in OS definition.Maxim Cournoyer
Doing so would cause the extra package dependencies to not be correctly registered as dependencies, which would lead to a silent failure when attempting to load or byte compile the module at the time guix build itself (e.g., when running 'guix pull'). * gnu/tests/vnc.scm (%xvnc-os) [packages]: Turn the the specification->package declaration into a list of package objects.
2022-10-07Revert "Revert "services: Add xvnc-service-type.""Maxim Cournoyer
This reverts commit 0c4966160054bc50e6ab3a4ac9c9a6a1826ab5a0. The fix appears in the subsequent commit, for clarity.
2022-10-07Revert "services: Add xvnc-service-type."Maxim Cournoyer
This reverts commit 1c528a95cb92b7808e6603d7956185005583629f. This broke 'guix pull', for (yet) unknown reasons.
2022-10-07services: Add xvnc-service-type.Maxim Cournoyer
* gnu/services/vnc.scm: New file. * gnu/tests/vnc.scm: Likewise. * gnu/local.mk: Register them.
2022-10-07marionette: Make marionette-screen-text private.Maxim Cournoyer
It has only one user, which is better suited for wait-for-screen-text anyway. * gnu/tests/base.scm (run-basic-test): Refactor to use wait-for-screen-text instead of marionette-screen-text.
2022-09-30tests: install: Fix iso-image-installer test.Mathieu Othacehe
This is a follow-up of: 45eac6cdf5c8d9d7b0c564b105c790d2d2007799. It fixes the following error: + mkfs.ext4 -L my-root /dev/vda2 sh: line 12: mkfs.ext4: command not found * gnu/tests/install.scm (%test-iso-image-installer): Add e2fsprogs to the appended packages.
2022-09-26tests: telephony: Add missing import to fix jami tests.Maxim Cournoyer
* gnu/tests/telephony.scm (run-jami-test): Add a missing (ice-9 match) import directive. Co-authored-by: Olivier Dion <olivier.dion@polymtl.ca>
2022-09-24services: Add wsdd service.Simon Streit
* doc/guix.texi: Add documentation for wsdd service. * gnu/services/samba.scm (<wsdd-configuration>): New record. (wsdd-service-type): New variable. (wsdd-shepherd-services): New procedure. * gnu/tests/samba.scm (%wsdd-os): Add variable. (run-wsdd-test): New procedure. (%test-wsdd): New variable. Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-09-24services: Add samba service.Simon Streit
* gnu/services/samba.scm: New file. * gnu/tests/samba.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. * po/guix/POTFILES.in Add 'gnu/services/samba.scm'. * doc/guix.texi: Document it. Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-09-24Revert "tests: telephony: Add extra packages to %jami-os for debugging."Maxim Cournoyer
This reverts commit 829c19142e62efa7ba9715fc682b4be959830b2e, as it broke 'guix pull'.
2022-09-23tests: jami-provisioning: Fix test derivation name.Maxim Cournoyer
* gnu/tests/telephony.scm (run-jami-test): Fix test derivation name.
2022-09-23tests: telephony: Add extra packages to %jami-os for debugging.Maxim Cournoyer
* gnu/tests/telephony.scm (make-jami-os): Add libjami:debug, gdb, guile, guile-ac-d-bus, guile-readline, guile-fibers, screen and strace. (run-jami-test)<jami service actions, ban/unban contacts>: Add (ice-9 match), for lambda-match (worked without it but needed when manually testing).
2022-09-08tests: dict: Increase VM memory-size.Mathieu Othacehe
* gnu/tests/dict.scm (run-dicod-test): Increase it to 1024 MiB.
2022-08-30tests: image: New test.Mathieu Othacehe
Add a new image test module to validate the image creation itself. The images structures are validated using guile-parted. Checking the content of those images is out of scope and should be performed in other modules (installation for instance). * gnu/tests/image.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2022-08-29gnu: Add missing copyright line.Marius Bakke
This is a follow-up to commit 3e0abde17be944153be57ab5faeefc645266d39d. * gnu/tests/virtualization.scm: Add copyright header for myself.
2022-08-29tests: libvirt: Ensure the default network can be started.Marius Bakke
* gnu/tests/virtualization.scm (run-libvirt-test): Run commands to create and start the default network.
2022-08-28services: Add lightdm-service-type.Maxim Cournoyer
* gnu/services/lightdm.scm: New service. * tests/services/lightdm.scm: Test it. * doc/guix.texi (X Window): Document it. * gnu/local.mk (GNU_SYSTEM_MODULES): Register it. Co-authored-by: L p R n d n <guix@lprndn.info> Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2022-08-28build: marionette: Add support for Tesseract OCR.Maxim Cournoyer
* gnu/build/marionette.scm (invoke-ocrad-ocr): New procedure. (invoke-tesseract-ocr): Likewise. (marionette-screen-text): Rename the #:ocrad argument to #:ocr. Dispatch the matching OCR invocation procedure. (wait-for-screen-text): Rename the #:ocrad argument to #:ocr. * gnu/tests/base.scm (run-basic-test): Adjust accordingly. * gnu/tests/install.scm (enter-luks-passphrase): Likewise. (enter-luks-passphrase-for-home): Likewise.
2022-08-28gnu: security: Add fail2ban-service-type.muradm
* gnu/services/security.scm: New module. * gnu/tests/security.scm: New module. * gnu/local.mk: Add new security module and tests. * doc/guix.text: Add fail2ban-service-type documentation. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-26gnu: greetd-service-type: Add supplementary groups to greeter.muradm
* gnu/services/base.scm (<greetd-configuration>) [greeter-supplementary-groups]: New field. (%greetd-accounts): Rename to... (greetd-accounts): ... this. Convert to a function that takes a config argument. Use greeter-supplementary-groups. (greetd-service-type): Adjust accordingly. * gnu/tests/desktop.scm (%minimal-services): Add test for greeter-supplementary-groups. * doc/guix.texi ("Base Services")[greetd-service-type]: Document greeter-supplementary-groups.
2022-08-26gnu: seatd-service-type: Use seat group.muradm
* gnu/services/desktop.scm (seatd-group-sanitizer): New variable. (<seatd-configuration>)[user]: Removed field. [group]: Changed to "seat". Sanitize via seatd-group-sanitizer. (seatd-accounts): New variable. (seatd-environment): Adjust to <seatd-configuration> ABI. (seatd-service-type)[extensions]: Add account-service-type with seatd-accounts. * gnu/tests/desktop.scm (run-minimal-desktop-test): Check for correct ownership of $SEATD_SOCK. * doc/guix.texi ("Desktop Services")[seatd-service-type]: Mention that users may need to become members of the "seat" group. Update default value for group field. Add explanation on seatd.sock file. Remove dropped user field.
2022-08-09tests: Add qemu-guest-agent system test.Timotej Lazar
Enable the QEMU guest agent interface in marionette VMs, run the qemu-guest-agent service in one and try talking to it. * gnu/build/marionette.scm (make-marionette): Enable the guest agent device. * gnu/tests/virtualization.scm (run-qemu-guest-agent-test): New procedure. (%test-qemu-guest-agent): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-08-09system: install: Always use 'current-guix'.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/53210>. Reported by Mathieu Othacehe <othacehe@gnu.org>. * gnu/system/install.scm (%installation-services): Set 'guix' to use (current-guix) in 'guix-configuration'. * gnu/system/examples/vm-image.tmpl: Likewise. * gnu/tests/install.scm (operating-system-with-current-guix): Remove. (run-install, installation-os-for-gui-tests): Remove its uses. * Makefile.am (release): Remove intermediate use of 'update-guix-package.scm' and subsequent 'git commit' invocation.
2022-08-01gnu: telephony: Add a Jami test for a partially defined jami-account.Maxim Cournoyer
* gnu/tests/telephony.scm (%dummy-jami-account-partial): New variable. (make-jami-os): Add a PARTIAL? argument and use it to select the jami-account variant to use. (%jami-os-provisioning-partial): New variable. (run-jami-test): Add a PARTIAL? argument, and use it to select operating system variant. Skip allowed-contacts and moderators test when PARTIAL? is true. (%test-jami-provisioning-partial): New test.
2022-07-15gnu: tests: Fix guix-data-service test.Timotej Lazar
Since revision 32, guix-data-service starts immediately but returns an HTTP error code until initialization is complete. Adjust the test accordingly, and remove the increased startup time limit. * gnu/services/guix.scm (guix-data-service): Use default #:pid-file-timeout. * gnu/tests/guix.scm (guix-data-service): Retry the http-get test several times to give the service time to initialize. Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-07-01image: Add default value for partition initializer.Ludovic Courtès
Previously, the default value would lead to a wrong-type-to-apply crash. * gnu/system/image.scm (system-disk-image)[image-builder]: When 'partition-initializer' returns #f, fall back to INITIALIZE-ROOT-PARTITION. * gnu/tests/base.scm (run-root-unmount-test)[test-image]: Remove 'initializer' field of partition. * gnu/image.scm (<partition>)[initializer]: Add comment.
2022-07-01services: root-file-system: Cleanly unmount upon shutdown.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56209>. Reported by angry rectangle <angryrectangle@cock.li>. * gnu/packages/admin.scm (shepherd-0.9)[modules, snippet]: New fields. * gnu/services/base.scm (%root-file-system-shepherd-service): In 'stop' method, remove 'call-with-blocked-asyncs'. When 'mount' throws to 'system-error, call (@ (fibers) sleep) and try again. * gnu/tests/base.scm (run-root-unmount-test): New procedure. (%test-root-unmount): New variable.
2022-06-24tests: ldap: Increase VM memory size.Timotej Lazar
With the default limit of 512 MB the test sometimes fails, in different ways. Fixes https://issues.guix.gnu.org/55206. * gnu/tests/ldap.scm (run-ldap-test): Increase memory size to 1024 MiB. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-06-24tests: docker: Relax marionette timeout.Maxim Cournoyer
The tests would otherwise fail on an old desktop. * gnu/tests/docker.scm (run-docker-test) <make-marionette>: Specify a timeout of 60 s. (run-docker-system-test) <make-marionette>: Likewise.
2022-06-17gnu: tests: Add seatd/greetd based minimal desktop system tests.muradm
* gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test Signed-off-by: Lars-Dominik Braun <ldb@leibniz-psychology.org>
2022-06-10services: jami: Modernize to adjust to Shepherd 0.9+ changes.Maxim Cournoyer
This partially fixes <https://issues.guix.gnu.org/54786>, allowing the 'jami' and 'jami-provisioning' system tests to pass again. In version 0.9.0, Shepherd constructors are now run concurrently, via cooperative scheduling (Guile Fibers). The Jami service previously relied on blocking sleeps while polling for D-Bus services to become ready after forking a process; this wouldn't work anymore since while blocking the service process wouldn't be given the chance to finish starting. The new reliance on Fibers in Shepherd's fork+exec-command in the helper 'send-dbus' procedure also meant that it wouldn't work outside of Shepherd anymore. Finally, the 'start-service' Shepherd procedure used in the test suite would cause the Jami daemon to be spawned multiple times (a bug introduced in Shepherd 0.9.0). To fix/simplify these problems, this change does the following: 1. Use the Guile AC/D-Bus library for D-Bus communication, which simplify things, such as avoiding the need to fork 'dbus-send' processes. 2. The non-blocking 'sleep' version of Fiber is used for the 'with-retries' waiting syntax. 3. A 'dbus' package variant is used to adjust the session bus configuration, tailoring it for the use case at hand. 4. Avoid start-service in the tests, preferring 'jami-service-available?' for now. * gnu/build/jami-service.scm (parse-dbus-reply, strip-quotes) (deserialize-item, serialize-boolean, dbus-dict->alist) (dbus-array->list, parse-account-ids, parse-account-details) (parse-contacts): Delete procedures. (%send-dbus-binary, %send-dbus-bus, %send-dbus-user, %send-dbus-group) (%send-dbus-debug): Delete parameters. (jami-service-running?): New procedure. (send-dbus/configuration-manager): Rename to... (call-configuration-manager-method): ... this. Turn METHOD into a positional argument. Turn ARGUMENTS into an optional argument. Invoke `call-dbus-method' instead of `send-dbus', adjusting callers accordingly. (get-account-ids, id->account-details, id->account-details) (id->volatile-account-details, username->id, add-account remove-account) (username->contacts, remove-contact, add-contact, set-account-details) (set-all-moderators, username->all-moderators?, username->moderators) (set-moderator): Adjust accordingly. (with-retries, send-dbus, dbus-available-services) (dbus-service-available?): Move to ... * gnu/build/dbus-service.scm: ... this new module. (send-dbus): Rewrite to use the Guile AC/D-Bus library. (%dbus-query-timeout, sleep*): New variables. (%current-dbus-connection): New parameter. (initialize-dbus-connection!, argument->signature-type) (call-dbus-method): New procedures. (dbus-available-services): Adjust accordingly. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new module. * gnu/packages/glib.scm (dbus-for-jami): New variable. * gnu/services/telephony.scm: (jami-configuration)[dbus]: Default to dbus-for-jami. (jami-dbus-session-activation): Write a D-Bus daemon configuration file at '/var/run/jami/session-local.conf'. (jami-shepherd-services): Add the closure of guile-ac-d-bus and guile-fibers as extensions. Adjust imported modules. Remove no longer used parameters. <jami-dbus-session>: Use a PID file, avoiding the need for the manual synchronization. <jami>: Set DBUS_SESSION_BUS_ADDRESS environment variable. Poll using 'jami-service-available?' instead of 'dbus-service-available?'. * gnu/tests/telephony.scm (run-jami-test): Add needed Guile extensions. Set DBUS_SESSION_BUS_ADDRESS environment variable. Adjust all tests to use 'jami-service-available?' to determine if the service is started rather than the now problematic Shepherd's 'start-service'.
2022-06-05tests: childhurd: Make sure "guix build -d" works.Ludovic Courtès
* gnu/tests/virtualization.scm (run-childhurd-test) ["guix-daemon up and running"]: New test.
2022-06-05tests: childhurd: Generalize command execution over SSH.Ludovic Courtès
* gnu/tests/virtualization.scm (run-childhurd-test)[run-uname-over-ssh]: Rename to... [run-command-over-ssh]: ... this. Add 'command' parameter and honor it. ["SSH up and running"]: Adjust accordingly.
2022-05-22services: openssh: Listen on both IPv4 and IPv6.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/55335>. Reported by Christopher Baines <mail@cbaines.net>. * gnu/services/ssh.scm (openssh-shepherd-service)[inetd-style?]: New variable. <start>: Use it. When using 'make-inetd-constructor', pass a list of endpoints as is possible with the Shepherd 0.9.1. <stop>: Adjust accordingly. * gnu/tests/ssh.scm (run-ssh-test)["wait for port 22"]: Rename to... ["wait for port 22, IPv4"]: ... this. ["wait for port 22, IPv6"]: New test.
2022-05-01services: bitlbee: Use 'make-inetd-constructor'.Ludovic Courtès
* gnu/services/messaging.scm (bitlbee-shepherd-service): Add call to 'least-authority-wrapper'. In 'start' method, use 'make-inetd-constructor' when available. * gnu/tests/messaging.scm (run-bitlbee-test)["valid PID"]: Remove test.
2022-05-01tests: Fix tailon test.Mathieu Othacehe
This is a follow-up of 73eeeeafbb0765f76834b53c9fe6cf3c8f740840. * gnu/tests/web.scm (run-tailon-test): Wait for the TCP port 8080 instead of relying on start-service. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-04-29tests: Avoid starting services to check whether they're running.Ludovic Courtès
Fixes a regression introduced in the Shepherd 0.9.0 whereby clients can start a service that is already being started, leading to two instances of the process (and usually failure of the second attempt to start it). Partly fixes <https://issues.guix.gnu.org/54786>. Reported by Mathieu Othacehe. * gnu/tests/version-control.scm (run-cgit-test) ["nginx running", "fcgiwrap running"]: Wail for a file/TCP port instead of starting the service. (run-git-http-test)["nginx running"]: Likewise. (run-gitile-test)["nginx running"]: Likewise.
2022-04-08tests: Add "encrypted-home-os" installation test.Ludovic Courtès
* gnu/tests/install.scm (%encrypted-home-os) (%encrypted-home-installation-script) (enter-luks-passphrase-for-home) (%test-encrypted-home-os): New variables.
2022-04-07services: openssh: Start as an inetd service.Ludovic Courtès
* gnu/services/ssh.scm (openssh-shepherd-service): Use 'make-inetd-constructor' when it is defined. (<openssh-configuration>)[max-connections]: New field. * gnu/tests/ssh.scm (run-ssh-test)["sshd PID"]: Adjust to cope with PID-FILE being #f. * gnu/tests/ssh.scm (%test-openssh): Pass #f as the 'pid-file' argument. * doc/guix.texi (Networking Services): Document 'max-connections'.
2022-03-19tests: install: Add two new Btrfs RAID10 install test.Maxim Cournoyer
* gnu/tests/install.scm (%btrfs-raid10-root-os) (%btrfs-raid10-root-os): New variables. (%btrfs-raid10-root-installation-script): Likewise. (%test-btrfs-raid10-root-images): Likewise. (%test-btrfs-raid10-root-os, %test-btrfs-raid10-root-os-degraded): New tests.