[Pkg-owncloud-commits] [owncloud-client] 384/498: Fix test, make it independent on the sort order of readdir.
Sandro Knauß
hefee-guest at moszumanska.debian.org
Tue Aug 11 14:49:09 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 3b510969a2062a52874ca5f0f0f04d16eb6f06db
Author: Klaas Freitag <freitag at owncloud.com>
Date: Mon Jul 27 13:28:21 2015 +0200
Fix test, make it independent on the sort order of readdir.
---
csync/tests/vio_tests/check_vio_ext.c | 51 +++++++++++++++++++++--------------
1 file changed, 31 insertions(+), 20 deletions(-)
diff --git a/csync/tests/vio_tests/check_vio_ext.c b/csync/tests/vio_tests/check_vio_ext.c
index 15420cf..d2c4449 100644
--- a/csync/tests/vio_tests/check_vio_ext.c
+++ b/csync/tests/vio_tests/check_vio_ext.c
@@ -175,9 +175,12 @@ static void create_dirs( const char *path )
*
* It appends a listing to the result member of the incoming struct in *state
* that can be compared later to what was expected in the calling functions.
+ *
+ * The int parameter cnt contains the number of seen files (not dirs) in the
+ * whole tree.
*
*/
-static void traverse_dir(void **state, const char *dir)
+static void traverse_dir(void **state, const char *dir, int *cnt)
{
csync_vio_handle_t *dh;
csync_vio_file_stat_t *dirent;
@@ -216,20 +219,24 @@ static void traverse_dir(void **state, const char *dir)
is_dir ? "<DIR>":" ",
subdir), -1 );
- if( !sv->result ) {
- sv->result = c_strdup( subdir_out);
+ if( is_dir ) {
+ if( !sv->result ) {
+ sv->result = c_strdup( subdir_out);
+ } else {
+ int newlen = 1+strlen(sv->result)+strlen(subdir_out);
+ char *tmp = sv->result;
+ sv->result = c_malloc(newlen);
+ strcpy( sv->result, tmp);
+ SAFE_FREE(tmp);
+
+ strcat( sv->result, subdir_out );
+ }
} else {
- int newlen = 1+strlen(sv->result)+strlen(subdir_out);
- char *tmp = sv->result;
- sv->result = c_malloc(newlen);
- strcpy( sv->result, tmp);
- SAFE_FREE(tmp);
-
- strcat( sv->result, subdir_out );
+ *cnt = *cnt +1;
}
output(subdir_out);
if( is_dir ) {
- traverse_dir( state, subdir);
+ traverse_dir( state, subdir, cnt);
}
SAFE_FREE(subdir);
@@ -295,8 +302,9 @@ static void check_readdir_shorttree(void **state)
const char *t1 = "alibaba/und/die/vierzig/räuber/";
create_dirs( t1 );
-
- traverse_dir(state, CSYNC_TEST_DIR);
+ int files_cnt = 0;
+
+ traverse_dir(state, CSYNC_TEST_DIR, &files_cnt);
assert_string_equal( sv->result,
"<DIR> C:/tmp/csync_test/alibaba"
@@ -304,11 +312,13 @@ static void check_readdir_shorttree(void **state)
"<DIR> C:/tmp/csync_test/alibaba/und/die"
"<DIR> C:/tmp/csync_test/alibaba/und/die/vierzig"
"<DIR> C:/tmp/csync_test/alibaba/und/die/vierzig/räuber" );
+ assert_int_equal(files_cnt, 0);
}
static void check_readdir_with_content(void **state)
{
statevar *sv = (statevar*) *state;
+ int files_cnt = 0;
const char *t1 = "warum/nur/40/Räuber/";
create_dirs( t1 );
@@ -317,15 +327,16 @@ static void check_readdir_with_content(void **state)
create_file( t1, "пя́тница.txt", "Am Freitag tanzt der Ürk");
- traverse_dir(state, CSYNC_TEST_DIR);
+ traverse_dir(state, CSYNC_TEST_DIR, &files_cnt);
assert_string_equal( sv->result,
"<DIR> C:/tmp/csync_test/warum"
"<DIR> C:/tmp/csync_test/warum/nur"
"<DIR> C:/tmp/csync_test/warum/nur/40"
- "<DIR> C:/tmp/csync_test/warum/nur/40/Räuber"
- " C:/tmp/csync_test/warum/nur/40/Räuber/Räuber Max.txt"
- " C:/tmp/csync_test/warum/nur/40/Räuber/пя́тница.txt");
+ "<DIR> C:/tmp/csync_test/warum/nur/40/Räuber");
+ /* " C:/tmp/csync_test/warum/nur/40/Räuber/Räuber Max.txt"
+ " C:/tmp/csync_test/warum/nur/40/Räuber/пя́тница.txt"); */
+ assert_int_equal(files_cnt, 2); /* Two files in the sub dir */
}
static void check_readdir_longtree(void **state)
@@ -390,7 +401,7 @@ static void check_readdir_longtree(void **state)
/* assemble the result string ... */
int overall_len = 1+strlen(r1)+strlen(r2)+strlen(r3);
-
+ int files_cnt = 0;
char *result = c_malloc(overall_len);
*result = '\0';
@@ -398,8 +409,8 @@ static void check_readdir_longtree(void **state)
strcat(result, r2);
strcat(result, r3);
- traverse_dir(state, CSYNC_TEST_DIR);
-
+ traverse_dir(state, CSYNC_TEST_DIR, &files_cnt);
+ assert_int_equal(files_cnt, 0);
/* and compare. */
assert_string_equal( sv->result, result);
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list