summary refs log tree commit diff
path: root/tests/services/linux.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-07-22 21:07:31 +0300
committerEfraim Flashner <efraim@flashner.co.il>2020-08-02 15:54:37 +0300
commit587e0d911dfff81647015e89847084b606e68f71 (patch)
tree63cd6575ccc64c18205f589f34badade4b804e8d /tests/services/linux.scm
parenta05edef2ac692be8bf3033fe008b7c1b29f83123 (diff)
downloadguix-587e0d911dfff81647015e89847084b606e68f71.tar.gz
services: Add zram-device-service.
* gnu/services/linux.scm (<zram-device-configuration>): New record.
(zram-device-service-type): New variable.
* doc/guix.texi (Linux Services): Document it.
* tests/services/linux.scm (zram-swap-device-test): New tests.
Diffstat (limited to 'tests/services/linux.scm')
-rw-r--r--tests/services/linux.scm37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/services/linux.scm b/tests/services/linux.scm
index 8ad119c49f..e2cd191e48 100644
--- a/tests/services/linux.scm
+++ b/tests/services/linux.scm
@@ -1,5 +1,6 @@
 ;;; 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.
 ;;;
@@ -54,4 +55,40 @@
         "-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")