diff options
Diffstat (limited to '')
-rw-r--r-- | testsuite/test9.pl | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/testsuite/test9.pl b/testsuite/test9.pl new file mode 100644 index 0000000..6281e59 --- /dev/null +++ b/testsuite/test9.pl @@ -0,0 +1,122 @@ +#!/usr/bin/perl -w + +# expect: +# - a new non-system group $groupname +# - readding the group fails +# - readding the group as a system group fails +# - a new system group $groupname +# - readding the group succeeds +# - readding the group as a non-system group fails + +use strict; + +use lib_test; + +my $error; +my $output; +my $groupname = find_unused_name(); +my $cmd = "addgroup $groupname"; + +if (!defined (getgrnam($groupname))) { + print "Testing (9.1) $cmd... "; + $output=`$cmd 2>&1`; + $error = ($?>>8); + if ($error) { + print "failed\n $cmd returned an errorcode != 0 ($error)\n"; + exit $error; + } + if ($output !~ /^Adding group `addusertest\d+' \(GID \d+\) ...\nDone\.\n$/) { + print "failed\n $cmd returned unexpected output ($output)\n"; + exit 1; + } + assert(check_group_exist ($groupname)); + + print "ok\n"; +} + +# now testing whether adding the group again fails as it should + +print "Testing (9.2) $cmd... "; +$output=`$cmd 2>&1`; +$error = ($?>>8); +if ($error ne 1) { + print "failed\n $cmd returned an errorcode != 1 ($error)\n"; + exit 1; +} +if ($output !~ /^addgroup: The group `addusertest\d+' already exists\.\n$/ ) { + print "failed\n $cmd returned unexpected output ($output)\n"; + exit 1; +} +print "ok\n"; + +# now testing whether adding the group again (as a system group) +# fails as it should (#405905) + +$cmd = "addgroup --system $groupname"; +print "Testing (9.3) $cmd... "; +$output=`$cmd 2>&1`; +$error = ($?>>8); +if ($error ne 1) { + print "failed\n $cmd returned an errorcode != 1 ($error)\n"; + exit $error; +} +if ($output !~ /^addgroup: The group `addusertest\d+' already exists and is not a system group. Exiting.$/ ) { + print "failed\n $cmd returned unexpected output ($output)\n"; + exit 1; +} +print "ok\n"; + +my $sysgroupname = find_unused_name(); +$cmd = "addgroup --system $sysgroupname"; + +if (!defined (getgrnam($sysgroupname))) { + print "Testing (9.4) $cmd... "; + $output=`$cmd 2>&1`; + $error = ($?>>8); + if ($error) { + print "failed\n $cmd returned an errorcode != 0 ($error)\n"; + exit $error; + } + if ($output !~ /^Adding group `addusertest\d+' \(GID \d+\) ...\nDone\.\n$/ ) { + print "failed\n $cmd returned unexpected output ($output)\n"; + exit 1; + } + assert(check_group_exist ($sysgroupname)); + + print "ok\n"; +} + +# now testing whether adding the group again passes as it should +# ("already exists as a system group") + +$cmd = "addgroup --system $sysgroupname" ; +print "Testing (9.5) $cmd... "; +$output=`$cmd 2>&1`; +$error = ($?>>8); +if ($error) { + print "failed\n $cmd returned an errorcode != 0 ($error)\n"; + exit $error; +} +if ($output !~ /^addgroup: 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 normal group) +# fails as it should + +$cmd = "addgroup $sysgroupname"; +print "Testing (9.6) $cmd... "; +$output=`$cmd 2>&1`; +$error = ($?>>8); +if ($error ne 1) { + print "failed\n $cmd returned an errorcode != 1 ($error)\n"; + exit 1; +} +if ($output !~ /^addgroup: The group `addusertest\d+' already exists\.$/ ) { + print "failed\n $cmd returned unexpected output ($output)\n"; + exit 1; +} +print "ok\n"; + |