Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eglib/test/path.c')
-rw-r--r--eglib/test/path.c88
1 files changed, 76 insertions, 12 deletions
diff --git a/eglib/test/path.c b/eglib/test/path.c
index e6731ad0f13..63714817b96 100644
--- a/eglib/test/path.c
+++ b/eglib/test/path.c
@@ -1,10 +1,20 @@
+#include <config.h>
#include <glib.h>
#include <string.h>
#include <stdio.h>
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
+#ifdef G_OS_UNIX
#include <pthread.h>
+#endif
#include "test.h"
+#ifdef G_OS_WIN32
+#include <direct.h>
+#define chdir _chdir
+#endif
+
/* This test is just to be used with valgrind */
RESULT
test_buildpath ()
@@ -82,7 +92,6 @@ test_buildpath ()
if (strcmp (s, "/a/c/") != 0)
return FAILED ("14 Got wrong result, got: %s", s);
g_free (s);
- return OK;
return OK;
}
@@ -93,7 +102,11 @@ test_buildfname ()
char *s;
s = g_build_filename ("a", "b", "c", "d", NULL);
+#ifdef G_OS_WIN32
+ if (strcmp (s, "a\\b\\c\\d") != 0)
+#else
if (strcmp (s, "a/b/c/d") != 0)
+#endif
return FAILED ("1 Got wrong result, got: %s", s);
g_free (s);
@@ -105,6 +118,26 @@ test_dirname ()
{
char *s;
+#ifdef G_OS_WIN32
+ s = g_path_get_dirname ("c:\\home\\miguel");
+ if (strcmp (s, "c:\\home") != 0)
+ return FAILED ("Expected c:\\home, got %s", s);
+ g_free (s);
+
+ s = g_path_get_dirname ("c:\\home\\dingus\\");
+ if (strcmp (s, "c:\\home\\dingus") != 0)
+ return FAILED ("Expected c:\\home\\dingus, got %s", s);
+ g_free (s);
+
+ s = g_path_get_dirname ("dir.c");
+ if (strcmp (s, ".") != 0)
+ return FAILED ("Expected `.', got %s", s);
+ g_free (s);
+
+ s = g_path_get_dirname ("c:\\index.html");
+ if (strcmp (s, "c:") != 0)
+ return FAILED ("Expected [c:], got [%s]", s);
+#else
s = g_path_get_dirname ("/home/miguel");
if (strcmp (s, "/home") != 0)
return FAILED ("Expected /home, got %s", s);
@@ -123,7 +156,7 @@ test_dirname ()
s = g_path_get_dirname ("/index.html");
if (strcmp (s, "/") != 0)
return FAILED ("Expected [/], got [%s]", s);
-
+#endif
return OK;
}
@@ -132,6 +165,22 @@ test_basename ()
{
char *s;
+#ifdef G_OS_WIN32
+ s = g_path_get_basename ("");
+ if (strcmp (s, ".") != 0)
+ return FAILED ("Expected `.', got %s", s);
+ g_free (s);
+
+ s = g_path_get_basename ("c:\\home\\dingus\\");
+ if (strcmp (s, "dingus") != 0)
+ return FAILED ("1 Expected dingus, got %s", s);
+ g_free (s);
+
+ s = g_path_get_basename ("c:\\home\\dingus");
+ if (strcmp (s, "dingus") != 0)
+ return FAILED ("2 Expected dingus, got %s", s);
+ g_free (s);
+#else
s = g_path_get_basename ("");
if (strcmp (s, ".") != 0)
return FAILED ("Expected `.', got %s", s);
@@ -146,7 +195,7 @@ test_basename ()
if (strcmp (s, "dingus") != 0)
return FAILED ("2 Expected dingus, got %s", s);
g_free (s);
-
+#endif
return OK;
}
@@ -154,10 +203,14 @@ gchar *
test_ppath ()
{
char *s;
-
- s = g_find_program_in_path ("ls");
+#ifdef G_OS_WIN32
+ const gchar *searchfor = "explorer.exe";
+#else
+ const gchar *searchfor = "ls";
+#endif
+ s = g_find_program_in_path (searchfor);
if (s == NULL)
- return FAILED ("No shell on this system (This assumes Unix)?");
+ return FAILED ("No %s on this system?", searchfor);
g_free (s);
return OK;
}
@@ -167,6 +220,11 @@ test_ppath2 ()
{
char *s;
const char *path = g_getenv ("PATH");
+#ifdef G_OS_WIN32
+ const gchar *searchfor = "test_eglib.exe";
+#else
+ const gchar *searchfor = "test-glib";
+#endif
g_setenv ("PATH", "", TRUE);
s = g_find_program_in_path ("ls");
@@ -175,10 +233,10 @@ test_ppath2 ()
return FAILED ("Found something interesting here: %s", s);
}
g_free (s);
- s = g_find_program_in_path ("test-glib");
+ s = g_find_program_in_path (searchfor);
if (s == NULL) {
g_setenv ("PATH", path, TRUE);
- return FAILED ("It should find 'test-glib' in the current directory.");
+ return FAILED ("It should find '%s' in the current directory.", searchfor);
}
g_free (s);
g_setenv ("PATH", path, TRUE);
@@ -189,17 +247,22 @@ gchar *
test_cwd ()
{
char *dir = g_get_current_dir ();
+#ifdef G_OS_WIN32
+ const gchar *newdir = "C:\\Windows";
+#else
+ const gchar *newdir = "/bin";
+#endif
if (dir == NULL)
return FAILED ("No current directory?");
g_free (dir);
- if (chdir ("/bin") == -1)
- return FAILED ("No /bin?");
+ if (chdir (newdir) == -1)
+ return FAILED ("No %s?", newdir);
dir = g_get_current_dir ();
- if (strcmp (dir, "/bin") != 0)
- return FAILED("Did not go to /bin?");
+ if (strcmp (dir, newdir) != 0)
+ return FAILED("Did not go to %s?", newdir);
g_free (dir);
return OK;
@@ -234,3 +297,4 @@ static Test path_tests [] = {
DEFINE_TEST_GROUP_INIT(path_tests_init, path_tests)
+