aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Fredrik Salomonsson <plattfot@posteo.net>
;;;
;;; 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 <http://www.gnu.org/licenses/>.


(define-module (test build-emacs-utils)
  #:use-module (guix tests)
  #:use-module (guix build emacs-utils)
  #:use-module (guix build utils)
  #:use-module ((guix utils)
                #:select (call-with-temporary-directory))
  #:use-module (ice-9 regex)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-64))

(test-begin "build-emacs-utils")
;; Only run the following tests if emacs is present.
(test-skip (if (which "emacs") 0 5))

(test-equal "emacs-batch-script: print foo from emacs"
  "foo"
  (emacs-batch-script '(princ "foo")))

(test-assert "emacs-batch-script: raise &emacs-batch-error on failure"
  (guard (c ((emacs-batch-error? c)
             ;; The error message format changed between Emacs 27 and Emacs
             ;; 28.
             (string-match "[Ww]rong.*argument.*numberp.*\"three\""
                           (emacs-batch-error-message c))))
    (emacs-batch-script '(mapcar 'number-to-string (list 1 2 "three")))))

(call-with-temporary-directory
 (lambda (directory)
   (let ((mock-elisp-file (string-append directory "/foo.el")))
     (call-with-output-file mock-elisp-file
       (lambda (port)
         (display ";;; foo --- mock emacs package -*- lexical-binding: t -*-

;; Created: 4 Jun 2022
;; Keywords: lisp test
;; Version: 1.0.0
;;; Commentary:
;;; Code:
;;; foo.el ends here
"
                  port)))
     (test-equal "emacs-header-parse: fetch version"
       "1.0.0"
       (emacs-header-parse "version" mock-elisp-file))
     (test-equal "emacs-header-parse: fetch keywords"
       "lisp test"
       (emacs-header-parse "keywords" mock-elisp-file))
     (test-equal "emacs-header-parse: fetch nonexistent author"
       "nil"
       (emacs-header-parse "author" mock-elisp-file)))))

(test-end "build-emacs-utils")
n fields are 'maybe-*' deliberately, to not disturb current users and not require supporting configuration changes for connmand. * gnu/services/networking.scm (<connman-general-configuration>): New configuration record to represent main.conf for connmand. (<connman-configuration>)[general-configuration]: New field. (connman-shepherd-service): Honor it. *doc/guix.texi (Networking Services): Add generated configuration. Change-Id: I5d78f49e8b2d5e0b3cbd7b8b604e8a254b6397e8 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> muradm 2023-12-22services: pagekite: Add ‘configuration’ action....* gnu/services/networking.scm (pagekite-shepherd-service): Add ‘actions’ field. Change-Id: I04daa846d505b0700b574a82472ecd99b492d7c4 Ludovic Courtès 2023-12-22services: pagekite: Use ‘least-authority-wrapper’....* gnu/services/networking.scm (pagekite-shepherd-service): Define ‘config-file’ and ‘mappings’; define ‘pagekite’ in terms of ‘least-authority-wrapper’. Remove now-unneeded ‘with-imported-modules’ form and ‘modules’ field. Use ‘make-forkexec-constructor’ instead of ‘make-forkexec-constructor/container’. Change-Id: I7c6c6266785f6a0f81a69d85f070779a0d6edd91 Ludovic Courtès 2023-10-20services: nftables: Tighten the default rules....Packets for local host IP ranges should be coming only over lo. If that is not the case, we should drop them. Use iif for the check instead of iifname, lo is guaranteed to exists, and iif is faster. * gnu/services/networking.scm (%default-nftables-ruleset): Tighten the rules. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Tomas Volf 2023-10-14services: dhcp-client-service-type: Support DDNS....* gnu/services/networking.scm (dhcp-client-shepherd-service): Enable -I flag on dhclient. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Lilah Tascheter 2023-09-22services: nftables: Add 'configuration' action....* gnu/services/networking.scm (nftables-shepherd-service)[actions]: New field. Marius Bakke 2023-09-17services: dhcp-client: Fix name of the provision accessor....This is a followup to 04f71edb73205d0bb82404de28a70ae17b897429. * gnu/services/networking.scm (<dhcp-client-configuration>)[shepherd-provision]: Fix accessor name. Ludovic Courtès 2023-09-17services: dhcp-client-configuration: Allow provision override....* gnu/services/networking.scm (<dhcp-client-configuration>)[shepherd-provision]: New field. (dhcp-client-shepherd-service): Honor it. * doc/guix.texi (Networking Setup): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Alexey Abramov 2023-09-08services: Open vSwitch: Depend on 'user-processes' target....* gnu/services/networking.scm (openvswitch-shepherd-service)[ovsdb](requirement): Add user-processes. Marius Bakke 2023-05-11services: inetd: Export accessors....* gnu/services/networking.scm: Export inetd-configuration?, inetd-configuration-program, inetd-configuration-entries, inetd-entry?, inetd-entry-node, inetd-entry-name, inetd-entry-socket-type, inetd-entry-protocol, inetd-entry-wait?, inetd-entry-user, inetd-entry-program and inetd-entry-arguments. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-05-11services: dhcp-client-configuration: Add 'shepherd-requirement' field....* gnu/services/networking.scm (<dhcp-client-configuration>) [shepherd-requirement]: New field. (dhcp-client-shepherd-service): Honor it. (dhcp-client-configuration-shepherd-requirement): Export accessor. * doc/guix.texi (Networking Setup): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sergey Trofimov