aboutsummaryrefslogtreecommitdiff
path: root/tests/services/linux.scm
blob: e2cd191e48d7013503391f2e7c2e2cddb1e1157c (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
84
85
86
87
88
89
90
91
92
93
94
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; 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 linux)
  #:use-module (ice-9 match)
  #:use-module (gnu packages linux)
  #:use-module (gnu services linux)
  #:use-module (guix gexp)
  #:use-module (srfi srfi-64))

;;; Tests for the (gnu services linux) module.

(test-begin "linux-services")


;;;
;;; Early OOM daemon.
;;;

(define earlyoom-configuration->command-line-args
  (@@ (gnu services linux) earlyoom-configuration->command-line-args))

(define %earlyoom-configuration-sample
  (earlyoom-configuration
   (minimum-available-memory 10)
   (minimum-free-swap 20)
   (prefer-regexp "icecat")
   (avoid-regexp "guix-daemon")
   (memory-report-interval 60)
   (ignore-positive-oom-score-adj? #f)
   (run-with-higher-priority? #t)
   (show-debug-messages? #f)
   (send-notification-command "python \"/some/path/notify-all-users.py\"")))

(test-equal "earlyoom-configuration->command-line-args"
  (list (file-append earlyoom "/bin/earlyoom")
        "-m" "10" "-s" "20" "--prefer" "icecat"
        "--avoid" "guix-daemon" "-r" "60" "-p"
        "-N" "python \"/some/path/notify-all-users.py\"")
  (earlyoom-configuration->command-line-args %earlyoom-configuration-sample))


;;;
;;; Zram swap device.
;;;

(define zram-device-configuration->udev-string
  (@@ (gnu services linux) zram-device-configuration->udev-string))

(define %zram-swap-device-test-1
  (zram-device-configuration
    (size "2G")
    (compression-algorithm 'zstd)
    (memory-limit "1G")
    (priority 42)))

(test-equal "zram-swap-device-test-1"
  "KERNEL==\"zram0\", ATTR{comp_algorithm}=\"zstd\" ATTR{disksize}=\"2G\" ATTR{mem_limit}=\"1G\" RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" RUN+=\"/run/current-system/profile/sbin/swapon --priority 42 /dev/zram0\"\n"
  (zram-device-configuration->udev-string %zram-swap-device-test-1))

(define %zram-swap-device-test-2
  (zram-device-configuration
    (size 1048576)  ; 1M
    (compression-algorithm 'lz4)))

(test-equal "zram-swap-device-test-2"
  "KERNEL==\"zram0\", ATTR{comp_algorithm}=\"lz4\" ATTR{disksize}=\"1048576\" RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" RUN+=\"/run/current-system/profile/sbin/swapon /dev/zram0\"\n"
  (zram-device-configuration->udev-string %zram-swap-device-test-2))

(define %zram-swap-device-test-3
  (zram-device-configuration
    (memory-limit (* 512 1000))))

(test-equal "zram-swap-device-test-3"
  "KERNEL==\"zram0\", ATTR{comp_algorithm}=\"lzo\" ATTR{disksize}=\"1G\" ATTR{mem_limit}=\"512000\" RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" RUN+=\"/run/current-system/profile/sbin/swapon /dev/zram0\"\n"
  (zram-device-configuration->udev-string %zram-swap-device-test-3))

(test-end "linux-services")
p'>* doc/contributing.texi: Switch to https for the link to contributor-covenant.org Reported-By: guix-vits on IRC Jakub Kądziołka 2020-02-22etc: Add copyright....* etc/copyright.el: New file. * doc/contributing.texi (The Perfect Setup): Document this. Oleg Pykhalov 2020-02-18doc: Document packaging guidelines for Rust crates....* doc/contributing.texi (Rust Crates): New section. Efraim Flashner 2020-01-19Use HTTPS for www.emacswiki.org....* doc/contributing.texi (The Perfect Setup): Use HTTPS for ParEdit wiki page. * gnu/packages/emacs-xyz.scm (emacs-wget, emacs-iedit)[home-page]: Use HTTPS. (emacs-transpose-frame)[source]: Likewise. Tobias Geerinckx-Rice 2020-01-09doc: Add a cooptation policy for commit access....* doc/contributing.texi (Commit Access): Draft a cooptation policy. Ludovic Courtès 2020-01-09doc: Encourage patch review....* doc/contributing.texi (Commit Access): Add note about patch review. Ludovic Courtès 2020-01-09doc: Move "Commit Access" section from 'HACKING' to the manual....* HACKING (Commit Access): Remove. (Contributing): Update URL of the manual. * doc/contributing.texi (Commit Access): New section. (Submitting Patches): Add cross reference. Ludovic Courtès 2020-01-09doc: Add "Tracking Bugs and Patches" section....* doc/contributing.texi (Tracking Bugs and Patches): New section. (Submitting Patches): Refer to it. * doc/guix.texi: Update copyright line. * HACKING (Using emacs-debbugs): Remove. Ludovic Courtès 2019-12-27doc: Mention "make authenticate"....* doc/contributing.texi (Building from Git): Add instructions to run 'git verify-commit' and 'make authenticate'. Ludovic Courtès 2019-12-13doc: Link to "Building from Git" instead of quoting command to build Guix....* doc/contributing.texi (Submitting Patches): Remove example. Add link to "Building from Git" section. Pierre Neidhardt 2019-12-08doc: Mention how to simulate a `guix pull' before submitting patches....* doc/contributing.texi (Submitting Patches): Mention the dummy guix pull command in the check list. Pierre Neidhardt 2019-12-08doc: Mention how to rebuild guix before submitting patches....* doc/contributing.texi (Submitting Patches): Mention rebuild command in the check list. Pierre Neidhardt 2019-11-09doc: Mention value /var to localstatedir option....* README (Installing Guix from Guix): Mention value /var to localstatedir option. * doc/contributing.texi (Building from Git): Likewise. * doc/guix.texi (Requirements): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun 2019-09-07doc: Use @lisp instead of @example for Scheme snippets....This is a followup to f8c143a7131d6f40f387f4cd2ad1fa78b5e2f429, which allows syntax highlighting of @lisp snippets in the HTML output. * doc/guix.texi, doc/contributing.texi: Use @lisp instead of @example for all the Scheme snippets. Ludovic Courtès 2019-07-17doc: Reorder and clarify contributing instructions....* doc/contributing.texi (Building from Git, Running Guix Before It Is Installed): Make instructions using Guix come first and clarify which code is an instruction and which is merely an example. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Florian Pelz 2019-07-15doc: note how to install git send-email...* doc/contributing.texi (git send-email): Add install instructions. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Arne Babenhauserheide 2019-06-29doc: Remove references to hydra.gnu.org....* doc/contributing.texi (Packaging Guidelines, Submitting Patches): Replace hydra URL with @value{SUBSTITUTE-SERVER}. * doc/guix.texi (Official Substitute Server): Remove ‘hydra’ @cindex. (Substitute Server Authorization): Remove note about hydra.gnu.org.pub. Tobias Geerinckx-Rice 2019-05-20doc: use pure environment when building from git...* doc/contributing.texi (Building from Git): Add --pure to "guix environment" invocations Signed-off-by: Ludovic Courtès <ludo@gnu.org> Giovanni Biscuolo 2019-03-24doc: Remove instances of powerpc-linux being a supported Guix architecture....* doc/contributing.texi (Submitting Patches): Remove powerpc-linux examples. * doc/guix.texi (Virtualization Services): Replace powerpc-linux example with mips64el-linux. Efraim Flashner 2019-02-04doc: Document how to enable qemu binfmt service and how to use it....* doc/contributing.texi (Submitting Patches): Document how to enable qemu binfmt service and how to use it. Co-authored-by: Ricardo Wurmus <rekado@elephly.net> Danny Milosavljevic