From 02be30544e7b5fcdfedae68864c77d6f9ed137fd Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Mon, 15 Dec 2025 12:42:46 +0100 Subject: [PATCH] tests/system/tests/test_groupmod.py: add test for groupmod -U with empty string Test verifies that groupmod -U '' correctly clears group membership. Signed-off-by: Iker Pedrosa --- tests/system/tests/test_groupmod.py | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/system/tests/test_groupmod.py b/tests/system/tests/test_groupmod.py index 999ddc0cb..6617602f5 100644 --- a/tests/system/tests/test_groupmod.py +++ b/tests/system/tests/test_groupmod.py @@ -38,3 +38,34 @@ def test_groupmod__change_gid(shadow: Shadow): assert gshadow_entry is not None, "Group should be found" assert gshadow_entry.name == "tgroup", "Incorrect groupname" assert gshadow_entry.password == "!", "Incorrect password" + + +@pytest.mark.topology(KnownTopology.Shadow) +def test_groupmod__u_option_empty_string_clears_members(shadow: Shadow): + """ + :title: Test groupmod -U option with empty user list + :setup: + 1. Create test group + :steps: + 1. Run groupmod with -U option and empty string parameter + 2. Verify group exists after operation + 3. Confirm group has no members + :expectedresults: + 1. groupmod -U '' command completes successfully + 2. Group entry remains valid and accessible + 3. Group member list is empty (no users assigned to group) + :customerscenario: False + """ + shadow.groupadd("tgroup") + shadow.groupmod("-U '' tgroup") + + group_entry = shadow.tools.getent.group("tgroup") + assert group_entry is not None, "Group should be found" + assert group_entry.name == "tgroup", "Incorrect groupname" + assert not group_entry.members, "Group should have no members" + + if shadow.host.features["gshadow"]: + gshadow_entry = shadow.tools.getent.gshadow("tgroup") + assert gshadow_entry is not None, "Group should be found" + assert gshadow_entry.name == "tgroup", "Incorrect groupname" + assert not gshadow_entry.members, "Group should have no members" -- 2.47.3