[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