aboutsummaryrefslogtreecommitdiff
;;; 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")
tooltip'>* gnu/packages/cpp.scm (json-modern-cxx): Update to 3.9.1. [arguments]: Remove obsolete ‘fix-pkg-config-install’ phase. Tobias Geerinckx-Rice 2020-07-30gnu: json-modern-cxx: Update to 3.9.0....* gnu/packages/cpp.scm (json-modern-cxx): Update to 3.9.0. [arguments]: New field. [native-inputs]: Add "json_test_data" origin. Marius Bakke 2020-07-28gnu: xtl: Update to 0.6.15....* gnu/packages/cpp.scm (xtl): Update to 0.6.15. Tobias Geerinckx-Rice 2020-07-21gnu: Add chaiscript....* gnu/packages/cpp.scm (chaiscript): New variable. Signed-off-by: Marius Bakke <marius@gnu.org> Vinicius Monego 2020-07-12gnu: Remove ".git" from "https://github/…/….git"....Until now, 'lookup-origin' and thus 'lookup-origin-revision' in (guix swh) would sometimes return #f for these because the ".git" URLs are redirects to the non-".git" URLs. Consequently, 'guix lint -c archival' would keep saying "scheduled Software Heritage archival"; likewise, the fallback download code would fail. * gnu/packages/ada.scm, gnu/packages/admin.scm, gnu/packages/aidc.scm, gnu/packages/algebra.scm, gnu/packages/android.scm, gnu/packages/animation.scm, gnu/packages/arcan.scm, gnu/packages/assembly.scm, gnu/packages/audio.scm, gnu/packages/authentication.scm, gnu/packages/avr.scm, gnu/packages/axoloti.scm, gnu/packages/backup.scm, gnu/packages/bash.scm, gnu/packages/benchmark.scm, gnu/packages/bioconductor.scm, gnu/packages/bioinformatics.scm, gnu/packages/bittorrent.scm, gnu/packages/boost.scm, gnu/packages/build-tools.scm, gnu/packages/c.scm, gnu/packages/calendar.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/chemistry.scm, gnu/packages/chez.scm, gnu/packages/clojure.scm, gnu/packages/code.scm, gnu/packages/compression.scm, gnu/packages/compton.scm, gnu/packages/coq.scm, gnu/packages/cpp.scm, gnu/packages/cran.scm, gnu/packages/crypto.scm, gnu/packages/curl.scm, gnu/packages/databases.scm, gnu/packages/datastructures.scm, gnu/packages/debug.scm, gnu/packages/disk.scm, gnu/packages/distributed.scm, gnu/packages/django.scm, gnu/packages/dlang.scm, gnu/packages/dns.scm, gnu/packages/docker.scm, gnu/packages/education.scm, gnu/packages/efi.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/embedded.scm, gnu/packages/emulators.scm, gnu/packages/engineering.scm, gnu/packages/erlang.scm, gnu/packages/fabric-management.scm, gnu/packages/file-systems.scm, gnu/packages/finance.scm, gnu/packages/firmware.scm, gnu/packages/flashing-tools.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/fpga.scm, gnu/packages/game-development.scm, gnu/packages/games.scm, gnu/packages/genealogy.scm, gnu/packages/genimage.scm, gnu/packages/geo.scm, gnu/packages/gimp.scm, gnu/packages/gl.scm, gnu/packages/gnome-xyz.scm, gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm, gnu/packages/golang.scm, gnu/packages/gpodder.scm, gnu/packages/graph.scm, gnu/packages/graphics.scm, gnu/packages/graphviz.scm, gnu/packages/groff.scm, gnu/packages/groovy.scm, gnu/packages/gtk.scm, gnu/packages/guile-xyz.scm, gnu/packages/guile.scm, gnu/packages/hardware.scm, gnu/packages/haskell-apps.scm, gnu/packages/haskell-xyz.scm, gnu/packages/hexedit.scm, gnu/packages/i2p.scm, gnu/packages/ibus.scm, gnu/packages/image-processing.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/ipfs.scm, gnu/packages/java-graphics.scm, gnu/packages/java-maths.scm, gnu/packages/java.scm, gnu/packages/javascript.scm, gnu/packages/jrnl.scm, gnu/packages/julia.scm, gnu/packages/jupyter.scm, gnu/packages/kodi.scm, gnu/packages/language.scm, gnu/packages/lego.scm, gnu/packages/less.scm, gnu/packages/libusb.scm, gnu/packages/linux.scm, gnu/packages/lirc.scm, gnu/packages/lisp-xyz.scm, gnu/packages/llvm.scm, gnu/packages/logging.scm, gnu/packages/lolcode.scm, gnu/packages/lua.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/machine-learning.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/maths.scm, gnu/packages/maven.scm, gnu/packages/mes.scm, gnu/packages/messaging.scm, gnu/packages/monitoring.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/networking.scm, gnu/packages/node-xyz.scm, gnu/packages/ocaml.scm, gnu/packages/ocr.scm, gnu/packages/onc-rpc.scm, gnu/packages/opencl.scm, gnu/packages/opencog.scm, gnu/packages/pantheon.scm, gnu/packages/password-utils.scm, gnu/packages/patchutils.scm, gnu/packages/pdf.scm, gnu/packages/perl6.scm, gnu/packages/phabricator.scm, gnu/packages/popt.scm, gnu/packages/printers.scm, gnu/packages/prolog.scm, gnu/packages/protobuf.scm, gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/qt.scm, gnu/packages/radio.scm, gnu/packages/rails.scm, gnu/packages/rdf.scm, gnu/packages/rednotebook.scm, gnu/packages/rpc.scm, gnu/packages/rsync.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/screen.scm, gnu/packages/security-token.scm, gnu/packages/selinux.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/shellutils.scm, gnu/packages/simh.scm, gnu/packages/sml.scm, gnu/packages/ssh.scm, gnu/packages/statistics.scm, gnu/packages/stenography.scm, gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/synergy.scm, gnu/packages/telephony.scm, gnu/packages/terminals.scm, gnu/packages/tex.scm, gnu/packages/texinfo.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tmux.scm, gnu/packages/tor.scm, gnu/packages/toys.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/virtualization.scm, gnu/packages/vlang.scm, gnu/packages/vnc.scm, gnu/packages/vpn.scm, gnu/packages/web-browsers.scm, gnu/packages/web.scm, gnu/packages/wireservice.scm, gnu/packages/wm.scm, gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, tests/lint.scm: Remove trailing ".git" from 'git-reference' URL. Ludovic Courtès 2020-07-11gnu: gperftools: Update to 2.8....* gnu/packages/cpp.scm (gperftools): Update to 2.8. Tobias Geerinckx-Rice 2020-05-30gnu: abseil-cpp: Update to 20200225.2....* gnu/packages/cpp.scm (abseil-cpp): Update to 20200225.2. Tobias Geerinckx-Rice 2020-05-20gnu: ccls: Update to 0.20190823.6....* gnu/packages/cpp.scm (ccls): Update to 0.20190823.6. Tobias Geerinckx-Rice 2020-05-09gnu: cpplint: Update to 1.4.5....Fix build and update to 1.4.5. * gnu/packages/cpp.scm (cpplint): Update to 1.4.5, [native-inputs]: add python-pytest, python-pytest-cov, python-pytest-runner, [arguments]: add a new 'use-later-pytest phase to remove pytest version requirement. Mathieu Othacehe 2020-05-07gnu: Add pegtl....* gnu/packages/cpp.scm (pegtl): New variable. Brice Waegeneire 2020-04-10gnu: libzen: Update to 0.4.38....* gnu/packages/cpp.scm (libzen): Update to 0.4.38. [source]: Hard-code NAME. Tobias Geerinckx-Rice 2020-03-29gnu: xtl: Update to 0.6.13....* gnu/packages/cpp.scm (xtl): Update to 0.6.13. Tobias Geerinckx-Rice 2020-03-25gnu: abseil-cpp: Update to 20200225.1....* gnu/packages/cpp.scm (abseil-cpp): Update to 20200225.1. Ricardo Wurmus 2020-03-06Do not record store file name in cpp.scm....* gnu/packages/cpp.scm (abseil-cpp): Replace full store file name with '...' Vagrant Cascadian 2020-03-04gnu: Add abseil-cpp....* gnu/packages/cpp.scm (abseil-cpp): New variable. Signed-off-by: Pierre Neidhardt <mail@ambrevar.xyz> Roel Janssen 2020-02-23gnu: Add tweeny....* gnu/packages/cpp.scm (tweeny): New variable. nixo 2019-12-19gnu: catch-framework2: Update to 2.1.2....* gnu/packages/check.scm (catch-framework2): Update to 2.1.2. (catch-framework2-1): New variable. * gnu/packages/cpp.scm (fifo-map)[native-inputs]: Use catch-framework2-1. Ricardo Wurmus 2019-12-16Revert "gnu: ccls: Configure using -isystem for header files."...This reverts commit 2c82d4ad10de8e0ba462d81401385c5e7499f6e2. Brett Gilio 2019-12-16Revert "gnu: ccls: Adjust indentation"...This reverts commit 3c80b07a0b4a2f1c2702acd6896f94892c516709. Brett Gilio 2019-12-16gnu: ccls: Adjust indentation...* gnu/packages/cpp.scm (ccls): Adjust indentation. Brett Gilio 2019-12-16gnu: ccls: Configure using -isystem for header files....* gnu/packages/cpp.scm (ccls): Configure using -isystem for header files. [arguments]: Use GCC as a build input for preprocessing and searching GCC subdirectories, this provides better support for header file completion on runtime. [inputs]: Add ncurses for command-line support. Remove LLVM, it is not needed. [native-inputs]: Move rapidjson from inputs to native-inputs, add GCC. Brett Gilio 2019-12-04gnu: Remove duplicate nlohmann-json-cpp package....* gnu/packages/serialization.scm (nlohmann-json-cpp): Move variable ... * gnu/packages/cpp.scm (nlohmann-json-cpp): ... here. Mark as deprecated by JSON-MODERN-CXX. * gnu/packages/jupyter.scm (xeus)[inputs]: Change NLOHMANN-JSON-CPP to JSON-MODERN-CXX. * gnu/packages/video.scm (mkvtoolnix)[inputs]: Likewise. Marius Bakke 2019-12-02gnu: ccls: Update to 0.20190823.5....* gnu/packages/cpp.scm (ccls): Update to 0.20190823.5. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Brett Gilio 2019-12-01gnu: Add sobjectizer....* gnu/packages/cpp.scm (sobjectizer): New variable. Jan Wielkiewicz 2019-11-21gnu: json-modern-cxx: Update to 3.7.3....* gnu/packages/cpp.scm (json-modern-cxx): Update to 3.7.3. Marius Bakke 2019-11-15gnu: Add cpplint....* gnu/packages/cpp.scm (cpplint): New variable. Mathieu Othacehe 2019-11-03gnu: xtl: Update to 0.6.8....* gnu/packages/cpp.scm (xtl): Update to 0.6.8. Tobias Geerinckx-Rice 2019-10-22gnu: Add gperftools....* gnu/packages/cpp.scm (gperftools): New variable. Pierre Neidhardt 2019-10-12gnu: json-modern-cxx: Update to 3.7.0....* gnu/packages/cpp.scm (json-modern-cxx): Update to 3.7.0. [source](snippet): Adjust for new doctest requirement. [native-inputs]: Add DOCTEST. [inputs]: Remove CATCH-FRAMEWORK2. Marius Bakke 2019-10-01Merge branch 'master' into core-updatesLudovic Courtès 2019-09-28gnu: xtl: Update to 0.6.7....* gnu/packages/cpp.scm (xtl): Update to 0.6.7. Tobias Geerinckx-Rice 2019-09-26gnu: Add ccls....* gnu/packages/cpp.scm (ccls): New variable. Mathieu Othacehe