[PATCH] Fix flakey smbclient tests
Jeremy Allison
jra at samba.org
Tue Jul 18 20:28:44 UTC 2017
On Tue, Jul 18, 2017 at 12:56:06PM +0200, Andreas Schneider via samba-technical wrote:
> Hi,
>
>
> the attached pachset should fix:
>
>
> UNEXPECTED(failure): samba3.blackbox.smbclient_s3.sign (nt4_member) member
> creds.follow symlinks = no(nt4_member)
> REASON: Exception: Exception: CLI_FORCE_INTERACTIVE=yes /memdisk/autobuild/fl/
> b22467/samba/bin/smbclient -ULOCALNT4MEMBER3/autobuild%localnt4member3pass //
> LOCALNT4MEMBER3/nosymlinks -I 127.0.0.4 --configfile=/memdisk/autobuild/fl/
> b22467/samba/bin/ab/client/client.conf --signing=required
> NT_STATUS_ACCESS_DENIED opening remote file est\source
> CLI_FORCE_INTERACTIVE=yes /memdisk/autobuild/fl/b22467/samba/bin/smbclient -
> ULOCALNT4MEMBER3/autobuild%localnt4member3pass //LOCALNT4MEMBER3/nosymlinks -I
> 127.0.0.4 --configfile=/memdisk/autobuild/fl/b22467/samba/bin/ab/client/
> client.conf --signing=required
> CLI_FORCE_INTERACTIVE=yes /memdisk/autobuild/fl/b22467/samba/bin/smbclient -
> ULOCALNT4MEMBER3/autobuild%localnt4member3pass //LOCALNT4MEMBER3/nosymlinks -I
> 127.0.0.4 --configfile=/memdisk/autobuild/fl/b22467/samba/bin/ab/client/
> client.conf --signing=required
> NT_STATUS_FILE_IS_A_DIRECTORY opening remote file est
ooar estfile
> Domain=[SAMBA-TEST] OS=[] Server=[]
> smb: \> cd test
ooar
> smb: est
ooar\> ls
> . D 0 Tue Apr 11 12:31:04 2017
> .. D 0 Tue Apr 11 12:31:04 2017
> testfile D 0 Tue Apr 11 12:31:04 2017
>
> 39240824 blocks of size 1024. 33619008 blocks available
> smb: est
ooar\> get testfile -
> NT_STATUS_FILE_IS_A_DIRECTORY opening remote file est
ooar estfile
> smb: est
ooar\> quit
> failed - NT_STATUS_XXXX doing cd fooar; get testfile on
> osymlinks
>
> FAILED (1 failures, 0 errors and 0 unexpected successes in 0 testsuites)
>
>
>
> Review and push appreciated.
Andreas, thanks very much for tidying this up ! Much appreciated.
RB+ and pushed.
Jeremy.
>
>
>
> Andreas
>
> --
> Andreas Schneider GPG-ID: CC014E3D
> Samba Team asn at samba.org
> www.samba.org
> From 5aca42449d3fc5990e29bb08e22bedb200da5b59 Mon Sep 17 00:00:00 2001
> From: Andreas Schneider <asn at samba.org>
> Date: Tue, 18 Jul 2017 12:03:32 +0200
> Subject: [PATCH 1/2] 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 <asn at samba.org>
> ---
> source3/script/tests/test_smbclient_s3.sh | 85 ++++++++++++++++++++++++++++---
> 1 file changed, 77 insertions(+), 8 deletions(-)
>
> diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh
> index 3cbe6f51d4b..b82d89ba7c0 100755
> --- a/source3/script/tests/test_smbclient_s3.sh
> +++ b/source3/script/tests/test_smbclient_s3.sh
> @@ -1148,21 +1148,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"
>
> - slink_name="$test_dir/sym_name"
> - slink_target_dir="$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 $test_dir
> + rm -rf $local_test_dir
>
> - mkdir -p $test_dir
> - mkdir $slink_target_dir
> - ln -s $slink_target_dir $slink_name
> +# 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
> +
> + 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
> +
> +# 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 +1226,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
> --
> 2.13.2
>
>
> From 5ab8e3dbee9a6b1edcc5ced5c2500dc4bc12e1b9 Mon Sep 17 00:00:00 2001
> From: Andreas Schneider <asn at samba.org>
> Date: Tue, 18 Jul 2017 12:29:16 +0200
> Subject: [PATCH 2/2] 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 <asn at samba.org>
> ---
> source3/script/tests/test_smbclient_s3.sh | 89 +++++++++++++++++++++++++++----
> 1 file changed, 78 insertions(+), 11 deletions(-)
>
> diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh
> index b82d89ba7c0..59d742f742e 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 $local_test_dir
>
> - rm -rf $test_dir
> + local_nosymlink_target_file="nosymlink_target_file"
> + echo "$local_slink_target" > $local_nosymlink_target_file
>
> - mkdir -p $test_dir
> - echo "$slink_target" > $slink_target
> - ln -s $slink_target $slink_name
> + 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.
> --
> 2.13.2
>
More information about the samba-technical
mailing list