The branch, v4-13-test has been updated via 585c49f21f7 vfs_glusterfs: print exact cmdline for disabling write-behind translator via 587fa331f62 manpages/vfs_glusterfs: Mention silent skipping of write-behind translator via 2ea7b5c43e8 selftest: Remove samba3.blackbox.smbclient_tar from flapping tests via 8cec2732890 clitar: Use do_list()'s recursion in clitar.c via 2954051aa6d s3/script/tests: Ensure all remote test files are removed via 5f1772d94a3 s3/script/tests: call smbclient deltree to remove remote files via 257ce5ed541 s3/script/tests: Make smb_client 'die' behaviour configurable via a0ab7adfd78 s3/script/tests: Remove make_path (for remote dir) via c19198e8732 selftest: make samba3.blackbox.smbclient_tar runnable (even manually) via 53a91d6cdc0 s3/script/tests: Fix samba3.blackbox.smbclient_tarmode cleanup via 896d93091ab s3/script: Use smbclient deltree to clean up smbclient_tarmode subdir via 5908aebf364 s3/script/tests: Use tarmode share for samba3.blackbox.smbclient_tar* via 5143b487532 s3/script/test: Use different testdir for samba3.blackbox.smbclient_tarmode via 7fb13330380 selftest: Add a new tarmode shares via d67c3ea864b s3/script/tests: Fix 'Unrecognized option(s) passed to mkpath()' error via e9b2be96ebc Revert "vfs_ceph: drop fdopendir handler" from 441bf80265f smbclient: Fix recursive mget
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-13-test - Log ----------------------------------------------------------------- commit 585c49f21f7db686f479ce02b2ae647a313f1184 Author: Günther Deschner <g...@samba.org> Date: Tue Nov 24 15:38:41 2020 +0100 vfs_glusterfs: print exact cmdline for disabling write-behind translator BUG: https://bugzilla.samba.org/show_bug.cgi?id=14486 Guenther Signed-off-by: Guenther Deschner <g...@samba.org> Reviewed-by: Anoop C S <anoo...@samba.org> Autobuild-User(master): Günther Deschner <g...@samba.org> Autobuild-Date(master): Fri Nov 27 17:15:07 UTC 2020 on sn-devel-184 (cherry picked from commit 369c1d539837b70e94fe9d533d44860c8a9380a1) Autobuild-User(v4-13-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-13-test): Wed Dec 2 14:49:18 UTC 2020 on sn-devel-184 commit 587fa331f62f6bd36fdb8688c8d0734d02f07ee8 Author: Anoop C S <anoo...@samba.org> Date: Thu Nov 5 16:12:09 2020 +0530 manpages/vfs_glusterfs: Mention silent skipping of write-behind translator BUG: https://bugzilla.samba.org/show_bug.cgi?id=14486 Signed-off-by: Anoop C S <anoo...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> Autobuild-User(master): Günther Deschner <g...@samba.org> Autobuild-Date(master): Mon Nov 9 13:30:06 UTC 2020 on sn-devel-184 (cherry picked from commit be03ce7d8bb213633eedcfc3299b8d9865a3c67f) commit 2ea7b5c43e814faef44cf76b5ffad93e4a2f4840 Author: Noel Power <noel.po...@suse.com> Date: Mon Nov 30 09:21:50 2020 +0000 selftest: Remove samba3.blackbox.smbclient_tar from flapping tests BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 89e2d68bb4d93dc391af97f35ff1148aec7930b0) commit 8cec27328904e47462051878db2de97033ecbd9b Author: Volker Lendecke <v...@samba.org> Date: Tue Dec 1 08:58:14 2020 +0100 clitar: Use do_list()'s recursion in clitar.c BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Aurelien Aptel <aap...@samba.org> Reviewed-by: Noel Power <noel.po...@suse.com> (cherry picked from commit 20e0ce508844fec2dd0011423b10484dc7ccfdb7) commit 2954051aa6db3b38d24801fe451019ccec0b5c77 Author: Jeremy Allison <j...@samba.org> Date: Mon Nov 30 17:19:29 2020 +0000 s3/script/tests: Ensure all remote test files are removed BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Noel Power <noel.po...@suse.com> (cherry picked from commit 16ffa17ee28edfc3bc70c66abf41b5518aeab8fe) commit 5f1772d94a34922a4fc83ff8a036cbb3ce2dcdd5 Author: Noel Power <noel.po...@suse.com> Date: Mon Nov 30 10:41:57 2020 +0000 s3/script/tests: call smbclient deltree to remove remote files BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 6c7dc4959fd5de4382aee413b4cc711cc6f281f4) commit 257ce5ed541c0e46bbd565bd8a89d5905287897c Author: Noel Power <noel.po...@suse.com> Date: Mon Nov 30 10:18:32 2020 +0000 s3/script/tests: Make smb_client 'die' behaviour configurable smb_client behaviour is to die if there is an error. This is a little heavy handed and make it impossible for example to use smb_client to run a command that might fail (where such a failure isn't really an error) E.G. Calling deltree and the directory doesn't exist BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 363bfa4e1ca10e64057a6d04d6faff7c788db89d) commit a0ab7adfd788bc8cc58579b94c75386d492c2e02 Author: Noel Power <noel.po...@suse.com> Date: Mon Nov 30 09:59:58 2020 +0000 s3/script/tests: Remove make_path (for remote dir) LOCALPATH is actually the local path to the share, we should not need to create the share path (it should already exist) Note: When we remove the tree located at LOCALPATH we keep the root so the share path should always be there BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 99ffa4a98287f125e45690e87b32616f4d4254e4) commit c19198e873224c07a19dfae14d3871c577768344 Author: Noel Power <noel.po...@suse.com> Date: Mon Nov 30 11:15:06 2020 +0000 selftest: make samba3.blackbox.smbclient_tar runnable (even manually) samba3.blackbox.smbclient_tar is marked as flapping so it seems we have missed that it has stopped working. The local path passed to script/tests/test_smbclient_tarmode.pl must point to a valid share BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 6f246658cf003f7e2f393f7b7490d9e8ae84e21c) commit 53a91d6cdc0e726d741ab217522da3f205392090 Author: Noel Power <noel.po...@suse.com> Date: Mon Nov 30 17:39:25 2020 +0000 s3/script/tests: Fix samba3.blackbox.smbclient_tarmode cleanup Make sure samba3.blackbox.smbclient_tarmode removes data files not just before running the test but also after BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 4bb3bffa4b7a770d36138c45f717a9048ef82cff) commit 896d93091abe6b667c52e87273f22a91d9175eb0 Author: Noel Power <noel.po...@suse.com> Date: Fri Nov 27 15:52:27 2020 +0000 s3/script: Use smbclient deltree to clean up smbclient_tarmode subdir Replace rm -rf of local dir (that is hosted remotely) with smbclient deltree BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit fec1f8faffd9eb1aae77e7c515e57897be34a255) commit 5908aebf364802e7315aad8f116ad431544ac29d Author: Noel Power <noel.po...@suse.com> Date: Fri Nov 27 15:33:26 2020 +0000 s3/script/tests: Use tarmode share for samba3.blackbox.smbclient_tar* After this change both samba3.blackbox.smbclient_tar & samba3.blackbox.smbclient_tarmode now use the same dedicated share BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit be8dca68f89f110ef5947e0c2a7258554772cf9a) commit 5143b4875328196ed2766ba077055ce50704b5e2 Author: Noel Power <noel.po...@suse.com> Date: Fri Nov 27 15:25:21 2020 +0000 s3/script/test: Use different testdir for samba3.blackbox.smbclient_tarmode The other tarmode torture test samba3.blackbox.smbclient_tar now uses a share 'tarmode' which uses the same source path as samba3.blackbox.smbclient_tarmode Avoid conflicting paths and use a new subdir (of the test share) called 'smbclient_tarmode' BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 6cb0a00f4ab4bc1a8193d50cc076ec7174a5ece9) commit 7fb1333038085529334e8e3109e5eda6b5df14ae Author: Noel Power <noel.po...@suse.com> Date: Thu Nov 26 17:31:50 2020 +0000 selftest: Add a new tarmode shares samba3.blackbox.smbclient_tar & samba3.blackbox.smbclient_tar need separate shares with own xattr tdb(s) BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit a250f73366983d2a7397608a611f295f10dbb548) commit d67c3ea864b26e440f15162e429dec199e7304e8 Author: Noel Power <noel.po...@suse.com> Date: Fri Nov 27 12:01:49 2020 +0000 s3/script/tests: Fix 'Unrecognized option(s) passed to mkpath()' error 'keep_root' is an unrecognised option for make_path/mkpath BUG: https://bugzilla.samba.org/show_bug.cgi?id=14581 Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> (cherry picked from commit 4f5a7f11b7732c3efb511e68f6b9d434d59bb3e8) commit e9b2be96ebcc2dc8da8174f3333a744eff06f716 Author: David Disseldorp <dd...@samba.org> Date: Mon Oct 5 12:28:27 2020 +0200 Revert "vfs_ceph: drop fdopendir handler" This reverts commit 76d7d05b1da6c0703b1c2bade0c4467c7cc1adec. OpenDir_fsp() no longer falls back to regular open, so this hook is required. Bug: https://bugzilla.samba.org/show_bug.cgi?id=14519 Signed-off-by: David Disseldorp <dd...@samba.org> Reviewed-by: Samuel Cabrero <scabr...@samba.org> Autobuild-User(master): David Disseldorp <dd...@samba.org> Autobuild-Date(master): Mon Oct 5 12:38:34 UTC 2020 on sn-devel-184 (cherry picked from commit 83ab59d929a6319c18341cb69d5084b563fb59bb) ----------------------------------------------------------------------- Summary of changes: docs-xml/manpages/vfs_glusterfs.8.xml | 9 ++++ selftest/flapping | 1 - selftest/target/Samba3.pm | 11 +++++ source3/client/clitar.c | 41 ++++------------- source3/modules/vfs_ceph.c | 15 +++++-- source3/modules/vfs_glusterfs.c | 7 ++- source3/script/tests/test_smbclient_tarmode.pl | 62 ++++++++++++++++++++++---- source3/script/tests/test_smbclient_tarmode.sh | 29 ++++++++---- source3/selftest/tests.py | 12 ++--- 9 files changed, 124 insertions(+), 63 deletions(-) Changeset truncated at 500 lines: diff --git a/docs-xml/manpages/vfs_glusterfs.8.xml b/docs-xml/manpages/vfs_glusterfs.8.xml index 7a4da1af919..d25135e14ac 100644 --- a/docs-xml/manpages/vfs_glusterfs.8.xml +++ b/docs-xml/manpages/vfs_glusterfs.8.xml @@ -179,7 +179,16 @@ translator and refuse to connect if detected. Please disable the write-behind translator for the GlusterFS volume to allow the plugin to connect to the volume. + The write-behind translator can easily be disabled via calling + <programlisting> + gluster volume set <volumename> performance.write-behind off + </programlisting> on the commandline. </para> + <para> + With GlusterFS versions >= 9, we silently bypass write-behind + translator during initial connect and failure is avoided. + </para> + </refsect1> diff --git a/selftest/flapping b/selftest/flapping index c9f0adbf1bd..8c3f9e8969a 100644 --- a/selftest/flapping +++ b/selftest/flapping @@ -31,6 +31,5 @@ # This test just is not reliable in finding the max search limit # ^samba4.ldap.notification.python\(.*\).__main__.LDAPNotificationTest.test_max_search -^samba3.blackbox.smbclient_tar.* # fails very, very often on sn-devel ^samba3.blackbox.smbclient_s3.*.sending a message to the remote server # flakey on sn-devel-104 and sn-devel-144 ^samba3.blackbox.smbclient_s3.*.creating a good symlink and deleting it by path # flakey on sn-devel-104 and sn-devel-144 diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 0a8cefa811d..e141f102ef1 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -1334,6 +1334,9 @@ sub setup_fileserver my $tarmode_sharedir="$share_dir/tarmode"; push(@dirs,$tarmode_sharedir); + my $tarmode2_sharedir="$share_dir/tarmode2"; + push(@dirs,$tarmode2_sharedir); + my $smbcacls_sharedir="$share_dir/smbcacls"; push(@dirs,$smbcacls_sharedir); @@ -1362,6 +1365,14 @@ sub setup_fileserver get quota command = $prefix_abs/getset_quota.py set quota command = $prefix_abs/getset_quota.py +[tarmode] + path = $tarmode_sharedir + comment = tar test share + xattr_tdb:file = $prefix_abs/tarmode-xattr.tdb +[tarmode2] + path = $tarmode2_sharedir + comment = tar test share + xattr_tdb:file = $prefix_abs/tarmode2-xattr.tdb [spotlight] path = $share_dir spotlight = yes diff --git a/source3/client/clitar.c b/source3/client/clitar.c index 3fe3622aba6..4fd1f3c47d9 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -711,7 +711,7 @@ static int tar_create(struct tar* t) goto out_close; } DBG(5, ("tar_process do_list with mask: %s\n", mask)); - status = do_list(mask, TAR_DO_LIST_ATTR, get_file_callback, false, true); + status = do_list(mask, TAR_DO_LIST_ATTR, get_file_callback, true, true); if (!NT_STATUS_IS_OK(status)) { DBG(0, ("do_list fail %s\n", nt_errstr(status))); err = 1; @@ -806,7 +806,7 @@ static int tar_create_from_list(struct tar *t) DBG(5, ("cd '%s' before do_list\n", base)); client_set_cur_dir(base); } - status = do_list(mask, TAR_DO_LIST_ATTR, get_file_callback, false, true); + status = do_list(mask, TAR_DO_LIST_ATTR, get_file_callback, true, true); if (base != NULL) { client_set_cur_dir(start_dir); } @@ -837,7 +837,7 @@ static NTSTATUS get_file_callback(struct cli_state *cli, char *remote_name; char *old_dir = NULL; char *new_dir = NULL; - const char *initial_dir = client_get_cur_dir(); + const char *initial_dir = dir; bool skip = false; bool isdir; int rc; @@ -846,7 +846,7 @@ static NTSTATUS get_file_callback(struct cli_state *cli, return NT_STATUS_NO_MEMORY; } - remote_name = talloc_asprintf(ctx, "%s%s", initial_dir, finfo->name); + remote_name = talloc_asprintf(ctx, "%s\\%s", initial_dir, finfo->name); if (remote_name == NULL) { status = NT_STATUS_NO_MEMORY; goto out; @@ -884,35 +884,10 @@ static NTSTATUS get_file_callback(struct cli_state *cli, goto out; } - if (isdir) { - char *mask; - mask = talloc_asprintf(ctx, "%s*", new_dir); - if (mask == NULL) { - status = NT_STATUS_NO_MEMORY; - goto out; - } - mask = client_clean_name(ctx, mask); - if (mask == NULL) { - status = NT_STATUS_NO_MEMORY; - goto out; - } - - rc = tar_get_file(&tar_ctx, remote_name, finfo); - if (rc != 0) { - status = NT_STATUS_UNSUCCESSFUL; - goto out; - } - - client_set_cur_dir(new_dir); - do_list(mask, TAR_DO_LIST_ATTR, get_file_callback, false, true); - client_set_cur_dir(old_dir); - tar_ctx.numdir++; - } else { - rc = tar_get_file(&tar_ctx, remote_name, finfo); - if (rc != 0) { - status = NT_STATUS_UNSUCCESSFUL; - goto out; - } + rc = tar_get_file(&tar_ctx, remote_name, finfo); + if (rc != 0) { + status = NT_STATUS_UNSUCCESSFUL; + goto out; } out: diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index 0378d633782..a87d162e573 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -306,9 +306,18 @@ static DIR *cephwrap_fdopendir(struct vfs_handle_struct *handle, const char *mask, uint32_t attributes) { - /* OpenDir_fsp() falls back to regular open */ - errno = ENOSYS; - return NULL; + int ret = 0; + struct ceph_dir_result *result; + DBG_DEBUG("[CEPH] fdopendir(%p, %p)\n", handle, fsp); + + ret = ceph_opendir(handle->data, fsp->fsp_name->base_name, &result); + if (ret < 0) { + result = NULL; + errno = -ret; /* We return result which is NULL in this case */ + } + + DBG_DEBUG("[CEPH] fdopendir(...) = %d\n", ret); + return (DIR *) result; } static struct dirent *cephwrap_readdir(struct vfs_handle_struct *handle, diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c index 17e945f7e78..10af7e131b2 100644 --- a/source3/modules/vfs_glusterfs.c +++ b/source3/modules/vfs_glusterfs.c @@ -345,9 +345,12 @@ static int check_for_write_behind_translator(TALLOC_CTX *mem_ctx, if (write_behind_present) { DBG_ERR("Write behind translator is enabled for " "volume (%s), refusing to connect! " - "Please check the vfs_glusterfs(8) manpage for " + "Please turn off the write behind translator by calling " + "'gluster volume set %s performance.write-behind off' " + "on the commandline. " + "Check the vfs_glusterfs(8) manpage for " "further details.\n", - volume); + volume, volume); return -1; } diff --git a/source3/script/tests/test_smbclient_tarmode.pl b/source3/script/tests/test_smbclient_tarmode.pl index 877eec45cc8..bdbbd1a44a8 100755 --- a/source3/script/tests/test_smbclient_tarmode.pl +++ b/source3/script/tests/test_smbclient_tarmode.pl @@ -1,5 +1,4 @@ #!/usr/bin/perl - # Unix SMB/CIFS implementation. # Test suite for the tar backup mode of smbclient. # Copyright (C) Aurélien Aptel 2013 @@ -304,6 +303,8 @@ sub test_creation_attr { @inc = grep { $_->attr('a') && !$_->attr_any('h', 's') } @all; smb_tar('tarmode inc nohidden nosystem', '-Tc', $TAR, $DIR); $err += check_tar($TAR, \@inc); + # adjust attr so remote files can be deleted with deltree + File::walk(sub { $_->set_attr(qw/n r s h/) }, File::tree($DIR)); $err; } @@ -399,7 +400,10 @@ sub test_creation_incremental { } else { smb_tar('', '-Tcg', $TAR, $DIR); } - return check_tar($TAR, \@files); + my $res = check_tar($TAR, \@files); + # adjust attr so remote files can be deleted with deltree + File::walk(sub { $_->set_attr(qw/n r s h/) }, File::tree($DIR)); + return $res } @@ -917,8 +921,22 @@ Remove all files in the server C<$DIR> (not root) sub reset_remote { # remove_tree($LOCALPATH . '/'. $DIR); # make_path($LOCALPATH . '/'. $DIR); - remove_tree($LOCALPATH, {keep_root => 1}); - make_path($LOCALPATH, {keep_root => 1}); + my $DIR; + my @names; + my $name; + + smb_client_cmd(0, '-c', "deltree ./*"); + + # Ensure all files are gone. + + opendir(DIR,$LOCALPATH) or die "Can't open $LOCALPATH\n"; + @names = readdir(DIR) or die "Unable to read $LOCALPATH\n"; + closedir(DIR); + foreach $name (@names) { + next if ($name eq "."); # skip the current directory entry + next if ($name eq ".."); # skip the parent directory entry + die "$LOCALPATH not empty\n"; + } } =head3 C<reset_tmp( )> @@ -1120,7 +1138,9 @@ sub check_tar { return (@more + @less + @diff); # nb of errors } -=head3 C<smb_client ( @args )> +=head3 C<smb_client_cmd( $will_die, @args)> + +=head3 C<smb_client_cmd( 0, '-c', 'deltree', $somedir )> Run smbclient with C<@args> passed as argument and return output. @@ -1131,11 +1151,12 @@ the command-line are already inserted. The output contains both the C<STDOUT> and C<STDERR>. -Die if smbclient crashes or exits with an error code. +if C<$will_die> then Die if smbclient crashes or exits with an error code. +otherwise return output =cut -sub smb_client { - my (@args) = @_; +sub smb_client_cmd { + my ($will_die, @args) = @_; my $fullpath = "//$HOST/$SHARE"; my $cmd = sprintf("%s %s %s", @@ -1168,11 +1189,34 @@ sub smb_client { } if ($err) { - die "ERROR: $errstr"; + if ($will_die) { + die "ERROR: $errstr"; + } else { + say "ERROR: $errstr"; + } } return $out; } +=head3 C<smb_client ( @args )> + +Run smbclient with C<@args> passed as argument and return output. + +Each element of C<@args> becomes one escaped argument of smbclient. + +Host, share, user, password and the additionnal arguments provided on +the command-line are already inserted. + +The output contains both the C<STDOUT> and C<STDERR>. + +Die if smbclient crashes or exits with an error code. + +=cut +sub smb_client { + my (@args) = @_; + return smb_client_cmd(1, @args) +} + sub smb_cmd { return smb_client('-c', join(' ', @_)); } diff --git a/source3/script/tests/test_smbclient_tarmode.sh b/source3/script/tests/test_smbclient_tarmode.sh index 3779c38a5ca..8bc5b9947cf 100755 --- a/source3/script/tests/test_smbclient_tarmode.sh +++ b/source3/script/tests/test_smbclient_tarmode.sh @@ -94,7 +94,7 @@ test_tarmode_creation() { # Clear temp data rm -rf -- "$PREFIX"/tarmode > /dev/null 2>&1 rm -f "$PREFIX"/tarmode.tar > /dev/null 2>&1 - rm -rf "$LOCAL_PATH" > /dev/null 2>&1 + $SMBCLIENT //$SERVER/tarmode $CONFIGURATION -U$USERNAME%$PASSWORD -c "deltree smbclient_tar" # Build the test data if ! create_test_data "$LOCAL_PATH"; then @@ -104,14 +104,15 @@ test_tarmode_creation() { fi # Create tarfile with smbclient - if ! $SMBCLIENT //$SERVER/tmp $CONFIGURATION -U$USERNAME%$PASSWORD -I $SERVER_IP -p 139 \ - $ADDARGS -c "tarmode full" -Tc "$PREFIX/tarmode.tar" "/tarmode"; then + if ! $SMBCLIENT //$SERVER/tarmode $CONFIGURATION -U$USERNAME%$PASSWORD -I $SERVER_IP -p 139 \ + $ADDARGS -c "tarmode full" -Tc "$PREFIX/tarmode.tar" "/smbclient_tar"; then echo "Couldn't create tar file with tarmode -Tc" false return fi - # Extract data to verify + # Extract data to verify - this puts it into $PREFIX/smbclient_tar/ + # but we must leave it there as it's used to verify in test_tarmode_extraction() if ! tar -xf "$PREFIX/tarmode.tar" -C "$PREFIX"; then echo "Couldn't extract data from created tarfile" false @@ -119,12 +120,16 @@ test_tarmode_creation() { fi # Verify data - if ! validate_data "$PREFIX/tarmode" "$LOCAL_PATH"; then + if ! validate_data "$PREFIX/smbclient_tar" "$LOCAL_PATH"; then echo "Data not equivalent" false return fi + # Clear temp data + rm -rf -- "$PREFIX"/tarmode > /dev/null 2>&1 + rm -f "$PREFIX"/tarmode.tar > /dev/null 2>&1 + $SMBCLIENT //$SERVER/tarmode $CONFIGURATION -U$USERNAME%$PASSWORD -c "deltree smbclient_tar" true return @@ -136,7 +141,7 @@ test_tarmode_extraction() { # Clear temp data rm -rf -- "$PREFIX"/tarmode > /dev/null 2>&1 rm -f "$PREFIX"/tarmode.tar > /dev/null 2>&1 - rm -rf "$LOCAL_PATH" > /dev/null 2>&1 + $SMBCLIENT //$SERVER/tarmode $CONFIGURATION -U$USERNAME%$PASSWORD -c "deltree smbclient_tar" # Build the test data if ! create_test_data "$PREFIX/tarmode"; then @@ -146,14 +151,14 @@ test_tarmode_extraction() { fi # Create tarfile to extract on client - if ! tar -cf "$PREFIX/tarmode.tar" -C "$PREFIX" tarmode; then + if ! tar -cf "$PREFIX/tarmode.tar" -C "$PREFIX" smbclient_tar; then echo "Couldn't create tar archive" false return fi # Extract tarfile with smbclient - if ! $SMBCLIENT //$SERVER/tmp $CONFIGURATION -U$USERNAME%$PASSWORD -I $SERVER_IP -p 139 \ + if ! $SMBCLIENT //$SERVER/tarmode $CONFIGURATION -U$USERNAME%$PASSWORD -I $SERVER_IP -p 139 \ $ADDARGS -c "tarmode full" -Tx "$PREFIX/tarmode.tar"; then echo "Couldn't extact tar file with tarmode -Tx" false @@ -161,12 +166,18 @@ test_tarmode_extraction() { fi # Verify data - if ! validate_data "$PREFIX/tarmode" "$LOCAL_PATH"; then + if ! validate_data "$PREFIX/smbclient_tar" "$LOCAL_PATH"; then echo "Data not equivalent" false return fi + # Clear temp data + rm -rf -- "$PREFIX"/tarmode > /dev/null 2>&1 + rm -f "$PREFIX"/tarmode.tar > /dev/null 2>&1 + $SMBCLIENT //$SERVER/tarmode $CONFIGURATION -U$USERNAME%$PASSWORD -c "deltree smbclient_tar" + # Cleanup the verification data created by test_tarmode_creation(). + rm -rf "$PREFIX"/smbclient_tar > /dev/null 2>&1 true return diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index f9202f3f93a..27dc7587b17 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -476,23 +476,23 @@ for env in ["fileserver"]: plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', - '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mNT1"]) + '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mNT1"]) plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', - '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mSMB3"]) + '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mSMB3"]) # Test suite for new smbclient/tar with libarchive (GSoC 13) plantestsuite("samba3.blackbox.smbclient_tar.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"), - '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp', - '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode', + '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2', + '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2', '-d', '$PREFIX', '-b', smbclient3, '--subunit', '--', configuration, '-mNT1']) plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"), - '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp', - '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode', + '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2', + '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2', '-d', '$PREFIX', '-b', smbclient3, '--subunit', '--', configuration, '-mSMB3']) -- Samba Shared Repository