[Pkg-shadow-devel] [Git][debian/adduser][master] 7 commits: fix logic error in assert_command_result_silent

Marc Haber (@zugschlus) gitlab at salsa.debian.org
Fri Mar 7 11:29:28 GMT 2025



Marc Haber pushed to branch master at Debian / adduser


Commits:
5a5e2fee by Marc Haber at 2025-03-06T21:08:25+01:00
fix logic error in assert_command_result_silent

Git-Dch: ignore

- - - - -
29fa2469 by Marc Haber at 2025-03-06T21:08:50+01:00
fix wrong expected commmand result for no primary GID

Git-Dch: ignore

- - - - -
9cb7eb46 by Marc Haber at 2025-03-07T09:30:08+01:00
fix misdetection of non-system accounts as system accounts

- - - - -
9a5e538e by Marc Haber at 2025-03-07T09:30:44+01:00
new group creation test

- - - - -
72fc8dbf by Marc Haber at 2025-03-07T09:30:56+01:00
adduser --system is now silent when account is already there

Git-Dch: ignore

- - - - -
6f4fab36 by Marc Haber at 2025-03-07T09:31:55+01:00
fixup! fix wrong expected commmand result for no primary GID

- - - - -
d3540575 by Marc Haber at 2025-03-07T09:32:34+01:00
re-work system_status.t

Git-Dch: ignore

- - - - -


6 changed files:

- adduser
- + debian/tests/f/group_creation.t
- debian/tests/f/system_status.t
- debian/tests/f/user_group.t
- debian/tests/lib/AdduserTestsCommon.pm
- testsuite/test9.pl


Changes:

=====================================
adduser
=====================================
@@ -1151,7 +1151,7 @@ sub existing_user_status {
         log_trace("egetpwnam %s returned successfully, uid = %s", $new_name, $uid);
         $ret |= EXISTING_FOUND;
         $ret |= EXISTING_ID_MISMATCH if (defined($new_uid) && $uid != $new_uid);
-        $ret |= EXISTING_SYSTEM if \
+        $ret |= EXISTING_SYSTEM if
             ($uid >= $config{"first_system_uid"} && $uid <= $config{"last_system_uid"});
     } elsif ($new_uid && getpwuid($new_uid)) {
         $ret |= EXISTING_ID_MISMATCH;
@@ -1179,7 +1179,7 @@ sub existing_group_status {
         log_trace("egetgrnam %s returned successfully, gid = %s", $new_name, $gid);
         $ret |= EXISTING_FOUND;
         $ret |= EXISTING_ID_MISMATCH if (defined($new_gid) && $gid != $new_gid);
-        $ret |= EXISTING_SYSTEM if \
+        $ret |= EXISTING_SYSTEM if
             ($gid >= $config{"first_system_gid"} && $gid <= $config{"last_system_gid"});
     } elsif ($new_gid && getgrgid($new_gid)) {
         $ret |= EXISTING_ID_MISMATCH;


=====================================
debian/tests/f/group_creation.t
=====================================
@@ -0,0 +1,94 @@
+#! /usr/bin/perl -Idebian/tests/lib
+
+# check group_creation functionality
+
+use diagnostics;
+use strict;
+use warnings;
+
+use AdduserTestsCommon;
+
+# how do I use a module from the package in question?
+#use AddgroupRetvalues;
+
+use constant RET_OK => 0;
+use constant RET_OBJECT_EXISTS => 11;
+use constant RET_WRONG_OBJECT_PROPERTIES => 13;
+
+my $usergid=40000;
+my $sysggid=400;
+my $test_name="test1";
+my $nextid;
+
+my @quiet=("--stdoutmsglevel=error", '--stderrmsglevel=error');
+
+# non-system group
+$test_name="test1";
+assert_command_success(
+    '/usr/sbin/addgroup', @quiet,
+    $test_name);
+assert_group_exists($test_name);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/addgroup', @quiet,
+    $test_name);
+assert_group_exists($test_name);
+
+# non-system group
+# with explicit --gid
+$test_name="test1-a";
+$usergid++;
+assert_command_success(
+    '/usr/sbin/addgroup', @quiet,
+    '--gid', "$usergid",
+    $test_name);
+assert_group_gid_exists($test_name,$usergid);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/addgroup', @quiet,
+    '--gid', "$usergid",
+    $test_name);
+assert_group_gid_exists($test_name,$usergid);
+$nextid=$usergid+1000;
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/addgroup', @quiet,
+    '--gid', "$nextid",
+    $test_name);
+assert_group_gid_exists($test_name,$usergid);
+
+# system group
+$test_name="systest1";
+assert_command_success(
+    '/usr/sbin/addgroup', @quiet,
+    '--system',
+    $test_name);
+assert_group_exists($test_name);
+assert_command_success(
+    '/usr/sbin/addgroup', @quiet,
+    '--system',
+    $test_name);
+assert_group_exists($test_name);
+
+# system group
+# with explicit --gid
+$test_name="systest1-a";
+$sysggid++;
+assert_command_success(
+    '/usr/sbin/addgroup', @quiet,
+    '--system',
+    '--gid', "$sysggid",
+    $test_name);
+assert_group_gid_exists($test_name,$sysggid);
+assert_command_success(
+    '/usr/sbin/addgroup', @quiet,
+    '--system',
+    '--gid', "$sysggid",
+    $test_name);
+assert_group_gid_exists($test_name,$sysggid);
+$nextid=$sysggid+1000;
+assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+    '/usr/sbin/addgroup', @quiet,
+    '--system',
+    '--gid', "$nextid",
+    $test_name);
+assert_group_gid_exists($test_name,$sysggid);
+
+# vim: tabstop=4 shiftwidth=4 expandtab


=====================================
debian/tests/f/system_status.t
=====================================
@@ -9,155 +9,688 @@ use warnings;
 
 use AdduserTestsCommon;
 
-my $name;
+# how do I use a module from the package in question?
+#use AdduserRetvalues;
 
+use constant RET_OK => 0;
+use constant RET_OBJECT_EXISTS => 11;
+use constant RET_OBJECT_DOES_NOT_EXIST => 12;
+use constant RET_WRONG_OBJECT_PROPERTIES => 13;
+use constant RET_NO_PRIMARY_GID => 23;
+
+
+my $name = "sys-stat-t";
+
+# we move through all possible transitions
+# number  existing before  operation        result       existing after
+# 11      nothing          create system    success      system
+# 12      system           create system    success      system
+# 13      system           delete system    success      nothing
+# 14      nothing          delete system    obj_not_ex   nothing
+# 15      nothing          delete nonsys    obj_not_ex   nothing
+# 21      nothing          create system    success      system
+# 22      system           create nonsys    obj_exists   system
+# 23      system           delete nonsys    wrong_prpo   system
+# 24      system           delete system    success      nothing
+# 31      nothing          create nonsys    success      nonsys
+# 32      nonsys           create nonsys    obj_exists   nonsys
+# 33      nonsys           delete sys       wrong_prop   nonsys
+# 34      nonsys           create sys       wrong_prop   nonsys
+# 35      nonsys           delete nonsys    success      nothing
+
+#         existing before  operation        number
+#         nothing          create sys       21, 11
+#         nothing          create non       31
+#         system           create sys       12
+#         system           create non       22
+#         nonsys           create sys       34
+#         nonsys           create non       32
+#         nothing          delete sys       14
+#         nothing          delete non       15
+#         system           delete sys       13, 24
+#         system           delete non       23
+#         nonsys           delete sys       33
+#         nonsys           delete non       35
+
+### USERS ###
+
+# number  existing before  operation        result       existing after
+# 11      nothing          create system    success      system
+assert_user_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 12      system           create system    success      system
+# above: assert_user_exists($name);
+# above: assert_user_is_system($name);
+assert_command_success(
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 13      system           delete system    success      nothing
+# above: assert_user_exists($name);
+# above: assert_user_is_system($name);
+assert_command_success(
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 14      nothing          delete system    obj_not_ex   nothing
+# above: assert_user_does_not_exist($name);
+assert_command_success(
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 15      nothing          delete nonsys    obj_not_ex   nothing
+# above: assert_user_does_not_exist($name);
+assert_command_result_silent(RET_OBJECT_DOES_NOT_EXIST,
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_user_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 21      nothing          create system    success      system
+# above: assert_user_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 22      system           create nonsys    obj_exists   system
+# above: assert_user_is_system($name);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--disabled-password',
+    '--no-create-home',
+    '--comment', '""',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 23      system           delete nonsys    wrong_prop   system
+# in adduser 3.145, this succeeds!
+# above: assert_user_is_system($name);
+#assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+assert_command_success(
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_user_does_not_exist($name);
+# recreate again so that the sequence can continue
+assert_command_success(
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 24      system           delete system    success      nothing
+# above: assert_user_is_system($name);
+assert_command_success(
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 31      nothing          create nonsys    success      nonsys
+# above: assert_user__does_not_exist($name);
+assert_command_success(
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--disabled-password',
+    '--no-create-home',
+    '--comment', '""',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 32      nonsys           create nonsys    obj_exists   nonsys
+# above: assert_user_exists($name);
+# above: assert_user_is_non_system($name);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--disabled-password',
+    '--no-create-home',
+    '--comment', '""',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 33      nonsys           delete sys       wrong_prop   nonsys
+# above: assert_user_exists($name);
+# above: assert_user_is_non_system($name);
+assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 34      nonsys           create sys       wrong_prop   nonsys
+# above: assert_user_exists($name);
+# above: assert_user_is_non_system($name);
+assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 35      nonsys           delete nonsys    success      nothing
+# above: assert_user_exists($name);
+# above: assert_user_is_non_system($name);
+assert_command_success(
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_user_does_not_exist($name);
+
+
+### GROUPS ###
+
+# number  existing before  operation        result       existing after
+# 11      nothing          create system    success      system
+assert_group_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 12      system           create system    success      system
+# above: assert_group_exists($name);
+# above: assert_group_is_system($name);
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 13      system           delete system    success      nothing
+# above: assert_group_exists($name);
+# above: assert_group_is_system($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 14      nothing          delete system    obj_not_ex   nothing
+# above: assert_group_does_not_exist($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 15      nothing          delete nonsys    obj_not_ex   nothing
+# above: assert_group_does_not_exist($name);
+assert_command_result_silent(RET_OBJECT_DOES_NOT_EXIST,
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_group_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 21      nothing          create system    success      system
+# above: assert_group_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 22      system           create nonsys    obj_exists   system
+# above: assert_group_is_system($name);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--disabled-password',
+    '--no-create-home',
+    '--comment', '""',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 23      system           delete nonsys    wrong_prop   system
+# in addgroup 3.145, this succeeds!
+# above: assert_group_is_system($name);
+#assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_group_does_not_exist($name);
+# recreate again so that the sequence can continue
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+# number  existing before  operation        result       existing after
+# 24      system           delete system    success      nothing
+# above: assert_group_is_system($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
+
+# number  existing before  operation        result       existing after
+# 31      nothing          create nonsys    success      nonsys
+# above: assert_group__does_not_exist($name);
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--disabled-password',
+    '--no-create-home',
+    '--comment', '""',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 32      nonsys           create nonsys    obj_exists   nonsys
+# above: assert_group_exists($name);
+# above: assert_group_is_non_system($name);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--disabled-password',
+    '--no-create-home',
+    '--comment', '""',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 33      nonsys           delete sys       wrong_prop   nonsys
+# above: assert_group_exists($name);
+# above: assert_group_is_non_system($name);
+assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 34      nonsys           create sys       wrong_prop   nonsys
+# above: assert_group_exists($name);
+# above: assert_group_is_non_system($name);
+assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_non_system($name);
+
+# number  existing before  operation        result       existing after
+# 35      nonsys           delete nonsys    success      nothing
+# above: assert_group_exists($name);
+# above: assert_group_is_non_system($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_group_does_not_exist($name);
+
+
+# following are the older tests. too lazy to remove at this moment
+# create system group, create system group => success
+$name="aussystat-g-cscs";
+assert_group_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+assert_command_success(
+    '/usr/sbin/delgroup', 
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
+
+# create system group, create non-system group => refusal
+$name="aussystat-g-csns";
+assert_group_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+assert_command_result_silent(RET_OBJECT_EXISTS,
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_does_not_exist($name);
 
 # create system group, delete system group
 $name="aussystat1";
 assert_group_does_not_exist($name);
 
-assert_command_success('/usr/sbin/addgroup',
+assert_command_success(
+    '/usr/sbin/addgroup',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_group_exists($name);
 assert_group_is_system($name);
-assert_command_success('/usr/sbin/addgroup',
+assert_command_success(
+    '/usr/sbin/addgroup',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_group_exists($name);
 assert_group_is_system($name);
 
-assert_command_success('/usr/sbin/delgroup', 
+assert_command_success(
+    '/usr/sbin/delgroup', 
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_group_does_not_exist($name);
-assert_command_success('/usr/sbin/delgroup',
+assert_command_success(
+    '/usr/sbin/delgroup',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_group_does_not_exist($name);
 
+# create non-system group, create non-system group => success
+# create non-system group, create system group => refusal
 # create non-system group, delete system group
 $name="aussystat2";
 assert_group_does_not_exist($name);
 
-assert_command_success('/usr/sbin/addgroup',
+assert_command_success(
+    '/usr/sbin/addgroup',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
-    $name);
+    $name
+);
 assert_group_exists($name);
 assert_group_is_non_system($name);
 
-assert_command_failure_silent('/usr/sbin/delgroup', 
+assert_command_failure_silent(
+    '/usr/sbin/delgroup', 
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_group_exists($name);
 assert_group_is_non_system($name);
-assert_command_success('/usr/sbin/delgroup',
+assert_command_success(
+    '/usr/sbin/delgroup',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
-    $name);
+    $name
+);
 assert_group_does_not_exist($name);
 
 # create system group, delete non-system group
-# that one fails in current adduser, see #1099606
-#$name="aussystat3";
-#assert_group_does_not_exist($name);
-#
-#assert_command_success('/usr/sbin/addgroup',
-#    '--stdoutmsglevel=error', '--stderrmsglevel=error',
-#    '--system',
-#    $name);
-#assert_group_exists($name);
-#assert_group_is_system($name);
-#
-#assert_command_failure_silent('/usr/sbin/delgroup', 
-#    '--stdoutmsglevel=error', '--stderrmsglevel=error',
-#    $name);
-#assert_group_exists($name);
-#assert_group_is_system($name);
-#assert_command_success('/usr/sbin/delgroup',
+$name="aussystat3";
+assert_group_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/addgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_group_exists($name);
+assert_group_is_system($name);
+
+# this delete operation succeeds in adduser 3.145
+# we are not sure whether this is correct behavior
+# discussion pending
+#assert_command_result_silent(RET_WRONG_OBJECT_PROPERTIES,
+#    '/usr/sbin/delgroup', 
 #    '--stdoutmsglevel=error', '--stderrmsglevel=error',
-#    $name);
-#assert_group_does_not_exist($name);
+#    $name
+#);
+assert_group_exists($name);
+assert_group_is_system($name);
+assert_command_success(
+    '/usr/sbin/delgroup',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_group_does_not_exist($name);
 
+# create system user, create system user => success
+# create system user, create non-system user => refusal
 # create system user, delete system user
 $name="aussystat4";
 assert_user_does_not_exist($name);
 
-assert_command_success('/usr/sbin/adduser',
+assert_command_success(
+    '/usr/sbin/adduser',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_user_exists($name);
 assert_user_is_system($name);
-assert_command_success('/usr/sbin/adduser',
+assert_command_success(
+    '/usr/sbin/adduser',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_user_exists($name);
 assert_user_is_system($name);
 
-assert_command_success('/usr/sbin/deluser', 
+assert_command_success(
+    '/usr/sbin/deluser', 
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_user_does_not_exist($name);
-assert_command_success('/usr/sbin/deluser',
+assert_command_success(
+    '/usr/sbin/deluser',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_user_does_not_exist($name);
 
+# create non-system user, create non-system user => success
+# create non-system user, create system user => refusal
 # create non-system user, delete system user
 $name="aussystat5";
 assert_user_does_not_exist($name);
 
-assert_command_success('/usr/sbin/adduser',
+assert_command_success(
+    '/usr/sbin/adduser',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--no-create-home',
     '--disabled-password',
-    '--comment', '',
-    $name);
+    '--comment', '""',
+    $name
+);
 assert_user_exists($name);
 assert_user_is_non_system($name);
 
-assert_command_failure_silent('/usr/sbin/deluser', 
+assert_command_failure_silent(
+    '/usr/sbin/deluser', 
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
     '--system',
-    $name);
+    $name
+);
 assert_user_exists($name);
 assert_user_is_non_system($name);
-assert_command_success('/usr/sbin/deluser',
+assert_command_success(
+    '/usr/sbin/deluser',
     '--stdoutmsglevel=error', '--stderrmsglevel=error',
-    $name);
+    $name
+);
 assert_user_does_not_exist($name);
 
 # create system user, delete non-system user
-# that one fails in current adduser, see #1099606
-#$name="aussystat6";
-#assert_user_does_not_exist($name);
-#
-#assert_command_success('/usr/sbin/adduser',
-#    '--stdoutmsglevel=error', '--stderrmsglevel=error',
-#    '--system',
-#    $name);
-#assert_user_exists($name);
-#assert_user_is_system($name);
-#
-#assert_command_failure_silent('/usr/sbin/deluser', 
-#    '--stdoutmsglevel=error', '--stderrmsglevel=error',
-#    '--no-create-home',
-#    '--disabled-password',
-#    '--comment', '',
-#    $name);
-#assert_user_exists($name);
-#assert_user_is_system($name);
-#assert_command_success('/usr/sbin/deluser',
-#    '--stdoutmsglevel=error', '--stderrmsglevel=error',
-#    $name);
-#assert_user_does_not_exist($name);
+$name="aussystat6";
+assert_user_does_not_exist($name);
+
+assert_command_success(
+    '/usr/sbin/adduser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--system',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+
+assert_command_failure_silent(
+    '/usr/sbin/deluser', 
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    '--no-create-home',
+    '--disabled-password',
+    '--comment', '""',
+    $name
+);
+assert_user_exists($name);
+assert_user_is_system($name);
+assert_command_success(
+    '/usr/sbin/deluser',
+    '--stdoutmsglevel=error', '--stderrmsglevel=error',
+    $name
+);
+assert_user_does_not_exist($name);
 
 # vim: tabstop=4 shiftwidth=4 expandtab


=====================================
debian/tests/f/user_group.t
=====================================
@@ -13,7 +13,9 @@ use AdduserTestsCommon;
 
 use constant RET_OK => 0;
 use constant RET_OBJECT_EXISTS => 11;
+use constant RET_OBJECT_DOES_NOT_EXIST => 12;
 use constant RET_WRONG_OBJECT_PROPERTIES => 13;
+use constant RET_NO_PRIMARY_GID => 23;
 
 
 my @quiet=("--stdoutmsglevel=error", '--stderrmsglevel=error');
@@ -2411,7 +2413,7 @@ $confhash{"USERGROUPS"}='no';
 $confhash{"USERS_GROUP"}='';
 $confhash{"USERS_GID"}=-1;
 apply_config_hash(\%confhash);
-assert_command_result_silent(RET_OBJECT_EXISTS,
+assert_command_result_silent(RET_NO_PRIMARY_GID,
     '/usr/sbin/adduser', @quiet,
     '--no-create-home',
     '--comment', '""',


=====================================
debian/tests/lib/AdduserTestsCommon.pm
=====================================
@@ -68,8 +68,8 @@ sub assert_command_result_silent {
     my $expected = shift;
     my $cmd = join(' ', @_);
     my $output = `$cmd >/dev/null 2>&1`;
-    my $ret = $? >> 8;
-    isnt($ret != $expected, 0, "command result $ret (expected $expected): @_");
+    my $ret = ($? >> 8);
+    is(($ret == $expected), 1, "command result $ret (expected $expected): @_");
 }
 
 sub assert_command_failure_silent {


=====================================
testsuite/test9.pl
=====================================
@@ -89,10 +89,6 @@ if ($error) {
   print "failed\n  $cmd returned an errorcode != 0 ($error)\n";
   exit $error;
 }
-if ($output !~ /^warn: The group `addusertest\d+' already exists as a system group\. Exiting\.\n$/ ) {
-  print "failed\n  $cmd returned unexpected output ($output)\n";
-  exit 1;
-}
 print "ok\n";
 
 # now testing whether adding the group again (as a regular group)



View it on GitLab: https://salsa.debian.org/debian/adduser/-/compare/67358f788014bfc59f6f4f2df7af1d5736857037...d3540575a33e1bbc395a80318e651b4747557ad6

-- 
View it on GitLab: https://salsa.debian.org/debian/adduser/-/compare/67358f788014bfc59f6f4f2df7af1d5736857037...d3540575a33e1bbc395a80318e651b4747557ad6
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-shadow-devel/attachments/20250307/e960247a/attachment-0001.htm>


More information about the Pkg-shadow-devel mailing list