;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Fredrik Salomonsson ;;; ;;; 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 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") href='/guix/log/gnu/tests/linux-modules.scm?id=7b7b8c909bdfc3f281d6fd5f40784c46c795c014&showmsg=1'>Expand)Author 2021-05-31tests: Fix loadable-kernel-modules-service tests....* gnu/tests/linux-modules.scm (run-loadable-kernel-modules-service-test): Actually load the modules with kernel-module-loader-service-type. Use a singleton service instead of defining a custom one. * doc/guix.texi (Service Reference): To give an example of linux-loadable-module-service-type use a singleton instead of defining a new service. Brice Waegeneire 2021-05-11gnu: Allow services to install kernel-loadable modules....* gnu/system.scm (operating-system-directory-base-entries): Remove code to handle generation of "kernel" for linux-libre kernels. (operating-system-default-essential-services): Instantiate linux-builder-service-type. (package-for-kernel): Move ... * gnu/services.scm: ... to here. (linux-builder-service-type): New variable. (linux-builder-configuration): New type. (linux-loadable-module-service-type): New variable. * gnu/tests/linux-modules.scm (run-loadable-kernel-modules-test): Move code to ... (run-loadable-kernel-modules-test-base): ... new procedure here. (run-loadable-kernel-modules-service-test): New procedure. (%test-loadable-kernel-modules-service-0): New variable. (%test-loadable-kernel-modules-service-1): New variable. (%test-loadable-kernel-modules-service-2): New variable. * doc/guix.texi: Document linux-loadable-module-service-type. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> raid5atemyhomework 2020-04-22system: Automatically adjust linux-module packages to use the...operating-system's kernel. * gnu/system.scm (package-for-kernel): New procedure. (operating-system-directory-base-entries): Use it. * gnu/tests/linux-module.scm: Test it. Danny Milosavljevic 2020-04-05gnu: Add kernel-module-loader-service....* doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service-type): New type. (kernel-module-loader-shepherd-service): New procedure. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. [os]: Use 'kernel-module-loader-service'. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Brice Waegeneire 2020-03-22system: Add kernel-loadable-modules to operating-system....* gnu/system.scm (<operating-system>): Add kernel-loadable-modules. (operating-system-directory-base-entries): Use it. * doc/guix.texi (operating-system Reference): Document KERNEL-LOADABLE-MODULES. * gnu/build/linux-modules.scm (depmod): New procedure. (make-linux-module-directory): New procedure. Export it. * guix/profiles.scm (linux-module-database): New procedure. Export it. * gnu/tests/linux-modules.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/linux.scm (make-linux-libre*)[arguments]<#:phases>[install]: Disable depmod. Remove "build" and "source" symlinks. [native-inputs]: Remove kmod. Danny Milosavljevic version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Likewise. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> nikita