X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=eglib%2Ftest%2Fpath.c;h=aaf5685d75fccfd920c0d9e1fa2e5609739657f0;hb=f54988c03bc5257917a4a406b0c1233c6c670595;hp=07c73f608ee9123deb51ff35cb37c128d776454d;hpb=1fabd87b02f8d2e359150ed7a9e92613e60383bc;p=mono.git diff --git a/eglib/test/path.c b/eglib/test/path.c index 07c73f608ee..aaf5685d75f 100644 --- a/eglib/test/path.c +++ b/eglib/test/path.c @@ -1,10 +1,20 @@ +#include #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef G_OS_UNIX #include +#endif #include "test.h" +#ifdef G_OS_WIN32 +#include +#define chdir _chdir +#endif + /* This test is just to be used with valgrind */ RESULT test_buildpath () @@ -77,7 +87,19 @@ test_buildpath () if (strcmp (s, "a/b/c/d") != 0) return FAILED ("13 Got wrong result, got: %s", s); g_free (s); - + + s = g_build_path ("/", "/a", "", "/c/", NULL); + if (strcmp (s, "/a/c/") != 0) + return FAILED ("14 Got wrong result, got: %s", s); + g_free (s); + + /* Null */ + s = g_build_path ("/", NULL, NULL); + if (s == NULL) + return FAILED ("must get a non-NULL return"); + if (s [0] != 0) + return FAILED ("must get an empty string"); + g_free (s); return OK; } @@ -87,9 +109,27 @@ 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); + + s = g_build_filename ("/", "a", NULL); +#ifdef G_OS_WIN32 + if (strcmp (s, "\\a") != 0) +#else + if (strcmp (s, "/a") != 0) +#endif + return FAILED ("1 Got wrong result, got: %s", s); + +#ifndef OS_WIN32 + s = g_build_filename ("/", "foo", "/bar", "tolo/", "/meo/", NULL); + if (strcmp (s, "/foo/bar/tolo/meo/") != 0) + return FAILED ("1 Got wrong result, got: %s", s); +#endif return OK; } @@ -99,6 +139,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); @@ -108,7 +168,16 @@ test_dirname () if (strcmp (s, "/home/dingus") != 0) return FAILED ("Expected /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 ("/index.html"); + if (strcmp (s, "/") != 0) + return FAILED ("Expected [/], got [%s]", s); +#endif return OK; } @@ -117,6 +186,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); @@ -131,7 +216,7 @@ test_basename () if (strcmp (s, "dingus") != 0) return FAILED ("2 Expected dingus, got %s", s); g_free (s); - +#endif return OK; } @@ -139,10 +224,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; } @@ -152,6 +241,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"); @@ -160,35 +254,48 @@ 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); return OK; } +#ifndef DISABLE_FILESYSTEM_TESTS 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; } +#else +gchar * +test_cwd () +{ + return OK; +} +#endif gchar * test_misc () @@ -206,8 +313,8 @@ test_misc () } static Test path_tests [] = { - {"g_buildpath", test_buildpath}, {"g_build_filename", test_buildfname}, + {"g_buildpath", test_buildpath}, {"g_path_get_dirname", test_dirname}, {"g_path_get_basename", test_basename}, {"g_find_program_in_path", test_ppath}, @@ -219,3 +326,4 @@ static Test path_tests [] = { DEFINE_TEST_GROUP_INIT(path_tests_init, path_tests) +