ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=763942d8c7243db84afd59ba13f2e396ceb93b07

commit 763942d8c7243db84afd59ba13f2e396ceb93b07
Author: Andy Williams <a...@andywilliams.me>
Date:   Sun Dec 31 19:57:48 2017 +0000

    Fix and simpligy windows behaviour.
    
    Author: Vincent Torri
---
 src/tests/evil/evil_test_libgen.c | 308 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 308 insertions(+)

diff --git a/src/tests/evil/evil_test_libgen.c 
b/src/tests/evil/evil_test_libgen.c
new file mode 100644
index 0000000000..eb8c17f18b
--- /dev/null
+++ b/src/tests/evil/evil_test_libgen.c
@@ -0,0 +1,308 @@
+/* EVIL - EFL library for Windows port
+ * Copyright (C) 2017 Vincent Torri
+ *
+ * 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 <string.h>
+#include <libgen.h>
+
+#include "evil_suite.h"
+
+START_TEST(evil_libgen_null)
+{
+   char *dname;
+   char *bname;
+
+   dname = dirname(NULL);
+   fail_if(strcmp(dname, ".") != 0);
+   bname = basename(NULL);
+   fail_if(strcmp(bname, ".") != 0);
+}
+END_TEST
+
+START_TEST(evil_libgen_empty)
+{
+   const char *path = "";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, ".") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, ".") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_path)
+{
+   const char *path = "/usr/lib";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "/usr") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "lib") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_path_with_slash)
+{
+   const char *path = "/usr/";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "/") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "usr") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_folder)
+{
+   const char *path = "usr";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, ".") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "usr") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_slash)
+{
+   const char *path = "/";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "/") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "/") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_dot)
+{
+   const char *path = ".";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, ".") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, ".") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_dot_dot)
+{
+   const char *path = "..";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, ".") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "..") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_win_dir_1)
+{
+   const char *path = "c:/foo/bar";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "c:/foo") != 0);
+   bname = basename(basec);
+fail_if(strcmp(bname, "bar") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_win_dir_2)
+{
+   const char *path = "c:/foo\\bar";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "c:/foo") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "bar") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_win_dir_3)
+{
+   const char *path = "c:\\foo/bar";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "c:\\foo") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "bar") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+START_TEST(evil_libgen_win_dir_4)
+{
+   const char *path = "c:\\foo\\bar";
+   char *dirc;
+   char *basec;
+   char *dname;
+   char *bname;
+
+   dirc = strdup(path);
+   fail_if(dirc == NULL);
+   basec = strdup(path);
+   fail_if(basec == NULL);
+
+   dname = dirname(dirc);
+   fail_if(strcmp(dname, "c:\\foo") != 0);
+   bname = basename(basec);
+   fail_if(strcmp(bname, "bar") != 0);
+
+   free(dirc);
+   free(basec);
+}
+END_TEST
+
+void evil_test_libgen(TCase *tc)
+{
+   tcase_add_test(tc, evil_libgen_null);
+   tcase_add_test(tc, evil_libgen_empty);
+   tcase_add_test(tc, evil_libgen_path);
+   tcase_add_test(tc, evil_libgen_path_with_slash);
+   tcase_add_test(tc, evil_libgen_folder);
+   tcase_add_test(tc, evil_libgen_slash);
+   tcase_add_test(tc, evil_libgen_dot);
+   tcase_add_test(tc, evil_libgen_dot_dot);
+   tcase_add_test(tc, evil_libgen_win_dir_1);
+   tcase_add_test(tc, evil_libgen_win_dir_2);
+   tcase_add_test(tc, evil_libgen_win_dir_3);
+   tcase_add_test(tc, evil_libgen_win_dir_4);
+}

-- 


Reply via email to