;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (test-workers) #:use-module (guix workers) #:use-module (ice-9 threads) #:use-module (srfi srfi-64)) (test-begin "workers") (test-equal "enqueue" 4242 (let* ((pool (make-pool)) (result 0) (1+! (let ((lock (make-mutex))) (lambda () (with-mutex lock (set! result (+ result 1))))))) (let loop ((i 4242)) (unless (zero? i) (pool-enqueue! pool 1+!) (loop (- i 1)))) (let poll () (unless (pool-idle? pool) (pk 'busy result) (sleep 1) (poll))) result)) ;; Same as above, but throw exceptions within the workers and make sure they ;; remain alive. (test-equal "exceptions" 4242 (let* ((pool (make-pool 10)) (result 0) (1+! (let ((lock (make-mutex))) (lambda () (with-mutex lock (set! result (+ result 1))))))) (let loop ((i 10)) (unless (zero? i) (pool-enqueue! pool (lambda () (throw 'whatever))) (loop (- i 1)))) (let loop ((i 4242)) (unless (zero? i) (pool-enqueue! pool 1+!) (loop (- i 1)))) (let poll () (unless (pool-idle? pool) (pk 'busy result) (sleep 1) (poll))) result)) (test-end) a30627d82bd53ab048410586d44ba1debc1d1010'>tests/networking.scm
AgeCommit message (Expand)Author
2019-10-30services: ntp: Ensure no double quotes are output to config file....* gnu/services/networking.scm (ntp-server->string): Use the textual representation of the values as printed by 'display' rather than 'write', to avoid inserting double quotes in the generated config. * tests/networking.scm (%ntp-server-sample): Add a comment and make one of the options a string, to exercise the fix. ("ntp-server->string"): Move the expected value to the first argument. ("ntp configuration servers deprecated form"): Likewise. ("openntpd generated config string ends with a newline"): Likewise. Maxim Cournoyer
2019-09-08services: openntpd: Add test for issue #3731....See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=37318. * gnu/services/networking.scm (openntpd-configuration->string): New procedure, extracted from top of the `openntpd-shepherd-service' to make it testable. (openntpd-shepherd-service): Adapt following the move of the code to the above procedure. * tests/networking.scm: Add a test for the `openntpd-configuration->string' procedure. Maxim Cournoyer
2019-09-08services: ntp: Support different NTP server types and options....* gnu/services/networking.scm (ntp-server-types): New enum. (<ntp-server>): New record type. (ntp-server->string): New procedure. (%ntp-servers): Define in terms of <htp-server> records. Use the first entrypoint server as a pool instead of a list of static servers. This is more resilient since a new server of the pool can be interrogated on every request. Add the 'iburst' options. (ntp-configuration-servers): Define a custom accessor that warns but honors the now deprecated server format. (<ntp-configuration>): Use it. (%openntpd-servers): New variable, (<openntpd-configuration>): Use it, as a pool ('servers' field) instead of a regular server. * tests/networking.scm: New file. * Makefile.am (SCM_TESTS): Register it. * doc/guix.texi: Update documentation. Maxim Cournoyer