;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer ;;; Copyright © 2020 Efraim Flashner ;;; ;;; 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 (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") /a>...Previously, (ntfs-uuid->string (string->ntfs-uuid"5234ED0D34ECF53F")) would yield "5234EDD34ECF53F". Reported by sughosha in #guix. * gnu/system/uuid.scm (ntfs-uuid->string): Pad hex bytes with zero when needed. Tobias Geerinckx-Rice 2021-09-23uuid: Support XFS....* gnu/system/uuid.scm (string->xfs-uuid): New procedure. (%uuid-parsers, %uuid-printers): Add ‘xfs’ file system type. Tobias Geerinckx-Rice 2020-11-07uuid: Add support for bcachefs....* gnu/system/uuid.scm (string->bcachefs-uuid): New exported procedure. (%uuid-parsers, %uuid-printers): Add the ‘bcachefs’ file system type. Tobias Geerinckx-Rice 2020-07-26file-systems: Add NTFS support....* gnu/system/uuid.scm (%ntfs-endianness): New macro, (ntfs-uuid->string): new procedure, (%ntfs-endianness): new variable, (string->ntfs-uuid): new exported procedure, (%uuid-parsers): add NTFS support, (%uuid-printers): add NTFS support. * gnu/build/file-systems.scm (%ntfs-endianness): New macro, (ntfs-superblock?, read-ntfs-superblock, ntfs-superblock-uuid, check-ntfs-file-system): new procedure, (%partition-uuid-readers): add NTFS support, (check-file-system): add NTFS support. Mathieu Othacehe 2020-06-18uuid: Prevent a loop on invalid arguments....* gnu/system/uuid.scm (uuid=?): Use type predicates in the fallback case to prevent looping on invalid arguments. Maxim Cournoyer 2020-01-03uuid: Add support for JFS....* gnu/system/uuid.scm (string->jfs-uuid): New procedure. (%uuid-parsers, %uuid-printers): Add ‘jfs’ file system type. Tobias Geerinckx-Rice