summaryrefslogtreecommitdiff
path: root/src/tests/eina_test_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/eina_test_file.c')
-rw-r--r--src/tests/eina_test_file.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/tests/eina_test_file.c b/src/tests/eina_test_file.c
new file mode 100644
index 0000000..aeb5461
--- /dev/null
+++ b/src/tests/eina_test_file.c
@@ -0,0 +1,88 @@
+/* EINA - EFL data type library
+ * Copyright (C) 2008 Cedric Bail
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library;
+ * if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "eina_suite.h"
+#include "Eina.h"
+#include "eina_safety_checks.h"
+
+START_TEST(eina_file_split_simple)
+{
+ Eina_Array *ea;
+
+ eina_init();
+
+#ifdef EINA_SAFETY_CHECKS
+ fprintf(stderr, "you should have a safety check failure below:\n");
+ ea = eina_file_split(NULL);
+ fail_if(ea);
+ fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
+#endif
+
+#ifdef _WIN32
+ ea = eina_file_split(strdup("\\this\\is\\a\\small\\test"));
+#else
+ ea = eina_file_split(strdup("/this/is/a/small/test"));
+#endif
+
+ fail_if(!ea);
+ fail_if(eina_array_count_get(ea) != 5);
+ fail_if(strcmp(eina_array_data_get(ea, 0), "this"));
+ fail_if(strcmp(eina_array_data_get(ea, 1), "is"));
+ fail_if(strcmp(eina_array_data_get(ea, 2), "a"));
+ fail_if(strcmp(eina_array_data_get(ea, 3), "small"));
+ fail_if(strcmp(eina_array_data_get(ea, 4), "test"));
+
+ eina_array_free(ea);
+
+#ifdef _WIN32
+ ea =
+ eina_file_split(strdup(
+ "this\\\\is\\\\\\a \\more\\complex\\\\\\case\\\\\\"));
+#else
+ ea = eina_file_split(strdup("this//is///a /more/complex///case///"));
+#endif
+
+ fail_if(!ea);
+ fail_if(eina_array_count_get(ea) != 6);
+ fail_if(strcmp(eina_array_data_get(ea, 0), "this"));
+ fail_if(strcmp(eina_array_data_get(ea, 1), "is"));
+ fail_if(strcmp(eina_array_data_get(ea, 2), "a "));
+ fail_if(strcmp(eina_array_data_get(ea, 3), "more"));
+ fail_if(strcmp(eina_array_data_get(ea, 4), "complex"));
+ fail_if(strcmp(eina_array_data_get(ea, 5), "case"));
+
+ eina_array_free(ea);
+
+ eina_shutdown();
+}
+END_TEST
+
+void
+eina_test_file(TCase *tc)
+{
+ tcase_add_test(tc, eina_file_split_simple);
+}
+