Update to version 2.33.1
[profile/ivi/glib2.git] / glib / tests / fileutils.c
index 32f46a0..ebc62af 100644 (file)
@@ -107,6 +107,7 @@ test_build_pathv (void)
 {
   gchar *args[10];
 
+  g_assert (g_build_pathv ("", NULL) == NULL);
   args[0] = NULL;
   check_string (g_build_pathv ("", args), "");
   args[0] = ""; args[1] = NULL;
@@ -505,15 +506,124 @@ test_format_size_for_display (void)
   check_string (g_format_size (0), "0 bytes");
   check_string (g_format_size (1), "1 byte");
   check_string (g_format_size (2), "2 bytes");
-  check_string (g_format_size (1000), "1.0 kB");
-  check_string (g_format_size (1000 * 1000), "1.0 MB");
-  check_string (g_format_size (1000 * 1000 * 1000), "1.0 GB");
+  check_string (g_format_size (1000ULL), "1.0 kB");
+  check_string (g_format_size (1000ULL * 1000), "1.0 MB");
+  check_string (g_format_size (1000ULL * 1000 * 1000), "1.0 GB");
+  check_string (g_format_size (1000ULL * 1000 * 1000 * 1000), "1.0 TB");
+  check_string (g_format_size (1000ULL * 1000 * 1000 * 1000 * 1000), "1.0 PB");
+  check_string (g_format_size (1000ULL * 1000 * 1000 * 1000 * 1000 * 1000), "1.0 EB");
+
+  check_string (g_format_size_full (0, G_FORMAT_SIZE_IEC_UNITS), "0 bytes");
+  check_string (g_format_size_full (1, G_FORMAT_SIZE_IEC_UNITS), "1 byte");
+  check_string (g_format_size_full (2, G_FORMAT_SIZE_IEC_UNITS), "2 bytes");
+
+  check_string (g_format_size_full (2048ULL, G_FORMAT_SIZE_IEC_UNITS), "2.0 KiB");
+  check_string (g_format_size_full (2048ULL * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 MiB");
+  check_string (g_format_size_full (2048ULL * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 GiB");
+  check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 TiB");
+  check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 PiB");
+  check_string (g_format_size_full (2048ULL * 1024 * 1024 * 1024 * 1024 * 1024, G_FORMAT_SIZE_IEC_UNITS), "2.0 EiB");
 
   check_string (g_format_size_full (238472938, G_FORMAT_SIZE_IEC_UNITS), "227.4 MiB");
   check_string (g_format_size_full (238472938, G_FORMAT_SIZE_DEFAULT), "238.5 MB");
   check_string (g_format_size_full (238472938, G_FORMAT_SIZE_LONG_FORMAT), "238.5 MB (238472938 bytes)");
 }
 
+static void
+test_file_errors (void)
+{
+#ifdef EEXIST
+  g_assert (g_file_error_from_errno (EEXIST) == G_FILE_ERROR_EXIST);
+#endif
+#ifdef EISDIR
+  g_assert (g_file_error_from_errno (EISDIR) == G_FILE_ERROR_ISDIR);
+#endif
+#ifdef EACCES
+  g_assert (g_file_error_from_errno (EACCES) == G_FILE_ERROR_ACCES);
+#endif
+#ifdef ENAMETOOLONG
+  g_assert (g_file_error_from_errno (ENAMETOOLONG) == G_FILE_ERROR_NAMETOOLONG);
+#endif
+#ifdef ENOENT
+  g_assert (g_file_error_from_errno (ENOENT) == G_FILE_ERROR_NOENT);
+#endif
+#ifdef ENOTDIR
+  g_assert (g_file_error_from_errno (ENOTDIR) == G_FILE_ERROR_NOTDIR);
+#endif
+#ifdef ENXIO
+  g_assert (g_file_error_from_errno (ENXIO) == G_FILE_ERROR_NXIO);
+#endif
+#ifdef ENODEV
+  g_assert (g_file_error_from_errno (ENODEV) == G_FILE_ERROR_NODEV);
+#endif
+#ifdef EROFS
+  g_assert (g_file_error_from_errno (EROFS) == G_FILE_ERROR_ROFS);
+#endif
+#ifdef ETXTBSY
+  g_assert (g_file_error_from_errno (ETXTBSY) == G_FILE_ERROR_TXTBSY);
+#endif
+#ifdef EFAULT
+  g_assert (g_file_error_from_errno (EFAULT) == G_FILE_ERROR_FAULT);
+#endif
+#ifdef ELOOP
+  g_assert (g_file_error_from_errno (ELOOP) == G_FILE_ERROR_LOOP);
+#endif
+#ifdef ENOSPC
+  g_assert (g_file_error_from_errno (ENOSPC) == G_FILE_ERROR_NOSPC);
+#endif
+#ifdef ENOMEM
+  g_assert (g_file_error_from_errno (ENOMEM) == G_FILE_ERROR_NOMEM);
+#endif
+#ifdef EMFILE
+  g_assert (g_file_error_from_errno (EMFILE) == G_FILE_ERROR_MFILE);
+#endif
+#ifdef ENFILE
+  g_assert (g_file_error_from_errno (ENFILE) == G_FILE_ERROR_NFILE);
+#endif
+#ifdef EBADF
+  g_assert (g_file_error_from_errno (EBADF) == G_FILE_ERROR_BADF);
+#endif
+#ifdef EINVAL
+  g_assert (g_file_error_from_errno (EINVAL) == G_FILE_ERROR_INVAL);
+#endif
+#ifdef EPIPE
+  g_assert (g_file_error_from_errno (EPIPE) == G_FILE_ERROR_PIPE);
+#endif
+#ifdef EAGAIN
+  g_assert (g_file_error_from_errno (EAGAIN) == G_FILE_ERROR_AGAIN);
+#endif
+#ifdef EINTR
+  g_assert (g_file_error_from_errno (EINTR) == G_FILE_ERROR_INTR);
+#endif
+#ifdef EIO
+  g_assert (g_file_error_from_errno (EIO) == G_FILE_ERROR_IO);
+#endif
+#ifdef EPERM
+  g_assert (g_file_error_from_errno (EPERM) == G_FILE_ERROR_PERM);
+#endif
+#ifdef ENOSYS
+  g_assert (g_file_error_from_errno (ENOSYS) == G_FILE_ERROR_NOSYS);
+#endif
+}
+
+static void
+test_basename (void)
+{
+  gchar *b;
+
+  b = g_path_get_basename ("");
+  g_assert_cmpstr (b, ==, ".");
+  g_free (b);
+
+  b = g_path_get_basename ("///");
+  g_assert_cmpstr (b, ==, "/");
+  g_free (b);
+
+  b = g_path_get_basename ("/a/b/c/d");
+  g_assert_cmpstr (b, ==, "d");
+  g_free (b);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -526,6 +636,8 @@ main (int   argc,
   g_test_add_func ("/fileutils/build-filenamev", test_build_filenamev);
   g_test_add_func ("/fileutils/mkdir-with-parents", test_mkdir_with_parents);
   g_test_add_func ("/fileutils/format-size-for-display", test_format_size_for_display);
+  g_test_add_func ("/fileutils/errors", test_file_errors);
+  g_test_add_func ("/fileutils/basename", test_basename);
 
   return g_test_run();
 }