[libsecret/wip/dueno/file: 2/3] egg-testing: Sync with gnome-keyring
- From: Daiki Ueno <dueno src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsecret/wip/dueno/file: 2/3] egg-testing: Sync with gnome-keyring
- Date: Mon, 19 Aug 2019 05:29:20 +0000 (UTC)
commit 13a220be84ae9f546215e550f3c67bdcab3a885f
Author: Daiki Ueno <dueno src gnome org>
Date: Thu Aug 15 16:28:58 2019 +0200
egg-testing: Sync with gnome-keyring
egg/egg-testing.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
egg/egg-testing.h | 10 +++++++-
2 files changed, 77 insertions(+), 1 deletion(-)
---
diff --git a/egg/egg-testing.c b/egg/egg-testing.c
index b702b04..dbe09f3 100644
--- a/egg/egg-testing.c
+++ b/egg/egg-testing.c
@@ -173,3 +173,71 @@ egg_tests_run_with_loop (void)
return ret;
}
+
+void
+egg_tests_copy_scratch_file (const gchar *directory,
+ const gchar *filename)
+{
+ GError *error = NULL;
+ gchar *basename;
+ gchar *contents;
+ gchar *destination;
+ gsize length;
+
+ g_assert (directory);
+
+ g_file_get_contents (filename, &contents, &length, &error);
+ g_assert_no_error (error);
+
+ basename = g_path_get_basename (filename);
+ destination = g_build_filename (directory, basename, NULL);
+ g_free (basename);
+
+ g_file_set_contents (destination, contents, length, &error);
+ g_assert_no_error (error);
+ g_free (destination);
+ g_free (contents);
+}
+
+gchar *
+egg_tests_create_scratch_directory (const gchar *file_to_copy,
+ ...)
+{
+ gchar *basename;
+ gchar *directory;
+ va_list va;
+
+ basename = g_path_get_basename (g_get_prgname ());
+ directory = g_strdup_printf ("/tmp/scratch-%s.XXXXXX", basename);
+ g_free (basename);
+
+ if (!g_mkdtemp (directory))
+ g_assert_not_reached ();
+
+ va_start (va, file_to_copy);
+
+ while (file_to_copy != NULL) {
+ egg_tests_copy_scratch_file (directory, file_to_copy);
+ file_to_copy = va_arg (va, const gchar *);
+ }
+
+ va_end (va);
+
+ return directory;
+}
+
+void
+egg_tests_remove_scratch_directory (const gchar *directory)
+{
+ gchar *argv[] = { "rm", "-rf", (gchar *)directory, NULL };
+ GError *error = NULL;
+ gint rm_status;
+
+ g_assert_cmpstr (directory, !=, "");
+ g_assert_cmpstr (directory, !=, "/");
+
+ g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL,
+ NULL, NULL, NULL, &rm_status, &error);
+ g_assert_no_error (error);
+ g_assert_cmpint (rm_status, ==, 0);
+}
diff --git a/egg/egg-testing.h b/egg/egg-testing.h
index 1f07f0c..1a240b2 100644
--- a/egg/egg-testing.h
+++ b/egg/egg-testing.h
@@ -56,4 +56,12 @@ void egg_test_wait_idle (void);
gint egg_tests_run_with_loop (void);
-#endif /* EGG_DH_H_ */
+void egg_tests_copy_scratch_file (const gchar *directory,
+ const gchar *file_to_copy);
+
+gchar * egg_tests_create_scratch_directory (const gchar *file_to_copy,
+ ...) G_GNUC_NULL_TERMINATED;
+
+void egg_tests_remove_scratch_directory (const gchar *directory);
+
+#endif /* EGG_TESTING_H_ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]