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")
22-12-11 01:00:02 +0100'>2022-12-11gnu: nsd: Update to 4.6.1....Tobias Geerinckx-Rice 2022-12-11gnu: dnsmasq: Update to 2.88....Tobias Geerinckx-Rice 2022-12-11gnu: knot: Update to 3.2.4....Tobias Geerinckx-Rice 2022-11-27gnu: knot: Update to 3.2.3....Tobias Geerinckx-Rice 2022-11-23gnu: knot-resolver: Update to 5.5.3....Marius Bakke 2022-11-13gnu: bind: Update to 9.16.35....Tobias Geerinckx-Rice ref='/guix/commit/gnu/build?id=1300c316e9ab27ce042d41b3ebd6fad7e3c26efb'>gnu: ‘make-icecat-extension’ inherits package location....Ludovic Courtès 2023-11-19linux-boot: Don't create /root before it's used....Tobias Geerinckx-Rice 2023-10-23gnu: icecat: Support Guix packaged extensions and native manifests....Clément Lassieur 2023-10-15linux-modules: Fix module dependency loading....Tobias Geerinckx-Rice 2023-10-12accounts: Fix typo in comment....Ludovic Courtès 2023-10-08accounts: Ensure ‘last-change’ field of shadow entries is never zero....Ludovic Courtès 2023-10-01secret-service: Increase default handshake timeout....Ludovic Courtès 2023-10-01hurd-boot: Setup/dev/hdX, /dev/hdXsY IDE device node translators....Janneke Nieuwenhuizen 2023-08-20Revert "gnu: system: Add home-directory-permissions field to <user-account>."...Tobias Geerinckx-Rice 2023-08-25gnu: system: Add home-directory-permissions field to <user-account>....David Thompson 2023-07-19marionette: Allow passing custom OCR arguments....Bruno Victal 2023-07-13hurd-boot: Cater for netdde....Janneke Nieuwenhuizen 2023-07-13hurd-boot: Setup pci-arbiter and rumpdisk translators....Janneke Nieuwenhuizen 2023-06-14gnu: image: Add support for unformatted partitions....Efraim Flashner 2023-05-17hurd-boot: Symlink /hurd before setting up translators....Josselin Poiret 2023-05-06services: dbus-service, secret-service: Do not cause (fibers) to be loaded....Ludovic Courtès 2023-02-26file-systems: Validate 'no-diratime flag....Tobias Geerinckx-Rice