From b8cbf635cc4dad9be860d4489ba8e9a308082c3d Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 24 Mar 2018 20:23:45 +0100 Subject: environment: Check configuration environment * tests/environment.scm ("current-environment-mods-copy: empty") ("current-environment-mods: init", "append-environment-mods: basic") ("append-environment-mods: twice", "clear-environment-mods: effect") ("current-environment-mods-copy: basic"): New tests. --- tests/environment.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) (limited to 'tests/environment.scm') diff --git a/tests/environment.scm b/tests/environment.scm index 1bc34a6..05ad3be 100644 --- a/tests/environment.scm +++ b/tests/environment.scm @@ -1,5 +1,5 @@ ;;;; environment.scm -- tests for (mcron environment) module -;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2016, 2018 Mathieu Lirzin ;;; ;;; This file is part of GNU Mcron. ;;; @@ -17,10 +17,63 @@ ;;; along with GNU Mcron. If not, see . (use-modules (srfi srfi-64) + (srfi srfi-111) (mcron environment)) (test-begin "environment") +;;; Check 'current-environment-mods' initial value which should be empty. +(test-equal "current-environment-mods: init" + '() + (unbox (@@ (mcron environment) %current-environment-mods))) + +;;; Check 'current-environment-mods-copy' with an empty environment +(test-assert "current-environment-mods-copy: empty" + (let* ((env (box '())) + (copy0 (get-current-environment-mods-copy #:environ env)) + (copy1 (get-current-environment-mods-copy #:environ env))) + (set! copy1 (assoc-set! copy1 "FOO" "BAR")) + (and (equal? '() (unbox env)) + (equal? '() copy0) + (equal? '(("FOO" . "BAR")) copy1)))) + +;;; Check 'current-environment-mods-copy' with a basic environment +(test-assert "current-environment-mods-copy: basic" + (let* ((init-env '(("a" . "1") ("b" . "2"))) + (env (box init-env)) + (copy0 (get-current-environment-mods-copy #:environ env)) + (copy1 (get-current-environment-mods-copy #:environ env))) + (set! copy1 (assoc-set! copy1 "c" "3")) + (and (equal? init-env (unbox env)) + (equal? init-env copy0) + (equal? `(("c" . "3") . ,init-env) copy1)))) + +;;; Check 'append-environment-mods' basic call +(test-equal "append-environment-mods: basic" + "BAR" + (let ((env (box '()))) + (append-environment-mods "FOO" "BAR" #:environ env) + (assoc-ref (unbox env) "FOO"))) + +;;; Check 'append-environment-mods' that when adding the same key twice the +;;; later is placed after the previous one. +(test-equal "append-environment-mods: twice" + '(("FOO" . "BAR") ("FOO" . "BAZ")) + (let ((env (box '()))) + (append-environment-mods "FOO" "BAR" #:environ env) + (append-environment-mods "FOO" "BAZ" #:environ env) + (unbox env))) + +;;; Check 'clear-environment-mods' side effect +(test-equal "clear-environment-mods: effect" + '() + (let ((env (box '()))) + (append-environment-mods "FOO" "BAR" #:environ env) + (append-environment-mods "FOO" "BAZ" #:environ env) + (clear-environment-mods #:environ env) + (unbox env))) + +;;; Check 'modify-environment' basic call (test-assert "modifiy-environment: basic" (begin (modify-environment '(("FOO" . "bar")) (getpw)) -- cgit v1.2.3