[Pkg-owncloud-commits] [owncloud-client] 273/498: Added another test case with content in the deep path (also win32).
Sandro Knauß
hefee-guest at moszumanska.debian.org
Tue Aug 11 14:48:57 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 a280007dc229ecc99edd5df3b3c00ff463bfc92e
Author: Klaas Freitag <freitag at owncloud.com>
Date: Fri Jul 3 11:46:45 2015 +0200
Added another test case with content in the deep path (also win32).
---
csync/tests/vio_tests/check_vio_ext.c | 98 ++++++++++++++++++++++++++++++++---
1 file changed, 90 insertions(+), 8 deletions(-)
diff --git a/csync/tests/vio_tests/check_vio_ext.c b/csync/tests/vio_tests/check_vio_ext.c
index a9913f6..15420cf 100644
--- a/csync/tests/vio_tests/check_vio_ext.c
+++ b/csync/tests/vio_tests/check_vio_ext.c
@@ -31,6 +31,8 @@
#include "vio/csync_vio.h"
#ifdef _WIN32
+#include <windows.h>
+
#define CSYNC_TEST_DIR "C:/tmp/csync_test"
#else
#define CSYNC_TEST_DIR "/tmp/csync_test"
@@ -102,12 +104,24 @@ static void setup_testenv(void **state) {
*state = mystate;
}
+static void output( const char *text )
+{
+ mbchar_t *wtext = c_utf8_string_to_locale(text);
+
+ #ifdef _WIN32
+ wprintf(L"OOOO %ls (%ld)\n", wtext, strlen(text));
+ #else
+ printf("%s\n", wtext);
+ #endif
+ c_free_locale_string(wtext);
+}
+
static void teardown(void **state) {
statevar *sv = (statevar*) *state;
CSYNC *csync = sv->csync;
int rc;
- printf("================== Tearing down!\n");
+ output("================== Tearing down!\n");
rc = csync_destroy(csync);
assert_int_equal(rc, 0);
@@ -199,7 +213,7 @@ static void traverse_dir(void **state, const char *dir)
assert_int_not_equal( asprintf( &subdir, "%s/%s", dir, dirent->name ), -1 );
assert_int_not_equal( asprintf( &subdir_out, format_str,
- is_dir ? "<DIR>":" ",
+ is_dir ? "<DIR>":" ",
subdir), -1 );
if( !sv->result ) {
@@ -213,8 +227,10 @@ static void traverse_dir(void **state, const char *dir)
strcat( sv->result, subdir_out );
}
- printf("%s\n", subdir_out);
- traverse_dir( state, subdir);
+ output(subdir_out);
+ if( is_dir ) {
+ traverse_dir( state, subdir);
+ }
SAFE_FREE(subdir);
SAFE_FREE(subdir_out);
@@ -226,6 +242,53 @@ static void traverse_dir(void **state, const char *dir)
}
+static void create_file( const char *path, const char *name, const char *content)
+{
+#ifdef _WIN32
+
+ char *filepath = c_malloc( 2+strlen(CSYNC_TEST_DIR)+strlen(path) + strlen(name) );
+ *filepath = '\0';
+ strcpy(filepath, CSYNC_TEST_DIR);
+ strcat(filepath, "/");
+ strcat(filepath, path);
+ strcat(filepath, name);
+
+ DWORD dwWritten; // number of bytes written to file
+ HANDLE hFile;
+
+ mbchar_t *w_fname = c_utf8_path_to_locale(filepath);
+
+ hFile=CreateFile(w_fname, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, 0,
+ CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
+
+ assert_int_equal( 0, hFile==INVALID_HANDLE_VALUE );
+
+ int len = strlen(content);
+ mbchar_t *dst = NULL;
+
+ dst = c_utf8_string_to_locale(content);
+ WriteFile(hFile, dst, len * sizeof(mbchar_t), &dwWritten, 0);
+
+ CloseHandle(hFile);
+ SAFE_FREE(dst);
+ c_free_locale_string(w_fname);
+#else
+ char *filepath = c_malloc( 1+strlen(path) + strlen(name) );
+ *filepath = '\0';
+
+ strcpy(filepath, path);
+ strcat(filepath, name);
+
+ FILE *sink;
+ sink = fopen(filepath,"w");
+
+ fprintf (sink, "we got: %s",content);
+ fclose(sink);
+ SAFE_FREE(filepath);
+#endif
+
+}
+
static void check_readdir_shorttree(void **state)
{
statevar *sv = (statevar*) *state;
@@ -243,6 +306,28 @@ static void check_readdir_shorttree(void **state)
"<DIR> C:/tmp/csync_test/alibaba/und/die/vierzig/räuber" );
}
+static void check_readdir_with_content(void **state)
+{
+ statevar *sv = (statevar*) *state;
+
+ const char *t1 = "warum/nur/40/Räuber/";
+ create_dirs( t1 );
+
+ create_file( t1, "Räuber Max.txt", "Der Max ist ein schlimmer finger");
+ create_file( t1, "пя́тница.txt", "Am Freitag tanzt der Ürk");
+
+
+ traverse_dir(state, CSYNC_TEST_DIR);
+
+ 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");
+}
+
static void check_readdir_longtree(void **state)
{
statevar *sv = (statevar*) *state;
@@ -305,7 +390,6 @@ static void check_readdir_longtree(void **state)
/* assemble the result string ... */
int overall_len = 1+strlen(r1)+strlen(r2)+strlen(r3);
- printf("OO Overall expected result len %d\n", overall_len);
char *result = c_malloc(overall_len);
*result = '\0';
@@ -316,9 +400,6 @@ static void check_readdir_longtree(void **state)
traverse_dir(state, CSYNC_TEST_DIR);
- int result_len = strlen(sv->result);
- printf("OO Overall real result string len %d\n", result_len);
-
/* and compare. */
assert_string_equal( sv->result, result);
}
@@ -327,6 +408,7 @@ int torture_run_tests(void)
{
const UnitTest tests[] = {
unit_test_setup_teardown(check_readdir_shorttree, setup_testenv, teardown),
+ unit_test_setup_teardown(check_readdir_with_content, setup_testenv, teardown),
unit_test_setup_teardown(check_readdir_longtree, setup_testenv, teardown),
};
--
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