summary refs log tree commit diff
path: root/gnu/tests
AgeCommit message (Collapse)Author
2018-07-03tests: basic: Wait for /var/run/shepherd/socket to be ready.Ludovic Courtès
* gnu/tests/base.scm (run-basic-test)["shepherd socket ready"]: New test.
2018-06-20services: boot: Take gexps instead of monadic gexps.Ludovic Courtès
* gnu/services.scm (compute-boot-script): Rename 'mexps' to 'gexps' and remove 'mlet' form. (boot-service-type): Update comment. (cleanup-gexp): Remove 'with-monad' and 'return'. (activation-script): Rewrite in non-monadic style: use 'scheme-file' instead of 'gexp->file'. (gexps->activation-gexp): Remove 'mlet', return a gexp. * gnu/services/shepherd.scm (shepherd-boot-gexp): Remove 'with-monad' and 'return'. * gnu/system.scm (operating-system-boot-script): Remove outdated comment. * gnu/tests/base.scm (%cleanup-os): For 'dirty-service', remove 'with-monad' and 'return'.
2018-06-20services: cleanup: Expect file names to be UTF-8-encoded.Ludovic Courtès
Fixes <https://bugs.gnu.org/26353>. Reported by Danny Milosavljevic <dannym@scratchpost.org>. * gnu/services.scm (cleanup-gexp): Add 'setenv' and 'setlocale' calls before 'delete-file-recursively'. * gnu/tests/base.scm (%cleanup-os, %test-cleanup): New variables. (run-cleanup-test): New procedure.
2018-06-13tests: Honor the return value of 'start-service'.Clément Lassieur
Since commit dc7b3e56337ee9d8dcd8fe7d5cab71ef536d024f, 'start-service' returns the Shepherd's representation of the service as a sexp, and '#f' if the service fails to start. Also, it doesn't throw an exception when the service fails to start, so relying on an exception instead of relying on its return value is a false positive. * gnu/tests/base.scm (run-nss-mdns-test): Split tests so to check the return value of 'start-service'. (run-mcron-test, run-nss-mdns-test): Use 'test-assert' with the return value of 'start-service'. * gnu/tests/admin.scm (run-tailon-test): Idem. * gnu/tests/dict.scm (run-dicod-test): Idem. * gnu/tests/mail.scm (run-opensmtpd-test, run-exim-test, run-dovecot-test): Idem. * gnu/tests/messaging.scm (run-xmpp-test, run-bitlbee-test): Idem. * gnu/tests/nfs.scm (run-nfs-test): Idem. * gnu/tests/rsync.scm (run-rsync-test): Idem. * gnu/tests/ssh.scm (run-ssh-test): Idem. * gnu/tests/version-control.scm (run-cgit-test, run-git-http-test): Idem. * gnu/tests/web.scm (run-php-fpm-test): Idem.
2018-06-01tests: ssh: Use 'with-extensions'.Ludovic Courtès
* gnu/tests/ssh.scm (run-ssh-test)[test]: Wrap body in 'with-extensions'. Remove %load-path manipulation code.
2018-06-01services: Add hpcguix-web.Rouby Pierre-Antoine
* gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. (%hpcguix-web-accounts): New variable. (%hpcguix-web-activation,hpcguix-web-shepherd-service, hpcguix-web-service-type): New procedures. * gnu/tests/web.scm (run-hpcguix-web-server-test): New procedure. (%hpcguix-web-specs, %hpcguix-web-os, %test-hpcguix-web): New variable. * doc/guix.texi (Web Services): Add 'hpcguix-web'. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2018-06-01marionette: Add 'wait-for-tcp-port'.Ludovic Courtès
* gnu/build/marionette.scm (wait-for-tcp-port): New procedure. * gnu/tests/dict.scm (run-dicod-test)["connect inside"]: Use it instead of the inline loop.
2018-05-28system: Remove uses of the 'title' field of <file-system>.Ludovic Courtès
* gnu/system/install.scm (installation-os): Remove uses of the 'title' field of 'file-system'; use 'file-system-label' as appropriate. * gnu/system/vm.scm (system-disk-image, system-qemu-image): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-extlinux-os) (%minimal-os-on-vda, %separate-home-os, %separate-store-os) (%raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise. * gnu/build/shepherd.scm (default-mounts)[tmpfs]: Likewise. * tests/guix-system.sh: Likewise. * tests/system.scm (%root-fs): Likewise. ("operating-system-boot-mapped-devices, implicit dependency"): Likewise.
2018-04-30services: Add modem-manager-service-type.Danny Milosavljevic
* gnu/services/networking.scm (modem-manager-service-type): New variable. (<modem-manager-configuration>): New variable. (modem-manager-configuration): New procedure. (modem-manager-configuration?): New procedure. * doc/guix.texi (Networking Services): Document it. * gnu/tests/networking.scm: Import (gnu services base).
2018-04-21services: Add dhcpd-service-type and <dhcpd-configuration>.Chris Marusich
* doc/guix.texi (Networking Services): Document it. * gnu/services/networking.scm (dhcpd-service-type): Add it. (dhcpd-configuration, dhcpd-configuration?): Add it. (dhcpd-configuration-package): Add it. (dhcpd-configuration-config-file): Add it. (dhcpd-configuration-version): Add it. (dhcpd-configuration-run-directory): Add it. (dhcpd-configuration-lease-file): Add it. (dhcpd-configuration-pid-file): Add it. (dhcpd-configuration-interfaces): Add it. * gnu/tests/networking.scm (minimal-dhcpd-v4-config-file) (dhcpd-v4-configuration, %dhcpd-os, run-dhcpd-test, %test-dhcpd): New variables.
2018-04-19gnu: mcron: Update to 1.1.1.Ludovic Courtès
Fixes <https://bugs.gnu.org/31113>. Reported by George myglc2 Clemmer <myglc2@gmail.com>. * gnu/packages/guile.scm (mcron): Update to 1.1.1. [arguments]: Change timezone in 'set-timezone' phase. Remove 'disable-schedule-test' and 'wrap-programs' phases. Add 'adjust-tests' phase. * gnu/tests/base.scm (%mcron-os): Change JOB1 to use the 'next-seconds' form.
2018-03-19gnu: mcron: Update to 1.1 and deprecate "mcron2".Ludovic Courtès
* gnu/packages/guile.scm (mcron): Update to 1.1. [native-inputs]: Add TZDATA-FOR-TESTS. [arguments]: New field. (mcron2): Define using 'deprecated-package'. * gnu/services/mcron.scm: Replace 'mcron2' with 'mcron'. * doc/guix.texi (Scheduled Job Execution): Likewise. * gnu/tests/base.scm (%mcron-os): Remove comment about mcron2.
2018-03-10tests: databases: Add a system test for PostgreSQL.Christopher Baines
* gnu/tests/databases.scm (%postgresql-os, %test-postgresql): New variables. (run-postgresql-test): New procedure.
2018-03-09tests: mail: Add test for dovecot.Oleg Pykhalov
* gnu/tests/mail.scm (%dovecot-os, %test-dovecot): New variables. (run-dovecot-test): New procedure.
2018-03-02system: Add 'initrd-modules' field.Ludovic Courtès
* gnu/system.scm (<operating-system>)[initrd-modules]: New field. (operating-system-initrd-file): Pass #:linux-modules to 'make-initrd'. * gnu/system/linux-initrd.scm (default-initrd-modules): New procedure. (%base-initrd-modules): New macro. (base-initrd): Add #:linux-modules and honor it. * gnu/system/install.scm (embedded-installation-os): Use 'initrd-modules' instead of 'initrd'. * gnu/tests/install.scm (%raid-root-os): Likewise. * doc/guix.texi (operating-system Reference): Add 'initrd-modules'. (Initial RAM Disk): Document it. Adjust example to not use #:extra-modules.
2018-02-28services: cgit: Add more configuration fields.Oleg Pykhalov
* gnu/services/version-control.scm (cgit-service-type): Move to separate file. * gnu/services/cgit.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add this. * gnu/tests/version-control.scm: Add this. * doc/guix.texi (Cgit Service): Document this.
2018-02-19tests: Remove outdated comment.Ludovic Courtès
* gnu/tests/base.scm (run-basic-test): Remove outdated comment.
2018-01-21services: Missing services are automatically instantiated.Ludovic Courtès
This simplifies OS configuration: users no longer need to be aware of what a given service depends on. See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00114.html>. * gnu/services.scm (missing-target-error): New procedure. (service-back-edges): Use it. (instantiate-missing-services): New procedure. * gnu/system.scm (operating-system-services): Call 'instantiate-missing-services'. * tests/services.scm ("instantiate-missing-services") ("instantiate-missing-services, no default value"): New tests. * gnu/services/version-control.scm (cgit-service-type)[extensions]: Add FCGIWRAP-SERVICE-TYPE. * gnu/tests/version-control.scm (%cgit-os): Remove NGINX-SERVICE-TYPE and FCGIWRAP-SERVICE-TYPE instances. * doc/guix.texi (Log Rotation): Remove 'mcron-service-type' in example. (Miscellaneous Services): Remove 'nginx-service-type' and 'fcgiwrap-service-type' in Cgit example.
2018-01-21tests: Cgit test waits for /var/run/shepherd/socket.Ludovic Courtès
Previously tests sometimes start before the shepherd was listening, leading to test failures. * gnu/tests/version-control.scm (run-cgit-test)[test]: Add "shepherd socket ready" test. Rename to two "service running" tests for clarity.
2018-01-17gnu: services: web: Add service for httpd.Christopher Baines
* gnu/services/web.scm (<httpd-module>, <httpd-config-file>, <httpd-virtualhost> <httpd-configuration>): New record types. (%default-httpd-modules, %httpd-accounts, httpd-service-type): New variables. (httpd-shepherd-services, httpd-activation, httpd-process-extensions): New procedures. * gnu/tests/web.scm (run-httpd-test): New procedure. (%httpd-os, %tests-httpd): New variables. * doc/guix.texi (Web Services): Document the Apache HTTP Server.
2018-01-17gnu: tests: web: Generalise the nginx test.Christopher Baines
So that it can also be used for other web servers. * gnu/tests/web.scm (%index.html-contents): Change nginx to guix. (%make-http-root): Move the index.html file from /srv to /srv/http. (%nginx-servers): Remove the setting of root. (run-nginx-test, run-webserver-test): Rename run-nginx-test to run-webserver-test and generalise its behaviour (%test-nginx): Change to use run-webserver-test, rather than run-nginx-test.
2018-01-15services: bitlbee: Add test.Ludovic Courtès
* gnu/tests/messaging.scm (run-bitlbee-test): New procedure. (%test-bitlbee): New variable.
2017-12-29tests: networking: Add tests for Open vSwitch.Marius Bakke
* gnu/tests/networking.scm (openvswitch-configuration-service, %openvswitch-os): New variables. (setup-openvswitch, run-openvswitch-test): New procedures. (%test-openvswitch): New public variable.
2017-12-19tests: Adjust php-fpm test to new nginx API.Ludovic Courtès
Fixes <https://bugs.gnu.org/29769>. Reported by Mark H Weaver <mhw@netris.org>. This is a followup to 8b223ceac4ff0781e95d69362875f87cff03f4d6. * gnu/tests/web.scm (%php-fpm-nginx-server-blocks): Turn 'listen' into a list.
2017-12-18services: nginx: Replace 'http-port' and 'https-port' with 'listen'.Clément Lassieur
* doc/guix.texi (Web Services, Version Control Services): Update accordingly. * gnu/services/certbot.scm (certbot-nginx-server-configurations): Likewise. * gnu/services/version-control.scm (%cgit-configuration-nginx): Likewise. * gnu/services/web.scm (<nginx-server-configuration>, emit-nginx-server-config): Likewise. * gnu/tests/version-control.scm (%cgit-configuration-nginx, %git-nginx-configuration): Likewise. * gnu/tests/web.scm (%nginx-servers, %php-fpm-nginx-server-blocks): Likewise.
2017-12-12gnu: services: Add php-fpm.nee
* gnu/services/web.scm (<php-fpm-configuration>, <php-fpm-process-manager-configuration>): New record types. (php-fpm-configuration?, php-fpm-process-manager-configuration?, php-fpm-service-type, nginx-php-location): New procedures. * doc/guix.texi (Web-Services): Document php-fpm service. * gnu/tests/web.scm: Add php-fpm system test. Signed-off-by: Christopher Baines <mail@cbaines.net>
2017-12-11services: web: Remove default certificate and key files for nginx.Christopher Baines
If nginx is configured with a ssl-certificate file, and ssl-certificate-key, it will fail to start unless these exist. To avoid this happening, change the default to #f. * gnu/services/web.scm (<nginx-server-configuration>) [ssl-certificate,ssl-certificate-key]: Set the defaults to #f. * gnu/tests/web.scm (%nginx-servers): Remove redundant nginx-server-configuration fields. * doc/guix.texi (Web Services): Update examples and documentation.
2017-12-06gnu, doc, tests: Use ‘bootloader-configuration’ everywhere.Tobias Geerinckx-Rice
* doc/guix.texi (Proceeding with the Installation): Replace the old-style ‘grub-configuration’ with the newer ‘bootloader-configuration’ syntax. * gnu/system/examples/vm-image.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda, %separate-home-os) (%separate-store-os, %raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise. * gnu/tests/nfs.scm (%base-os): Likewise. * tests/guix-system.scm (OS_BASE, make_user_config): Likewise. * tests/system.scm (%os, %os-with-mapped-device): Likewise.
2017-11-28tests: Add 'git-http' test.Ludovic Courtès
* gnu/tests/version-control.scm (%git-nginx-configuration) (%git-http-os, %test-git-http): New variables. (run-git-http-test): New procedure.
2017-11-28tests: cgit: Add a file to the test repository.Ludovic Courtès
* gnu/tests/version-control.scm (README-contents): New variable. (%make-git-repository): Add a 'README' file to the repo. (%test-repository-service): New variable. (%cgit-os): Use it. (run-cgit-test): Test /test/tree/README and /test/tree/does-not-exist.
2017-11-26tests: messaging: Enable Prosody DIGEST-MD5 auth mechanism.Clément Lassieur
GNU Freetalk doesn't support SCRAM-SHA-1. * gnu/tests/messaging.scm (%test-prosody): Override default disable-sasl-mechanisms value.
2017-11-15tests: install: Increase target-size.Oleg Pykhalov
1200 MiB are too small for a btrfs-root-os, thus let increase it. * gnu/tests/install.scm (run-install): Increase target-size to 2200 MiB. (%btrfs-root-installation-script): Increase my-root partition size to 2G.
2017-11-01tests: ssh: Make sure we can run executables from PATH.Marius Bakke
* gnu/tests/ssh.scm (run-ssh-test): Add tests for running commands in system and user profile.
2017-10-30tests: install: Estimate the installation system disk size.Hartmut Goebel
1500 MiB are too small for a current system, thus let system-disk-image estimate the required size. * gnu/tests/install.scm: (run-install): Pass "#:disk-image-size 'guess" to system-disk-image.
2017-10-08tests: databases: Add a simple test for MySQL.Christopher Baines
Previously, the activation phase for this service caused some systems using it to not boot. This test checks that it's possible to boot a system using it, and at least start the service. * gnu/tests/databases.scm (%mysql-os, %test-mysql): New variables. (run-mysql-test): New procedure.
2017-10-06services: Add MongoDB.Christopher Baines
* gnu/services/databases.scm (%default-mongodb-configuration-file, %mongodb-accounts, mongodb-service-type): New variables. (<mongodb-configuration>): New record type. (mongodb-activation, mongodb-shepherd-service): New procedures. * gnu/tests/databases.scm (%test-mongodb): New variable. * doc/guix.texi (Database Services): Add MongoDB documentation.
2017-10-03gnu: services: Add cgit.Oleg Pykhalov
* gnu/services/version-control.scm (<cgit-configuration-file>, <cgit-configuration>): New record types. (cgit-configuration-robots-string, cgit-activation, cgit-configuration-nginx-config): New procedures. (%cgit-configuration-nginx, cgit-service-type): New variables. * gnu/tests/version-control.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Version Control): Document the cgit service. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-09-26tests: install: Switch to modifying the gc-root-service-type.Ludovic Courtès
Fixes <https://bugs.gnu.org/28600>. Fixes a regression introduced in 4e854b1814a9216ae7cc90aef4d82fd989a519c3. Reported by Christopher Baines <mail@cbaines.net>. * gnu/tests/install.scm (operating-system-with-gc-roots): Use 'simple-service' to extend GC-ROOT-SERVICE-TYPE instead of instantiating it.
2017-09-26tests: mcron: Adjust use of 'wait-for-file'.Ludovic Courtès
Fixes a regression introduced in 8bd5231485cdeb02078c4294badb3a1e7caa0fe0, whereby returning #<eof> would no longer work (since #<eof> would be in the cdr of the result, and thus it would not get converted to a string.) * gnu/tests/base.scm (run-mcron-test)["root's job with command"]: Pass #:read to 'wait-for-file'.
2017-09-23gnu: Add rsync service.Oleg Pykhalov
* doc/guix.texi (Networking Services): Add rsync service documentation. * gnu/services/rsync.scm (<rsync-configuration>): New file. * gnu/tests/rsync.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new files. Signed-off-by: Christopher Baines <mail@cbaines.net>
2017-09-08tests: Fix incorrect use of 'file-append'.Ludovic Courtès
Fixes a regression introduced in fbc7b1f12561159e0ec3f6459d336f95cf2ce503. * gnu/tests/install.scm (run-install)[install]: Don't use 'file-append' with a string as its first argument; use a gexp with 'string-append' instead. Use a gexp instead of a list for "-cdrom IMG".
2017-09-08gnu: elogind: Use itself as the cgroup controller.Ludovic Courtès
Fixes a regression introduced in fa67d5654176b4b815832eaf259188e1486c65ab whereby elogind would fail to start with: Cannot determine cgroup we are running in: No data available Out of memory. thereby preventing log-in altogether. * gnu/packages/freedesktop.scm (elogind)[arguments]: Pass "--with-cgroup-controller=elogind". * gnu/tests/desktop.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2017-09-08marionette: 'wait-for-file' can be passed a read procedure.Ludovic Courtès
* gnu/build/marionette.scm (wait-for-file): Add #:read parameter and honor it. * gnu/tests/base.scm (run-basic-test)["login on tty1"]: Use 'wait-for-file' instead of inline code.
2017-09-06tests: Add test for installing from an ISO Image.Christopher Baines
* gnu/tests/install.scm (%test-iso-image-installer): New variable. (run-install): Add #:installation-disk-image-file-system-type as a keyword argument.
2017-08-28services: user-processes: Reap child processes.Ludovic Courtès
Fixes <http://bugs.gnu.org/26931>. Reported by Leo Famulari <leo@famulari.name>. * gnu/services/base.scm (user-processes-service-type)[stop]: Add 'reap-children' loop. * gnu/tests/base.scm (run-halt-test): New procedure. (%test-halt): New variable.
2017-08-26Merge branch 'core-updates'Marius Bakke
2017-08-23gnu: bootloader: Deprecate "device" field in favor of "target".Andy Wingo
* gnu/bootloader.scm (<bootloader-configuration>): Deprecate "device" field in favor of "target" field. This is mostly a renaming but also a generalization to support UEFI targets being paths to a mounted partition instead of a device name. * gnu/system/examples/bare-bones.tmpl: * gnu/system/examples/desktop.tmpl: * gnu/system/examples/lightweight-desktop.tmpl: * gnu/system/examples/vm-image.tmpl: * gnu/system/install.scm: * gnu/tests.scm: * gnu/tests/install.scm: * gnu/tests/nfs.scm: * tests/system.scm: Adapt all invocations of bootloader-configuration. * guix/scripts/system.scm (perform-action): Rename device argument to bootloader-target. (process-action): Adapt caller. * doc/guix.texi (Proceeding with the Installation): * doc/guix.texi (Bootloader Configuration): Update documentation.
2017-08-23tests: Add 'libvirt-service-type' test.Christopher Baines
* gnu/tests/virtualization.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2017-08-21Merge branch 'master' into core-updatesMarius Bakke
2017-08-15gnu: Fix memcached service startup.Christopher Baines
Memcached changes to the memcached user from root before writing the PID file. This means that it must be able to write the PID file as the memcached user. To make this work, create the /var/run/memcached directory when the service starts, make it owned by memcached, and change memcached to write the PID file to /var/run/memcached/pid. This wasn't picked up by the system test as the "service running" part was too permissive, and only failed on an error. Instead, test the response from calling start-service and check that the PID is a number. * gnu/services/databases.scm (memcached-activation): New variable. (memcached-shepherd-service): Change PID file location. (memcached-service-type): Extend the activation-service-type. * gnu/tests/databases.scm (run-memcached-test)[test]: Change the "service running" test to check the response from the shepherd.