aboutsummaryrefslogtreecommitdiff
path: root/tests/services/pam-mount.scm
blob: bfbd15967f5b43bfa134633f07974609cff11886 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Brian Cully <bjc@spork.org>
;;;
;;; 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 (tests services pam-mount)
  #:use-module (gnu services pam-mount)
  #:use-module (gnu system pam)
  #:use-module (gnu services)
  #:use-module (gnu services configuration)
  #:use-module (guix derivations)
  #:use-module (guix gexp)
  #:use-module (guix grafts)
  #:use-module (guix store)
  #:use-module (guix tests)
  #:use-module (ice-9 match)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-64))

(define pam-mount-volume-fields (@@ (gnu services pam-mount)
                                    pam-mount-volume-fields))
(define field-name->tag (@@ (gnu services pam-mount)
                            field-name->tag))

(define pam-mount-volume->sxml (@@ (gnu services pam-mount)
                                   pam-mount-volume->sxml))

(test-begin "services-pam-mount")

(test-group "field-name->tag"
  (let ((field-map '((user-name user)
                     (user-id uid)
                     (primary-group pgrp)
                     (group-id gid)
                     (secondary-group sgrp)
                     (file-system-type fstype)
                     (no-mount-as-root? noroot)
                     (server server)
                     (file-name path)
                     (mount-point mountpoint)
                     (options options)
                     (ssh? ssh)
                     (cipher cipher)
                     (file-system-key-cipher fskeycipher)
                     (file-system-key-hash fskeyhash)
                     (file-system-key-file-name fskeypath))))

    (test-equal "all fields accounted for"
      (map car field-map)
      (map configuration-field-name pam-mount-volume-fields))

    (for-each (match-lambda
                ((field-name tag-name)
                 (test-eq (format #f "~a -> ~a" field-name tag-name)
                   (field-name->tag field-name) tag-name)))
              field-map)))

(let ((tmpfs-volume (pam-mount-volume
                     (secondary-group "users")
                     (file-system-type "tmpfs")
                     (mount-point "/run/user/%(USERUID)")
                     (options "someoptions"))))
  (test-equal "tmpfs"
    '(volume (@ (sgrp "users")
                (fstype "tmpfs")
                (mountpoint "/run/user/%(USERUID)")
                (options "someoptions")))
    (pam-mount-volume->sxml tmpfs-volume)))

(test-end "services-pam-mount")
ues from 'package-path-entries' and augment %LOAD-COMPILED-PATH accordingly. Ludovic Courtès 2019-02-20Merge branch 'staging' into core-updatesMarius Bakke 2019-02-16packages: Remove duplicates from package cache....Previously the same package could appear several times if several variables were bound to it, as is notably the case for "python" currently. This, in turn, would lead to obnoxious "ambiguous package specification" messages. * gnu/packages.scm (generate-package-cache)[expand-cache]: Change RESULT to RESULT+SEEN and adjust accordingly. Call 'first' on the result of 'fold-module-public-variables*'. * tests/packages.scm ("fold-available-packages with/without cache"): Check for lack of duplicates in FROM-CACHE. Ludovic Courtès 2019-02-06Merge branch 'master' into core-updatesRicardo Wurmus 2019-01-15guix package: '--list-available' can use data from the cache....* gnu/packages.scm (fold-available-packages): New procedure. * guix/scripts/package.scm (process-query): Use it instead of 'fold-packages'. * tests/packages.scm ("fold-available-packages with/without cache"): New test. Ludovic Courtès 2019-01-15edit: Use 'specification->location' to read information from the cache....That way 'guix edit' doesn't need to load any package module. * gnu/packages.scm (find-package-locations, specification->location): New procedures. * guix/scripts/edit.scm (package->location-specification): Rename to... (location->location-specification): ... this. Expect a location object instead of a package. (guix-edit): Use 'specification->location' instead of 'specification->package'. * tests/packages.scm ("find-package-locations") ("find-package-locations with cache") ("specification->location"): New tests. Ludovic Courtès 2019-01-15channels: Compute a package cache and use it....* gnu/packages.scm (cache-is-authoritative?, load-package-cache) (cache-lookup, generate-package-cache): New procedures. (%package-cache-file): New variable. (find-packages-by-name): Rename to... (find-packages-by-name/direct): ... this. (find-packages-by-name): Rewrite to use the package cache when 'cache-is-authoritative?' returns true. * tests/packages.scm ("find-packages-by-name + version, with cache") ("find-packages-by-name with cache"): New tests. * guix/channels.scm (package-cache-file): New procedure. (%channel-profile-hooks): New variable. (channel-instances->derivation): Use it in #:hooks. * guix/scripts/package.scm (build-and-use-profile): Add #:hooks and honor it. * guix/scripts/pull.scm (build-and-install): Pass #:hooks to UPDATE-PROFILE. Ludovic Courtès 2019-01-15packages: Remove 'find-newest-available-packages'....Since commit 9ffc1c00e55eb7931846dbb3fafcf54716fff57c, 'find-newest-available-packages' and 'find-packages-by-name' were both building a vhash mapping package names to packages. This factorizes this bit, also reducing I/O, CPU, and memory usage. * gnu/packages.scm (find-best-packages-by-name): Remove. (find-best-packages-by-name): Use 'find-packages-by-name' instead of 'find-newest-available-packages'. Ludovic Courtès 2018-12-20gnu: Use i686-linux bootstrap binaries on x86_64-linux....This saves 4.4 MB on the installed Guix. * gnu/packages/bootstrap/x86_64-linux: Remove directory. * gnu/local.mk (bootstrap_x86_64_linuxdir) (dist_bootstrap_x86_64_linux_DATA): Remove. * gnu/packages.scm (search-bootstrap-binary): When SYSTEM is "x86_64-linux", use "i686-linux" instead. Ludovic Courtès 2018-09-02Add (guix describe) and use it to initialize '%package-search-path'....* guix/describe.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm (%default-package-module-path): New variable. (%package-module-path): Honor 'package-path-entries'. * build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH instead of (last (%package-module-path)). Ludovic Courtès 2018-05-13packages: 'find-packages-by-name' properly honors version prefixes....Fixes <https://bugs.gnu.org/28446>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/packages.scm (find-packages-by-name): Use 'version-prefix?' instead of 'string-prefix?'. Ludovic Courtès