Subject: [bug#54180] [PATCH 09/12] tests: Check 'guix home reconfigure' for a second generation.

From: Ludovic Courtès <[email-masked]>
Date: Sun, 27 Feb 2022 14:53:39 +0100

* tests/guix-home.sh: Invoke "guix home reconfigure" a second time with
a modify config file and check the result.
---
 tests/guix-home.sh | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/tests/guix-home.sh b/tests/guix-home.sh
index 3b397649cc..f054d15172 100644
--- a/tests/guix-home.sh
+++ b/tests/guix-home.sh
@@ -108,6 +108,7 @@ EOF
     # Make sure preexisting files were backed up.
     grep "overridden" "$HOME"/*guix-home*backup/.bashrc
     grep "overridden" "$HOME"/*guix-home*backup/.config/test.conf
+    rm -r "$HOME"/*guix-home*backup
 
     #
     # Test 'guix home describe'.
@@ -131,6 +132,28 @@ EOF
     }
     test "$(canonical_file_name)" == "$(readlink "${HOME}/.guix-home")"
 
+    #
+    # Configure a new generation.
+    #
+
+    # Change the bashrc snippet content and comment out one service.
+    sed -i "home.scm" -e's/the content of/the NEW content of/g'
+    sed -i "home.scm" -e"s/(simple-service 'test-config/#;(simple-service 'test-config/g"
+
+    guix home reconfigure "${test_directory}/home.scm"
+    test "$(tail -n 2 "${HOME}/.bashrc")" == "\
+# dot-bashrc test file for guix home
+# the NEW content of bashrc-test-config.sh"
+
+    # This file must have been removed and not backed up.
+    ! test -e "$HOME/.config/test.conf"
+    ! test -e "$HOME"/*guix-home*backup/.config/test.conf
+
+    test "$(cat "$(configuration_file)")" == "$(cat home.scm)"
+    test "$(canonical_file_name)" == "$(readlink "${HOME}/.guix-home")"
+
+    test $(guix home list-generations | grep "^Generation" | wc -l) -eq 2
+
     #
     # Test 'guix home search'.
     #
-- 
2.34.0