[SCM] Samba Shared Repository - branch master updated
Jim McDonough
jmcd at samba.org
Tue Nov 5 08:41:02 MST 2013
The branch, master has been updated
via 1c818d6 test_smbclient_tarmode.pl: remove unneccesary arg defaults
via 1424c61 test_smbclient_tarmode.pl: depend only on perl v5.10
via 2ceda6a test_smbclient_tarmode.pl: remove all ./ prefix when dealing with remote files
via 7088302 test_smbclient_tarmode.pl: sanitize $DIR + whitespace
via 977c26d test_smbclient_tarmode.pl: use -n flag for specifiying hostname (was ambiguous with help)
via f637463 test_smbclient_tarmode.pl: enable create with exclude tests
via 743593a test_smbclient_tarmode.pl: add subunit output flag
via 0ebc84a test_smbclient_tarmode.pl: add test for interactive session
via e236d5d test_smbclient_tarmode.pl: add extraction regex tests, verbose flag
via 24067dc test_smbclient_tarmode.pl: test regex flag behaviour
via 4eecb46 test_smbclient_tarmode.pl: add large file and long path tests
via bd4cde8 test_smbclient_tarmode.pl: add simple wildcard test
via f77f63e test_smbclient_tarmode.pl: test interactive command
via 70e8053 test_smbclient_tarmode.pl: whitespace
via 363601e test_smbclient_tarmode.pl: let --test run multiple tests
via 45bee99 test_smbclient_tarmode.pl: sanitize input, use File::Temp instead of hardcoding temp dir
via 2f30482 test_smbclient_tarmode.pl: cosmetic changes
via 8540032 test_smbclient_tarmode.pl: add copyright header
via 98fa4bc test_smbclient_tarmode.pl: samba 3.6.9 can print a empty attribute string
via 03e1557 test_smbclient_tarmode.pl: disable failing tests for now
via 97c34f3 test_smbclient_tarmode.pl: make script work on older Perl (now only need 5.14)
via e879580 test_smbclient_tarmode.pl: fix a few minor typos
via bfd6b7b test_smbclient_tarmode.pl: refactor, cleanup and document in POD
via 60edcc7 test_smbclient_tarmode.pl: add tests for wildcard pattern (cI, cX, cF, xF).
via 581d128 test_smbclient_tarmode.pl: add a first simple wildcard test
via a8b1d58 test_smbclient_tarmode.pl: add a clean option to erase the local path
via ea04ae3 test_smbclient_tarmode.pl: add test for xF
via aaf59c9 test_smbclient_tarmode.pl: add test for creation w/ filelist
via fa067e8 test_smbclient_tarmode.pl: add extraction test for I and X.
via f764c39 test_smbclient_tarmode.pl: add tests for X and I.
via 3a10b88 test_smbclient_tarmode.pl: add option to choose and run a single test
via cb08034 test_smbclient_tarmode.pl: add first extraction test
via c5ae61f test_smbclient_tarmode.pl: remove unused functions
via d07d89a test_smbclient_tarmode.pl: add nested dirs test
via 1624382 test_smbclient_tarmode.pl: refactored file related function to a File package
via e70b6de test_smbclient_tarmode.pl: add test for "newer than" (`N` flag)
via 2ef7909 test_smbclient_tarmode.pl: add test for reset mode
via be54395 test_smbclient_tarmode.pl: improve incremental test
via 947775e test_smbclient_tarmode.pl: add proper argument parsing for configuration.
via f5325f5 initial commit of the new tarmode test script.
from 6588215 Add regression test for bug #10229 - No access check verification on stream files.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 1c818d6927549a1e0f18ea9a9810dc6de97d5cd1
Author: David Disseldorp <ddiss at samba.org>
Date: Tue Oct 29 12:08:57 2013 +0100
test_smbclient_tarmode.pl: remove unneccesary arg defaults
The host, share and localpath arguments should not take default values.
Check that these required arguments are specified.
Signed-off-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
Autobuild-User(master): Jim McDonough <jmcd at samba.org>
Autobuild-Date(master): Tue Nov 5 16:40:20 CET 2013 on sn-devel-104
commit 1424c61a1a42abd34d71b0b48ea56be4b7fe5a9c
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Aug 12 16:29:41 2013 +0200
test_smbclient_tarmode.pl: depend only on perl v5.10
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 2ceda6a730f7c9354cd6ac80f755992cc2a1d3e4
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Aug 5 18:58:39 2013 +0200
test_smbclient_tarmode.pl: remove all ./ prefix when dealing with remote files
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 7088302d2469a0191f7b3e7d396575e7f688dde3
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Aug 5 18:57:54 2013 +0200
test_smbclient_tarmode.pl: sanitize $DIR + whitespace
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 977c26d8b0e978ac27273161c87918b467fe8672
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Aug 5 18:56:04 2013 +0200
test_smbclient_tarmode.pl: use -n flag for specifiying hostname (was ambiguous with help)
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit f637463edd486fc2244ae9354f8fd7773cdceb5c
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Oct 28 18:07:25 2013 +0100
test_smbclient_tarmode.pl: enable create with exclude tests
[ddiss at samba.org: split from clitar implementation commit]
Signed-off-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 743593a6dfee139ea79ab89ad37654c2e298cd22
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Aug 5 18:55:25 2013 +0200
test_smbclient_tarmode.pl: add subunit output flag
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 0ebc84ad6daafb5ceb73553e5c569d26274a41fb
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Wed Jul 24 16:49:06 2013 +0200
test_smbclient_tarmode.pl: add test for interactive session
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit e236d5df132842974b2e8b5b244aa0896dcc56cf
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 22 18:49:51 2013 +0200
test_smbclient_tarmode.pl: add extraction regex tests, verbose flag
* reset_remote() now removes the whole share content
* verbose flag to control stdout of each test
* extraction with regex test
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 24067dc243e189ea9d25465105bfe67f852f35f7
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Oct 25 15:12:27 2013 +0200
test_smbclient_tarmode.pl: test regex flag behaviour
[ddiss at samba.org: split from clitar implementation commit]
Signed-off-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 4eecb46bcec8e093990b4b4a4397e4aba048ad55
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Wed Jul 17 18:54:07 2013 +0200
test_smbclient_tarmode.pl: add large file and long path tests
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit bd4cde803cb1c5941053e3e5b6310b6d218c1825
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Wed Jul 17 16:27:01 2013 +0200
test_smbclient_tarmode.pl: add simple wildcard test
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit f77f63ed285fb4895a80c70f41ddc32b4e56bc6b
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Oct 25 14:55:47 2013 +0200
test_smbclient_tarmode.pl: test interactive command
[ddiss at samba.org: split from clitar implementation commit]
Signed-off-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 70e80532b0a2646a91a042f077af7098d7f54ebf
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 16 15:52:51 2013 +0200
test_smbclient_tarmode.pl: whitespace
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 363601e277b71131bbd4fa0169d6fc7424c5ce04
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 16 14:46:02 2013 +0200
test_smbclient_tarmode.pl: let --test run multiple tests
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 45bee9901b94e68b86ff50f0e0629522d5b5800a
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 16 00:34:41 2013 +0200
test_smbclient_tarmode.pl: sanitize input, use File::Temp instead of hardcoding temp dir
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 2f30482e7bb94a1ceb96d337b304bc3eadcd6a45
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 16 00:10:09 2013 +0200
test_smbclient_tarmode.pl: cosmetic changes
- Add whitespace around paren in if/for/while/... blocks
- Don't split if/elsif/else cascade
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 85400325276b37d4e3086bbfc8190d27f52d5671
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 15 23:41:15 2013 +0200
test_smbclient_tarmode.pl: add copyright header
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 98fa4bc03e52368d3542ceb408a26af54f815989
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 15 19:04:43 2013 +0200
test_smbclient_tarmode.pl: samba 3.6.9 can print a empty attribute string
While changing my setup, I discovered that for some unknown reasons
samba (serv/client) doesn't print any attributes for normal files.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 03e155772877d03b9cde8a54fcd8492231cb2b77
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 15 19:04:07 2013 +0200
test_smbclient_tarmode.pl: disable failing tests for now
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 97c34f3e6f2a954a267624c9059de35d74e7c3dc
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 15 19:01:58 2013 +0200
test_smbclient_tarmode.pl: make script work on older Perl (now only need 5.14)
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit e879580f1cfd73fa62036316485cd30d011b8392
Author: David Disseldorp <ddiss at samba.org>
Date: Sun Jul 14 15:22:36 2013 +0200
test_smbclient_tarmode.pl: fix a few minor typos
Signed-off-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit bfd6b7bf096b1c29890e0c83ac9db90118191690
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Thu Jul 4 17:54:43 2013 +0200
test_smbclient_tarmode.pl: refactor, cleanup and document in POD
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 60edcc790510b4c14044dd96a00dbe7368dfdc6f
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Wed Jul 3 16:09:03 2013 +0200
test_smbclient_tarmode.pl: add tests for wildcard pattern (cI, cX, cF, xF).
* add some test for wildcard pattern and r switch, when possible (-r
is very buggy)
* change default DIR to "tar_test_dir"
* add tests for attributes (nohidden, nosystem which are undocumented)
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 581d128ef3369868d82388fa8d6cd68d92127f53
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 2 23:22:24 2013 +0200
test_smbclient_tarmode.pl: add a first simple wildcard test
* File::list() now takes an absolute path
* check_remote() now takes the dir to check
* added an optional File destructor
* added cleanpath() to remove unecessary slashes
* File::new_remote() can take an absolute path
* File->{dir} is now absolute from the localpath
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit a8b1d58edb2e59d6dd90b528cb6e142ce127458f
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 2 23:20:53 2013 +0200
test_smbclient_tarmode.pl: add a clean option to erase the local path
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit ea04ae30e12ef13b7fe49db7975e042095184321
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Tue Jul 2 11:16:13 2013 +0200
test_smbclient_tarmode.pl: add test for xF
Add test for extracting from a file list.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit aaf59c9db6e571b8d05f0e62a717be995c16285f
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 1 18:01:50 2013 +0200
test_smbclient_tarmode.pl: add test for creation w/ filelist
* add test_creation_list()
* add parameter to File::new_local() to provide file content
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit fa067e8e2d469fcead649cf8a761e5c66f0768e5
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 1 17:44:54 2013 +0200
test_smbclient_tarmode.pl: add extraction test for I and X.
* add test for xI and xX
* fix bug in check_remote(): print filename instead of ref
* replace hash by list in test_extraction_normal()
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit f764c39a59551ef5ac849b8f3012a28953c7ee8a
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Mon Jul 1 17:25:29 2013 +0200
test_smbclient_tarmode.pl: add tests for X and I.
Found a bug while doing so. X doesn't exclude file path.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 3a10b8803a0e2d4238d01926cb9226d5969852a2
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Jun 28 18:36:22 2013 +0200
test_smbclient_tarmode.pl: add option to choose and run a single test
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit cb0803444a1f932ea1e422984678da6b7948adb6
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Jun 28 18:10:56 2013 +0200
test_smbclient_tarmode.pl: add first extraction test
* add normal extraction test
* add (or bring back)
- File::list() -- return list of File in a path
- File::tree() -- same but recursive
- File::walk() -- high order function to iterate on a File hierarchy
* compute md5 sum when not cached
* add check_remote(), will be useful for all extraction tests
* fix consecutive slashes bug in some File::xxxpath()
At this point, the script can replace the old
test_smbclient_tarmode.sh in terms of features.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit c5ae61f3eb44b7b7b7743e798a41e5a985d349a4
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Jun 28 03:35:21 2013 +0200
test_smbclient_tarmode.pl: remove unused functions
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit d07d89a11e21e51ec92a1743fb7e54a823ce4453
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Jun 28 03:30:06 2013 +0200
test_smbclient_tarmode.pl: add nested dirs test
add a test to check that the backup handles nested directories.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 1624382c98aa563ff1b44da66c31a2867949d129
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Fri Jun 28 03:16:29 2013 +0200
test_smbclient_tarmode.pl: refactored file related function to a File package
all the localpath(), remotepath() and all file related functions were
getting out of hand. The tests are now simpler to write.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit e70b6dead7ae52ce12f7534221a8fcee4651c89e
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Thu Jun 27 20:30:44 2013 +0200
test_smbclient_tarmode.pl: add test for "newer than" (`N` flag)
add test for the N FILE flag which makes smbclient only backup files
newer or as new as FILE.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 2ef7909dd0db75db64a611c57b33f103be07a940
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Thu Jun 27 18:53:34 2013 +0200
test_smbclient_tarmode.pl: add test for reset mode
add a new test for the reset mode which can be triggered via `-a` or
`tarmode reset`.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit be54395832f9c79180a2228c5d7099ddae0fa37f
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Thu Jun 27 15:07:42 2013 +0200
test_smbclient_tarmode.pl: improve incremental test
instead of using archived and non-archived files for the test, use
archive and various flags (system, hidden, readonly).
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit 947775ee00632a67b8b088a544bc3474b7e2f8df
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Thu Jun 27 15:00:24 2013 +0200
test_smbclient_tarmode.pl: add proper argument parsing for configuration.
documentation is included in the script in POD format.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
commit f5325f5e3e1c825e8b5415d2e17ab703ec5fab40
Author: Aurélien Aptel <aurelien.aptel at gmail.com>
Date: Wed Jun 26 20:41:22 2013 +0200
initial commit of the new tarmode test script.
This script will hopefully replace and improve test_smbclient_tarmode.sh.
Right now it only does normal and incremental tests.
Signed-off-by: Aurélien Aptel <aurelien.aptel at gmail.com>
Reviewed-by: David Disseldorp <ddiss at samba.org>
Reviewed-by: Jim McDonough <jmcd at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/script/tests/test_smbclient_tarmode.pl | 1675 ++++++++++++++++++++++++
1 files changed, 1675 insertions(+), 0 deletions(-)
create mode 100755 source3/script/tests/test_smbclient_tarmode.pl
Changeset truncated at 500 lines:
diff --git a/source3/script/tests/test_smbclient_tarmode.pl b/source3/script/tests/test_smbclient_tarmode.pl
new file mode 100755
index 0000000..663f02f
--- /dev/null
+++ b/source3/script/tests/test_smbclient_tarmode.pl
@@ -0,0 +1,1675 @@
+#!/usr/bin/perl
+
+# Unix SMB/CIFS implementation.
+# Test suite for the tar backup mode of smbclient.
+# Copyright (C) Aurélien Aptel 2013
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+=head1 NAME
+
+C<test_smbclient_tarmode.pl> - Test for smbclient tar backup feature
+
+=cut
+
+use v5.10;
+use strict;
+use warnings;
+
+use Archive::Tar;
+use Data::Dumper;
+use Digest::MD5 qw/md5_hex/;
+use File::Path qw/make_path remove_tree/;
+use File::Spec;
+use File::Temp;
+use Getopt::Long;
+use Pod::Usage;
+use Term::ANSIColor;
+
+sub d {print Dumper @_;}
+
+# DEFAULTS
+# 'our' to make them available in the File package
+our $USER = '';
+our $PW = '';
+our $HOST = '';
+our $IP = '';
+our $SHARE = '';
+our $DIR = 'tar_test_dir';
+our $LOCALPATH = '';
+our $TMP = File::Temp->newdir();
+our $BIN = 'smbclient';
+our $SUBUNIT = 0;
+
+my $SELECTED_TEST = '';
+my $LIST_TEST = 0;
+
+my @SMBARGS = ();
+
+our $DEBUG = 0;
+our $VERBOSE = 0;
+my $MAN = 0;
+my $HELP = 0;
+my $CLEAN = 0;
+
+# all tests
+my @TESTS = (
+# ['test helper', \&test_helper],
+ ['create, normal files (no attributes)', \&test_creation_normal, 'normal'],
+ ['create, normal nested files (no attributes)', \&test_creation_normal, 'nested'],
+ ['create, normal files (interactive)', \&test_creation_normal, 'inter'],
+ ['create, large file', \&test_creation_large_file],
+ ['create, long path', \&test_creation_long_path],
+ ['create, incremental with -g', \&test_creation_incremental, '-g'],
+ ['create, incremental with tarmode', \&test_creation_incremental, 'tarmode inc'],
+ ['create, reset archived files with -a', \&test_creation_reset, '-a'],
+ ['create, reset archived files with tarmode', \&test_creation_reset, 'tarmode reset'],
+ ['create, files newer than a file', \&test_creation_newer],
+ ['create, combination of tarmode filter', \&test_creation_attr],
+ ['create, explicit include', \&test_creation_include],
+ ['create, explicit exclude', \&test_creation_exclude],
+ ['create, include w/ filelist (F)', \&test_creation_list],
+ ['create, wildcard simple', \&test_creation_wildcard_simple],
+ ['create, regex', \&test_creation_regex],
+ ['create, multiple backup in session', \&test_creation_multiple],
+ ['extract, normal files', \&test_extraction_normal],
+ ['extract, explicit include', \&test_extraction_include],
+ ['extract, explicit exclude', \&test_extraction_exclude],
+ ['extract, include w/ filelist (F)', \&test_extraction_list],
+ ['extract, regex', \&test_extraction_regex],
+);
+
+=head1 SYNOPSIS
+
+ test_smbclient_tarmode.pl [options] -- [smbclient options]
+
+ Options:
+ -h, --help brief help message
+ --man full documentation
+
+ Environment:
+ -u, --user USER
+ -p, --password PW
+ -n, --name HOST (required)
+ -i, --ip IP
+ -s, --share SHARE (required)
+ -d, --dir PATH
+ sub-path to use on the share
+
+ -l, --local-path PATH (required)
+ path to the root of the samba share on the machine.
+
+ -b, --bin BIN
+ path to the smbclient binary to use
+
+ Test:
+ --list
+ list tests
+
+ --test N
+ --test A-B
+ --test A,B,D-F
+ only run certain tests (accept list and intervals of numbers)
+
+ -v, --verbose
+ be more verbose
+
+ --debug
+ print command and their output (also set -v)
+
+ --subunit
+ print output in subunit format
+
+=cut
+
+GetOptions('u|user=s' => \$USER,
+ 'p|password=s' => \$PW,
+ 'n|name=s' => \$HOST,
+ 'i|ip=s' => \$IP,
+ 's|share=s' => \$SHARE,
+ 'd|dir=s' => \$DIR,
+ 'l|local-path=s' => \$LOCALPATH,
+ 'b|bin=s' => \$BIN,
+
+ 'test=s' => \$SELECTED_TEST,
+ 'list' => \$LIST_TEST,
+
+ 'clean' => \$CLEAN,
+ 'subunit' => \$SUBUNIT,
+ 'debug' => \$DEBUG,
+ 'v|verbose' => \$VERBOSE,
+ 'h|help' => \$HELP,
+ 'man' => \$MAN) or pod2usage(2);
+
+pod2usage(0) if $HELP;
+pod2usage(-exitval => 0, -verbose => 2) if $MAN;
+list_test(), exit 0 if $LIST_TEST;
+pod2usage(1) unless $HOST;
+pod2usage(1) unless $SHARE;
+pod2usage(1) unless $LOCALPATH;
+
+if ($USER xor $PW) {
+ die "Need both user and password when one is provided\n";
+}
+elsif ($USER and $PW) {
+ push @SMBARGS, '-U'.$USER.'%'.$PW;
+}
+else {
+ push @SMBARGS, '-N';
+}
+
+if ($IP) {
+ push @SMBARGS, '-I', $IP;
+}
+
+# remaining arguments are passed to smbclient
+push @SMBARGS, @ARGV;
+
+# path to store the downloaded tarball
+my $TAR = "$TMP/tarmode.tar";
+
+#####
+
+# SANITIZATION
+
+# remove all final slashes from input paths
+$LOCALPATH =~ s{[/\\]+$}{}g;
+$SHARE =~ s{[/\\]+$}{}g;
+$HOST =~ s{[/\\]+$}{}g;
+$DIR =~ s{^\.[/\\]+$}{}g;
+$DIR =~ s{[/\\]+$}{}g;
+
+if (!-d $LOCALPATH) {
+ die "Local path '$LOCALPATH' is not a directory.\n";
+}
+
+if ($CLEAN) {
+ # clean the whole root first
+ remove_tree($LOCALPATH, { keep_root => 1 });
+}
+
+if ($DEBUG) {
+ $VERBOSE = 1;
+}
+
+#####
+
+# RUN TESTS
+
+my @selection = parse_test_string($SELECTED_TEST);
+
+if ($SELECTED_TEST eq '') {
+ run_test(@TESTS);
+} elsif (@selection > 0) {
+ run_test(@selection);
+} else {
+ die "Test selection '$SELECTED_TEST' is invalid\n";
+}
+
+#################################
+
+=head1 DOCUMENTATION
+
+=head2 Defining a test
+
+=over
+
+=item * Create a function C<test_yourtest>
+
+=item * Use the File module, documented below
+
+=item * Use C<smb_tar>, C<smb_client>, C<check_tar> or C<check_remote>
+
+=item * Return number of error
+
+=item * Add function to C<@TESTS>
+
+=back
+
+The function must be placed in the C<@TESTS> list along with a short
+description and optional arguments.
+
+=cut
+
+sub test_creation_newer {
+ my @files;
+ my $dt = 3000;
+
+ # create oldest file at - DT
+ my $oldest = File->new_remote('oldest');
+ $oldest->set_time(time - $dt);
+
+ # create limit file
+ my $limit = File->new_local("$TMP/limit");
+
+ # create newA file at + DT
+ my $newA = File->new_remote('newA');
+ $newA->set_time(time + $dt);
+
+ # create newB file at + DT
+ my $newB = File->new_remote('newB');
+ $newB->set_time(time + $dt);
+
+ # get files newer than limit_file
+ push @files, $newA, $newB;
+
+ smb_tar('', '-TcN', $limit->localpath, $TAR, $DIR);
+ return check_tar($TAR, \@files);
+}
+
+sub test_creation_attr {
+ my @attr = qw/r h s a/;
+ my @all;
+ my @inc;
+ my $err = 0;
+
+ # one normal file
+ my $f = File->new_remote("file-n.txt");
+ push @all, $f;
+
+ # combinations of attributes
+ for my $n (1.. at attr) {
+ for (combine(\@attr, $n)) {
+ my @t = @$_;
+ my $fn = "file-" . join('+', @t) . ".txt";
+ my $f = File->new_remote($fn);
+ $f->set_attr(@t);
+ push @all, $f;
+ }
+ }
+
+ @inc = grep { !$_->attr('s') } @all;
+ smb_tar('tarmode nosystem', '-Tc', $TAR, $DIR);
+ $err += check_tar($TAR, \@inc);
+
+ @inc = grep { !$_->attr('h') } @all;
+ smb_tar('tarmode nohidden', '-Tc', $TAR, $DIR);
+ $err += check_tar($TAR, \@inc);
+
+ @inc = grep { !$_->attr_any('h', 's') } @all;
+ smb_tar('tarmode nohidden nosystem', '-Tc', $TAR, $DIR);
+ $err += check_tar($TAR, \@inc);
+
+ @inc = grep { $_->attr('a') && !$_->attr_any('h', 's') } @all;
+ smb_tar('tarmode inc nohidden nosystem', '-Tc', $TAR, $DIR);
+ $err += check_tar($TAR, \@inc);
+
+ $err;
+}
+
+sub test_creation_reset {
+ my ($mode) = @_;
+
+ my @files;
+ my $n = 3;
+ for (1..$n) {
+ my $f = File->new_remote("file-$_");
+ $f->set_attr('a');
+ push @files, $f;
+ }
+
+ if ($mode =~ /reset/) {
+ smb_tar('tarmode full reset', '-Tc', $TAR, $DIR);
+ } else {
+ smb_tar('', '-Tca', $TAR, $DIR);
+ }
+
+ my $err = check_tar($TAR, \@files);
+ return $err if ($err > 0);
+
+ for my $f (File::list($DIR)) {
+ if ($f->{attr}{a}) {
+ printf " ! %s %s\n", $f->attr_str, $f->remotepath;
+ $err++;
+ }
+ }
+ return $err;
+}
+
+sub test_creation_large_file {
+ my $size = int(15e6); # 15MB
+ my $f = File->new_remote("fat.jpg", 0, $size);
+
+ smb_tar('', '-Tc', $TAR, $DIR);
+ return check_tar($TAR, [$f]);
+}
+
+sub test_creation_long_path {
+ my $d = "a"x130;
+ my @all;
+
+ for (qw( foo/a bar/b )) {
+ push @all, File->new_remote("$d/$_");
+ }
+
+ smb_tar('', '-Tc', $TAR, $DIR);
+ return check_tar($TAR, \@all);
+}
+
+sub test_creation_normal {
+ my ($mode) = @_;
+
+ my $prefix = ($mode =~ /nest/) ? "/foo/bar/bar/" : '';
+ my @files;
+ my $n = 5;
+ for (1..$n) {
+ my $f = File->new_remote($prefix."file-$_");
+ push @files, $f;
+ }
+
+ if ($mode =~ /inter/) {
+ smb_tar("tar c $TAR $DIR", '');
+ } else {
+ smb_tar('tarmode full', '-Tc', $TAR, $DIR);
+ }
+ return check_tar($TAR, \@files);
+}
+
+sub test_creation_incremental {
+ my ($mode) = @_;
+
+ my @files;
+ my $n = 10;
+ for (1..$n) {
+ my $f = File->new_remote("file-$_");
+
+ # set archive bit on ~half of them
+ if ($_ < $n/2) {
+ $f->set_attr('a');
+ push @files, $f;
+ }
+ else {
+ $f->set_attr((qw/n r s h/)[$_ % 4]);
+ }
+ }
+
+ if ($mode =~ /inc/) {
+ smb_tar('tarmode inc', '-Tc', $TAR, $DIR);
+ } else {
+ smb_tar('', '-Tcg', $TAR, $DIR);
+ }
+ return check_tar($TAR, \@files);
+}
+
+
+sub test_extraction_normal {
+ my @files;
+ my $n = 5;
+ for (1..$n) {
+ my $f = File->new_remote("file-$_");
+ push @files, $f;
+ }
+
+ # store
+ smb_tar('', '-Tc', $TAR, $DIR);
+ my $err = check_tar($TAR, \@files);
+ return $err if $err > 0;
+
+ reset_remote();
+
+ smb_tar('', '-Tx', $TAR);
+ check_remote($DIR, \@files);
+}
+
+sub test_extraction_include {
+ my @all_files;
+ my @inc_files;
+
+ for (qw(file_inc inc/b inc/c inc/dir/foo dir_ex/d zob)) {
+ my $f = File->new_remote($_);
+ push @all_files, $f;
+ push @inc_files, $f if /inc/;
+ }
+
+ # store
+ smb_tar('', '-Tc', $TAR, $DIR);
+ my $err = check_tar($TAR, \@all_files);
+ return $err if $err > 0;
+
+ reset_remote();
+
+ smb_tar('', '-TxI', $TAR, "$DIR/file_inc", "$DIR/inc");
+ check_remote($DIR, \@inc_files);
+}
+
+sub test_extraction_exclude {
+ my @all_files;
+ my @inc_files;
+
+ for (qw(file_exc exc/b exc/c exc/dir/foo dir_ex/d zob)) {
+ my $f = File->new_remote($_);
+ push @all_files, $f;
+ push @inc_files, $f if !/exc/;
+ }
+
+ # store
+ smb_tar('', '-Tc', $TAR, $DIR);
+ my $err = check_tar($TAR, \@all_files);
+ return $err if $err > 0;
+
+ reset_remote();
+
+ smb_tar('', '-TxX', $TAR, "$DIR/file_exc", "$DIR/exc");
+ check_remote($DIR, \@inc_files);
+}
+
+
+sub test_creation_include {
+ my @files;
+
+ for (qw(file_inc inc/b inc/c inc/dir/foo dir_ex/d zob)) {
+ my $f = File->new_remote($_);
+ push @files, $f if /inc/;
+ }
+
+ smb_tar('', '-TcI', $TAR, "$DIR/file_inc", "$DIR/inc");
+ return check_tar($TAR, \@files);
+}
+
+sub test_creation_exclude {
+ my @files;
+
+ for (qw(file_ex ex/b ex/c ex/dir/foo foo/bar zob)) {
+ my $f = File->new_remote($_);
+ push @files, $f if !/ex/;
+ }
+
+ smb_tar('', '-TcX', $TAR, "$DIR/file_ex", "$DIR/ex");
+ return check_tar($TAR, \@files);
+}
+
+sub test_creation_list {
+ my @inc_files;
+
--
Samba Shared Repository
More information about the samba-cvs
mailing list