The branch, master has been updated via bd7eab1 s3:tests: Fix directory creation and deletion of test_nosymlinks() via b594e0c s3:tests: Fix directory creation and deletion of test_local_symlinks() from bc951ae docs: Fix a typo in cifsdd.8
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit bd7eab1639bb5eb70ff04b8f4b89373ca47daf08 Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 18 12:29:16 2017 +0200 s3:tests: Fix directory creation and deletion of test_nosymlinks() This should fix flakey autobuild. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12914 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Wed Jul 19 11:59:52 CEST 2017 on sn-devel-144 commit b594e0cdd2b68d262377cfe438253244b89d089c Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 18 12:03:32 2017 +0200 s3:tests: Fix directory creation and deletion of test_local_symlinks() This should fix flakey autobuild. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12914 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/script/tests/test_smbclient_s3.sh | 174 ++++++++++++++++++++++++++---- 1 file changed, 155 insertions(+), 19 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh index f647fd7..203f2c2 100755 --- a/source3/script/tests/test_smbclient_s3.sh +++ b/source3/script/tests/test_smbclient_s3.sh @@ -1042,21 +1042,61 @@ EOF test_nosymlinks() { # Setup test dirs. - test_dir="$LOCAL_PATH/nosymlinks/test" + local_test_dir="$LOCAL_PATH/nosymlinks/test" + local_slink_name="$local_test_dir/source" + local_slink_target="$local_test_dir/nosymlink_target_file" - slink_name="$test_dir/source" - slink_target="$test_dir/target" - foobar_dir="$test_dir/foo/bar" - get_target="$test_dir/foo/bar/testfile" + share_test_dir="test" + share_foo_dir="$share_test_dir/foo" + share_foobar_dir="$share_test_dir/foo/bar" + share_target_file="$share_test_dir/foo/bar/testfile" - rm -rf $test_dir + rm -rf $local_test_dir - mkdir -p $test_dir - echo "$slink_target" > $slink_target - ln -s $slink_target $slink_name + local_nosymlink_target_file="nosymlink_target_file" + echo "$local_slink_target" > $local_nosymlink_target_file + + local_foobar_target_file="testfile" + echo "$share_target_file" > $local_foobar_target_file + + tmpfile=$PREFIX/smbclient_interactive_prompt_commands + cat > $tmpfile <<EOF +mkdir $share_test_dir +mkdir $share_foo_dir +mkdir $share_foobar_dir +cd /$share_test_dir +put $local_nosymlink_target_file +cd /$share_foobar_dir +put $local_foobar_target_file +quit +EOF + + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/nosymlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=`eval $cmd` + ret=$? + rm -f $tmpfile + rm -f $local_nosymlink_target_file + rm -f $local_foobar_target_file + + if [ $ret -ne 0 ] ; then + echo "$out" + echo "failed accessing local_symlinks with error $ret" + false + return + fi + + echo "$out" | grep 'NT_STATUS_' + ret=$? + if [ $ret -eq 0 ] ; then + echo "$out" + echo "failed - got an NT_STATUS error" + false + return + fi - mkdir -p $foobar_dir - echo "$get_target" > $get_target +# Create the symlink locally + ln -s $local_slink_target $local_slink_name # Getting a file through a symlink name should fail. tmpfile=$PREFIX/smbclient_interactive_prompt_commands @@ -1136,6 +1176,33 @@ EOF echo "failed - NT_STATUS_XXXX doing cd foo\\bar; get testfile on \\nosymlinks" return 1 fi + +# CLEANUP + rm -f $local_slink_name + + cat > $tmpfile <<EOF +deltree test +quit +EOF + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/nosymlinks -I $SERVER_IP $ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=`eval $cmd` + ret=$? + rm -f $tmpfile + + if [ $ret -ne 0 ] ; then + echo "$out" + echo "failed accessing nosymlinks with error $ret" + return 1 + fi + + echo "$out" | grep 'NT_STATUS' + ret=$? + if [ $ret -eq 0 ] ; then + echo "$out" + echo "failed - NT_STATUS_XXXX doing cd foo\\bar; get testfile on \\nosymlinks" + return 1 + fi } # Test we can follow normal symlinks. @@ -1148,21 +1215,60 @@ test_local_symlinks() LOCAL_RAWARGS="${CONFIGURATION} -mSMB3" LOCAL_ADDARGS="${LOCAL_RAWARGS} $*" - test_dir="$LOCAL_PATH/local_symlinks/test" + share_test_dir="test" + share_slink_target_dir="$share_test_dir/dir1" + + local_test_dir="$LOCAL_PATH/local_symlinks/$share_test_dir" + local_slink_name="$local_test_dir/sym_name" + local_slink_target_dir="$local_test_dir/dir1" + + rm -rf $local_test_dir + +# Create the initial directories + tmpfile=$PREFIX/smbclient_interactive_prompt_commands + cat > $tmpfile <<EOF +mkdir $share_test_dir +mkdir $share_slink_target_dir +quit +EOF + + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/local_symlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=`eval $cmd` + ret=$? + rm -f $tmpfile - slink_name="$test_dir/sym_name" - slink_target_dir="$test_dir/dir1" + if [ $ret -ne 0 ] ; then + echo "$out" + echo "failed accessing local_symlinks with error $ret" + false + return + fi - rm -rf $test_dir + echo "$out" | grep 'NT_STATUS_' + ret=$? + if [ $ret -eq 0 ] ; then + echo "$out" + echo "failed - got an NT_STATUS error" + false + return + fi - mkdir -p $test_dir - mkdir $slink_target_dir - ln -s $slink_target_dir $slink_name +# Create the symlink locally + ln -s $local_slink_target_dir $local_slink_name + ret=$? + if [ $ret -ne 0 ] ; then + echo "$out" + echo "failed - unable to create symlink" + ls -la $local_test_dir + false + return + fi # Can we cd into the symlink name and ls ? tmpfile=$PREFIX/smbclient_interactive_prompt_commands cat > $tmpfile <<EOF -cd test\\sym_name +cd $share_test_dir\\sym_name ls quit EOF @@ -1187,6 +1293,36 @@ EOF false return fi + +# CLEANUP + rm -f $local_slink_name + + tmpfile=$PREFIX/smbclient_interactive_prompt_commands + cat > $tmpfile <<EOF +deltree $share_test_dir +quit +EOF + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/local_symlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=`eval $cmd` + ret=$? + rm -f $tmpfile + + if [ $ret -ne 0 ] ; then + echo "$out" + echo "failed accessing local_symlinks with error $ret" + false + return + fi + + echo "$out" | grep 'NT_STATUS_' + ret=$? + if [ $ret -eq 0 ] ; then + echo "$out" + echo "failed - got an NT_STATUS error" + false + return + fi } # Test smbclient deltree command -- Samba Shared Repository