diff --git a/meson.build b/meson.build index 0a065fa3e5..3bec86db81 100644 --- a/meson.build +++ b/meson.build @@ -299,6 +299,7 @@ substs.set('CERTIFICATEROOT', get_option('certif substs.set('RANDOM_SEED', join_paths(randomseeddir, 'random-seed')) substs.set('SYSTEM_SYSVINIT_PATH', sysvinit_path) substs.set('SYSTEM_SYSVRCND_PATH', sysvrcnd_path) +substs.set('SYSTEMD_TEST_DATA', join_paths(testsdir, 'testdata')) substs.set('RC_LOCAL_PATH', get_option('rc-local')) substs.set('MEMORY_ACCOUNTING_DEFAULT', memory_accounting_default ? 'yes' : 'no') substs.set('STATUS_UNIT_FORMAT_DEFAULT', status_unit_format_default) @@ -1468,6 +1469,8 @@ foreach term : ['analyze', conf.set10(name, have) endforeach +enable_sysusers = conf.get('ENABLE_SYSUSERS') == 1 + foreach tuple : [['nss-mymachines', 'machined'], ['nss-resolve', 'resolve']] want = get_option(tuple[0]) @@ -2962,8 +2965,8 @@ public_programs += executable( install_rpath : rootlibexecdir, install : true) -if conf.get('ENABLE_SYSUSERS') == 1 - public_programs += executable( +if enable_sysusers + exe = executable( 'systemd-sysusers', 'src/sysusers/sysusers.c', include_directories : includes, @@ -2971,9 +2974,17 @@ if conf.get('ENABLE_SYSUSERS') == 1 install_rpath : rootlibexecdir, install : true, install_dir : rootbindir) + public_programs += exe + + if want_tests != 'false' + test('test-sysusers', + test_sysusers_sh, + # https://github.com/mesonbuild/meson/issues/2681 + args : exe.full_path()) + endif if have_standalone_binaries - public_programs += executable( + exe = executable( 'systemd-sysusers.standalone', 'src/sysusers/sysusers.c', include_directories : includes, @@ -2984,6 +2995,14 @@ if conf.get('ENABLE_SYSUSERS') == 1 libjournal_client], install : true, install_dir : rootbindir) + public_programs += exe + + if want_tests != 'false' + test('test-sysusers.standalone', + test_sysusers_sh, + # https://github.com/mesonbuild/meson/issues/2681 + args : exe.full_path()) + endif endif endif diff --git a/sysusers.d/meson.build b/sysusers.d/meson.build index eb99957e2f..146f922bed 100644 --- a/sysusers.d/meson.build +++ b/sysusers.d/meson.build @@ -2,8 +2,6 @@ in_files = ['basic.conf'] -enable_sysusers = conf.get('ENABLE_SYSUSERS') == 1 - foreach file : in_files gen = configure_file( input : file + '.in', diff --git a/test/TEST-21-SYSUSERS/Makefile b/test/TEST-21-SYSUSERS/Makefile deleted file mode 120000 index e9f93b1104..0000000000 --- a/test/TEST-21-SYSUSERS/Makefile +++ /dev/null @@ -1 +0,0 @@ -../TEST-01-BASIC/Makefile \ No newline at end of file diff --git a/test/TEST-21-SYSUSERS/test.sh b/test/TEST-21-SYSUSERS/test.sh deleted file mode 100755 index 3b37f7eaa6..0000000000 --- a/test/TEST-21-SYSUSERS/test.sh +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env bash -set -e -TEST_DESCRIPTION="Sysuser-related tests" -IMAGE_NAME="sysusers" -. $TEST_BASE_DIR/test-functions - -test_setup() { - mkdir -p $TESTDIR/etc/sysusers.d $TESTDIR/usr/lib/sysusers.d $TESTDIR/tmp -} - -prepare_testdir() { - rm -f $TESTDIR/etc/*{passwd,group,shadow} - for i in $1.initial-{passwd,group,shadow}; do - test -f $i && cp $i $TESTDIR/etc/${i#*.initial-} - done - return 0 -} - -preprocess() { - in="$1" - - # see meson.build how to extract this. gcc -E was used before to - # get this value from config.h, however the autopkgtest fails with - # it - [[ -e /etc/login.defs ]] && login_defs_file="/etc/login.defs" || login_defs_file="/usr/etc/login.defs" - SYSTEM_UID_MAX=$(awk 'BEGIN { uid=999 } /^\s*SYS_UID_MAX\s+/ { uid=$2 } END { print uid }' $login_defs_file) - SYSTEM_GID_MAX=$(awk 'BEGIN { gid=999 } /^\s*SYS_GID_MAX\s+/ { gid=$2 } END { print gid }' $login_defs_file) - - # we can't rely on config.h to get the nologin path, as autopkgtest - # uses pre-compiled binaries, so extract it from the systemd-sysusers - # binary which we are about to execute - NOLOGIN=$(strings $(type -p systemd-sysusers) | grep nologin) - - sed -e "s/SYSTEM_UID_MAX/${SYSTEM_UID_MAX}/g" \ - -e "s/SYSTEM_GID_MAX/${SYSTEM_GID_MAX}/g" \ - -e "s#NOLOGIN#${NOLOGIN}#g" "$in" -} - -compare() { - if ! diff -u $TESTDIR/etc/passwd <(preprocess ${1%.*}.expected-passwd); then - echo "**** Unexpected output for $f" - exit 1 - fi - - if ! diff -u $TESTDIR/etc/group <(preprocess ${1%.*}.expected-group); then - echo "**** Unexpected output for $f $2" - exit 1 - fi -} - -test_run() { - # ensure our build of systemd-sysusers is run - PATH=${BUILD_DIR}:$PATH - - rm -f $TESTDIR/etc/sysusers.d/* $TESTDIR/usr/lib/sysusers.d/* - - # happy tests - for f in test-*.input; do - echo "*** Running $f" - prepare_testdir ${f%.input} - cp $f $TESTDIR/usr/lib/sysusers.d/test.conf - systemd-sysusers --root=$TESTDIR - - compare $f "" - done - - for f in test-*.input; do - echo "*** Running $f on stdin" - prepare_testdir ${f%.input} - touch $TESTDIR/etc/sysusers.d/test.conf - cat $f | systemd-sysusers --root=$TESTDIR - - - compare $f "on stdin" - done - - for f in test-*.input; do - echo "*** Running $f on stdin with --replace" - prepare_testdir ${f%.input} - touch $TESTDIR/etc/sysusers.d/test.conf - # this overrides test.conf which is masked on disk - cat $f | systemd-sysusers --root=$TESTDIR --replace=/etc/sysusers.d/test.conf - - # this should be ignored - cat test-1.input | systemd-sysusers --root=$TESTDIR --replace=/usr/lib/sysusers.d/test.conf - - - compare $f "on stdin with --replace" - done - - # test --inline - echo "*** Testing --inline" - prepare_testdir - # copy a random file to make sure it is ignored - cp $f $TESTDIR/etc/sysusers.d/confuse.conf - systemd-sysusers --root=$TESTDIR --inline \ - "u u1 222 - - /bin/zsh" \ - "g g1 111" - - compare inline "(--inline)" - - # test --replace - echo "*** Testing --inline with --replace" - prepare_testdir - # copy a random file to make sure it is ignored - cp $f $TESTDIR/etc/sysusers.d/confuse.conf - systemd-sysusers --root=$TESTDIR \ - --inline \ - --replace=/etc/sysusers.d/confuse.conf \ - "u u1 222 - - /bin/zsh" \ - "g g1 111" - - compare inline "(--inline --replace=…)" - - rm -f $TESTDIR/etc/sysusers.d/* $TESTDIR/usr/lib/sysusers.d/* - - # tests for error conditions - for f in unhappy-*.input; do - echo "*** Running test $f" - prepare_testdir ${f%.input} - cp $f $TESTDIR/usr/lib/sysusers.d/test.conf - systemd-sysusers --root=$TESTDIR 2>&1 | tail -n1 > $TESTDIR/tmp/err - if ! diff -u $TESTDIR/tmp/err ${f%.*}.expected-err; then - echo "**** Unexpected error output for $f" - cat $TESTDIR/tmp/err - exit 1 - fi - done -} - -do_test "$@" diff --git a/test/meson.build b/test/meson.build index 5d9fb5ab50..5656abdf72 100644 --- a/test/meson.build +++ b/test/meson.build @@ -58,6 +58,21 @@ test_network_generator_conversion_sh = find_program('test-network-generator-conv ############################################################ +test_sysusers_dir = join_paths(meson.current_source_dir(), 'test-sysusers') + +test_sysusers_sh = configure_file( + input : 'test-sysusers.sh.in', + output : 'test-sysusers.sh', + configuration : substs) +if install_tests and conf.get('ENABLE_SYSUSERS') == 1 + install_data(test_sysusers_sh, + install_dir : testsdir) + install_subdir('test-sysusers', + install_dir : testdata_dir) +endif + +############################################################ + rule_syntax_check_py = find_program('rule-syntax-check.py') if want_tests != 'false' test('rule-syntax-check', diff --git a/test/test-sysusers.sh.in b/test/test-sysusers.sh.in new file mode 100755 index 0000000000..ac07c2145b --- /dev/null +++ b/test/test-sysusers.sh.in @@ -0,0 +1,111 @@ +#!/usr/bin/env bash +set -e + +SYSUSERS="${1:-systemd-sysusers}" + +[ -e "$(dirname $0)/../systemd-runtest.env" ] && . "$(dirname $0)/../systemd-runtest.env" +SYSTEMD_TEST_DATA=${SYSTEMD_TEST_DATA:-@SYSTEMD_TEST_DATA@} +SOURCE=$SYSTEMD_TEST_DATA/test-sysusers + +TESTDIR=$(mktemp --tmpdir --directory "test-sysusers.XXXXXXXXXX") +trap "rm -rf '$TESTDIR'" EXIT INT QUIT PIPE + +prepare_testdir() { + mkdir -p $TESTDIR/etc/sysusers.d/ + mkdir -p $TESTDIR/usr/lib/sysusers.d/ + rm -f $TESTDIR/etc/*{passwd,group,shadow} + for i in $1.initial-{passwd,group,shadow}; do + test -f $i && cp $i $TESTDIR/etc/${i#*.initial-} + done + return 0 +} + +preprocess() { + sed -e "s/SYSTEM_UID_MAX/@SYSTEM_UID_MAX@/g" \ + -e "s/SYSTEM_GID_MAX/@SYSTEM_GID_MAX@/g" \ + -e "s#NOLOGIN#@NOLOGIN@#g" "$1" +} + +compare() { + if ! diff -u $TESTDIR/etc/passwd <(preprocess ${1%.*}.expected-passwd); then + echo "**** Unexpected output for $f" + exit 1 + fi + + if ! diff -u $TESTDIR/etc/group <(preprocess ${1%.*}.expected-group); then + echo "**** Unexpected output for $f $2" + exit 1 + fi +} + +rm -f $TESTDIR/etc/sysusers.d/* $TESTDIR/usr/lib/sysusers.d/* + +# happy tests +for f in $SOURCE/test-*.input; do + echo "*** Running $f" + prepare_testdir ${f%.input} + cp $f $TESTDIR/usr/lib/sysusers.d/test.conf + $SYSUSERS --root=$TESTDIR + + compare $f "" +done + +for f in $SOURCE/test-*.input; do + echo "*** Running $f on stdin" + prepare_testdir ${f%.input} + touch $TESTDIR/etc/sysusers.d/test.conf + cat $f | $SYSUSERS --root=$TESTDIR - + + compare $f "on stdin" +done + +for f in $SOURCE/test-*.input; do + echo "*** Running $f on stdin with --replace" + prepare_testdir ${f%.input} + touch $TESTDIR/etc/sysusers.d/test.conf + # this overrides test.conf which is masked on disk + cat $f | $SYSUSERS --root=$TESTDIR --replace=/etc/sysusers.d/test.conf - + # this should be ignored + cat $SOURCE/test-1.input | $SYSUSERS --root=$TESTDIR --replace=/usr/lib/sysusers.d/test.conf - + + compare $f "on stdin with --replace" +done + +# test --inline +echo "*** Testing --inline" +prepare_testdir +# copy a random file to make sure it is ignored +cp $f $TESTDIR/etc/sysusers.d/confuse.conf +$SYSUSERS --root=$TESTDIR --inline \ + "u u1 222 - - /bin/zsh" \ + "g g1 111" + +compare $SOURCE/inline "(--inline)" + +# test --replace +echo "*** Testing --inline with --replace" +prepare_testdir +# copy a random file to make sure it is ignored +cp $f $TESTDIR/etc/sysusers.d/confuse.conf +$SYSUSERS --root=$TESTDIR \ + --inline \ + --replace=/etc/sysusers.d/confuse.conf \ + "u u1 222 - - /bin/zsh" \ + "g g1 111" + +compare $SOURCE/inline "(--inline --replace=…)" + +rm -f $TESTDIR/etc/sysusers.d/* $TESTDIR/usr/lib/sysusers.d/* + +# tests for error conditions +for f in $SOURCE/unhappy-*.input; do + echo "*** Running test $f" + prepare_testdir ${f%.input} + cp $f $TESTDIR/usr/lib/sysusers.d/test.conf + $SYSUSERS --root=$TESTDIR 2>&1 | tail -n1 > $TESTDIR/err + if ! diff -u $TESTDIR/err ${f%.*}.expected-err; then + echo "**** Unexpected error output for $f" + cat $TESTDIR/err + exit 1 + fi +done diff --git a/test/TEST-21-SYSUSERS/inline.expected-group b/test/test-sysusers/inline.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/inline.expected-group rename to test/test-sysusers/inline.expected-group diff --git a/test/TEST-21-SYSUSERS/inline.expected-passwd b/test/test-sysusers/inline.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/inline.expected-passwd rename to test/test-sysusers/inline.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-1.expected-group b/test/test-sysusers/test-1.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-1.expected-group rename to test/test-sysusers/test-1.expected-group diff --git a/test/TEST-21-SYSUSERS/test-1.expected-passwd b/test/test-sysusers/test-1.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-1.expected-passwd rename to test/test-sysusers/test-1.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-1.input b/test/test-sysusers/test-1.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-1.input rename to test/test-sysusers/test-1.input diff --git a/test/TEST-21-SYSUSERS/test-10.expected-group b/test/test-sysusers/test-10.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-10.expected-group rename to test/test-sysusers/test-10.expected-group diff --git a/test/TEST-21-SYSUSERS/test-10.expected-passwd b/test/test-sysusers/test-10.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-10.expected-passwd rename to test/test-sysusers/test-10.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-10.input b/test/test-sysusers/test-10.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-10.input rename to test/test-sysusers/test-10.input diff --git a/test/TEST-21-SYSUSERS/test-11.expected-group b/test/test-sysusers/test-11.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-11.expected-group rename to test/test-sysusers/test-11.expected-group diff --git a/test/TEST-21-SYSUSERS/test-11.expected-passwd b/test/test-sysusers/test-11.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-11.expected-passwd rename to test/test-sysusers/test-11.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-11.initial-group b/test/test-sysusers/test-11.initial-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-11.initial-group rename to test/test-sysusers/test-11.initial-group diff --git a/test/TEST-21-SYSUSERS/test-11.initial-passwd b/test/test-sysusers/test-11.initial-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-11.initial-passwd rename to test/test-sysusers/test-11.initial-passwd diff --git a/test/TEST-21-SYSUSERS/test-11.input b/test/test-sysusers/test-11.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-11.input rename to test/test-sysusers/test-11.input diff --git a/test/TEST-21-SYSUSERS/test-12.expected-group b/test/test-sysusers/test-12.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-12.expected-group rename to test/test-sysusers/test-12.expected-group diff --git a/test/TEST-21-SYSUSERS/test-12.expected-passwd b/test/test-sysusers/test-12.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-12.expected-passwd rename to test/test-sysusers/test-12.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-12.initial-group b/test/test-sysusers/test-12.initial-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-12.initial-group rename to test/test-sysusers/test-12.initial-group diff --git a/test/TEST-21-SYSUSERS/test-12.initial-passwd b/test/test-sysusers/test-12.initial-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-12.initial-passwd rename to test/test-sysusers/test-12.initial-passwd diff --git a/test/TEST-21-SYSUSERS/test-12.input b/test/test-sysusers/test-12.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-12.input rename to test/test-sysusers/test-12.input diff --git a/test/TEST-21-SYSUSERS/test-13.expected-group b/test/test-sysusers/test-13.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-13.expected-group rename to test/test-sysusers/test-13.expected-group diff --git a/test/TEST-21-SYSUSERS/test-13.expected-passwd b/test/test-sysusers/test-13.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-13.expected-passwd rename to test/test-sysusers/test-13.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-13.input b/test/test-sysusers/test-13.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-13.input rename to test/test-sysusers/test-13.input diff --git a/test/TEST-21-SYSUSERS/test-14.expected-group b/test/test-sysusers/test-14.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-14.expected-group rename to test/test-sysusers/test-14.expected-group diff --git a/test/TEST-21-SYSUSERS/test-14.expected-passwd b/test/test-sysusers/test-14.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-14.expected-passwd rename to test/test-sysusers/test-14.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-14.initial-group b/test/test-sysusers/test-14.initial-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-14.initial-group rename to test/test-sysusers/test-14.initial-group diff --git a/test/TEST-21-SYSUSERS/test-14.input b/test/test-sysusers/test-14.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-14.input rename to test/test-sysusers/test-14.input diff --git a/test/TEST-21-SYSUSERS/test-2.expected-group b/test/test-sysusers/test-2.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-2.expected-group rename to test/test-sysusers/test-2.expected-group diff --git a/test/TEST-21-SYSUSERS/test-2.expected-passwd b/test/test-sysusers/test-2.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-2.expected-passwd rename to test/test-sysusers/test-2.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-2.input b/test/test-sysusers/test-2.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-2.input rename to test/test-sysusers/test-2.input diff --git a/test/TEST-21-SYSUSERS/test-3.expected-group b/test/test-sysusers/test-3.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-3.expected-group rename to test/test-sysusers/test-3.expected-group diff --git a/test/TEST-21-SYSUSERS/test-3.expected-passwd b/test/test-sysusers/test-3.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-3.expected-passwd rename to test/test-sysusers/test-3.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-3.input b/test/test-sysusers/test-3.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-3.input rename to test/test-sysusers/test-3.input diff --git a/test/TEST-21-SYSUSERS/test-4.expected-group b/test/test-sysusers/test-4.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-4.expected-group rename to test/test-sysusers/test-4.expected-group diff --git a/test/TEST-21-SYSUSERS/test-4.expected-passwd b/test/test-sysusers/test-4.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-4.expected-passwd rename to test/test-sysusers/test-4.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-4.input b/test/test-sysusers/test-4.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-4.input rename to test/test-sysusers/test-4.input diff --git a/test/TEST-21-SYSUSERS/test-5.expected-group b/test/test-sysusers/test-5.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-5.expected-group rename to test/test-sysusers/test-5.expected-group diff --git a/test/TEST-21-SYSUSERS/test-5.expected-passwd b/test/test-sysusers/test-5.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-5.expected-passwd rename to test/test-sysusers/test-5.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-5.input b/test/test-sysusers/test-5.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-5.input rename to test/test-sysusers/test-5.input diff --git a/test/TEST-21-SYSUSERS/test-6.expected-group b/test/test-sysusers/test-6.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-6.expected-group rename to test/test-sysusers/test-6.expected-group diff --git a/test/TEST-21-SYSUSERS/test-6.expected-passwd b/test/test-sysusers/test-6.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-6.expected-passwd rename to test/test-sysusers/test-6.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-6.input b/test/test-sysusers/test-6.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-6.input rename to test/test-sysusers/test-6.input diff --git a/test/TEST-21-SYSUSERS/test-7.expected-group b/test/test-sysusers/test-7.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-7.expected-group rename to test/test-sysusers/test-7.expected-group diff --git a/test/TEST-21-SYSUSERS/test-7.expected-passwd b/test/test-sysusers/test-7.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-7.expected-passwd rename to test/test-sysusers/test-7.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-7.input b/test/test-sysusers/test-7.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-7.input rename to test/test-sysusers/test-7.input diff --git a/test/TEST-21-SYSUSERS/test-8.expected-group b/test/test-sysusers/test-8.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-8.expected-group rename to test/test-sysusers/test-8.expected-group diff --git a/test/TEST-21-SYSUSERS/test-8.expected-passwd b/test/test-sysusers/test-8.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-8.expected-passwd rename to test/test-sysusers/test-8.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-8.input b/test/test-sysusers/test-8.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-8.input rename to test/test-sysusers/test-8.input diff --git a/test/TEST-21-SYSUSERS/test-9.expected-group b/test/test-sysusers/test-9.expected-group similarity index 100% rename from test/TEST-21-SYSUSERS/test-9.expected-group rename to test/test-sysusers/test-9.expected-group diff --git a/test/TEST-21-SYSUSERS/test-9.expected-passwd b/test/test-sysusers/test-9.expected-passwd similarity index 100% rename from test/TEST-21-SYSUSERS/test-9.expected-passwd rename to test/test-sysusers/test-9.expected-passwd diff --git a/test/TEST-21-SYSUSERS/test-9.input b/test/test-sysusers/test-9.input similarity index 100% rename from test/TEST-21-SYSUSERS/test-9.input rename to test/test-sysusers/test-9.input diff --git a/test/TEST-21-SYSUSERS/unhappy-1.expected-err b/test/test-sysusers/unhappy-1.expected-err similarity index 100% rename from test/TEST-21-SYSUSERS/unhappy-1.expected-err rename to test/test-sysusers/unhappy-1.expected-err diff --git a/test/TEST-21-SYSUSERS/unhappy-1.input b/test/test-sysusers/unhappy-1.input similarity index 100% rename from test/TEST-21-SYSUSERS/unhappy-1.input rename to test/test-sysusers/unhappy-1.input diff --git a/test/TEST-21-SYSUSERS/unhappy-2.expected-err b/test/test-sysusers/unhappy-2.expected-err similarity index 100% rename from test/TEST-21-SYSUSERS/unhappy-2.expected-err rename to test/test-sysusers/unhappy-2.expected-err diff --git a/test/TEST-21-SYSUSERS/unhappy-2.input b/test/test-sysusers/unhappy-2.input similarity index 100% rename from test/TEST-21-SYSUSERS/unhappy-2.input rename to test/test-sysusers/unhappy-2.input diff --git a/test/TEST-21-SYSUSERS/unhappy-3.expected-err b/test/test-sysusers/unhappy-3.expected-err similarity index 100% rename from test/TEST-21-SYSUSERS/unhappy-3.expected-err rename to test/test-sysusers/unhappy-3.expected-err diff --git a/test/TEST-21-SYSUSERS/unhappy-3.input b/test/test-sysusers/unhappy-3.input similarity index 100% rename from test/TEST-21-SYSUSERS/unhappy-3.input rename to test/test-sysusers/unhappy-3.input