[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: tests: configuration: Add a test to cover 'unset
From: |
guix-commits |
Subject: |
branch master updated: tests: configuration: Add a test to cover 'unset regression. |
Date: |
Tue, 09 Aug 2022 23:16:45 -0400 |
This is an automated email from the git hooks/post-receive script.
apteryx pushed a commit to branch master
in repository guix.
The following commit(s) were added to refs/heads/master by this push:
new 97cb43e732 tests: configuration: Add a test to cover 'unset regression.
97cb43e732 is described below
commit 97cb43e732a38758c95b7caf3963507188d011cf
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Tue Aug 9 23:06:16 2022 -0400
tests: configuration: Add a test to cover 'unset regression.
The regression was introduced with a2b89a3319dc1d621c546855f578acae5baaf6da,
and introduce a risk that 'unset leaks to serialized configuration files.
* tests/services/configuration.scm (maybe-symbol): New type.
(config-with-maybe-symbol): New configuration.
("symbol maybe value serialization, unspecified"): New test.
Reported-by: Attila Lendvai <attila@lendvai.name>
---
tests/services/configuration.scm | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/tests/services/configuration.scm b/tests/services/configuration.scm
index 548c400bfe..649dad26e8 100644
--- a/tests/services/configuration.scm
+++ b/tests/services/configuration.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;;
@@ -141,6 +141,24 @@
(config-with-maybe-number
(port 42))))
+(define (serialize-symbol name value)
+ (format #f "~a=~a~%" name value))
+
+(define-maybe symbol)
+
+(define-configuration config-with-maybe-symbol
+ (protocol maybe-symbol ""))
+
+;;; Maybe symbol values are currently seen as serializable, because the
+;;; unspecified value is 'unset, which is a symbol itself.
+;;; TODO: Remove expected fail marker after resolution.
+(test-expect-fail 1)
+(test-equal "symbol maybe value serialization, unspecified"
+ ""
+ (gexp->approximate-sexp
+ (serialize-configuration (config-with-maybe-symbol)
+ config-with-maybe-symbol-fields)))
+
(define-maybe/no-serialization string)
(define-configuration config-with-maybe-string/no-serialization
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: tests: configuration: Add a test to cover 'unset regression.,
guix-commits <=