summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2023-03-18 14:27:52 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2023-03-18 15:19:25 +0100
commitbccebed360cb8208602478c0af2351455bafa69f (patch)
treeba1abb7811f27bd9b071cd6504f0f7333fd3bb89
parentf1aeb6f6746efa35aec93e334b175d74e56df315 (diff)
Add an action to start the tests
-rw-r--r--src/adwaita/Makefile.am3
-rw-r--r--src/adwaita/disfluid-adwaita.h2
-rw-r--r--src/adwaita/disfluid-application.c20
-rw-r--r--src/adwaita/disfluid-menus.c13
4 files changed, 36 insertions, 2 deletions
diff --git a/src/adwaita/Makefile.am b/src/adwaita/Makefile.am
index b45cf14..e989970 100644
--- a/src/adwaita/Makefile.am
+++ b/src/adwaita/Makefile.am
@@ -15,7 +15,8 @@ noinst_LTLIBRARIES += %D%/libdisfluid-adwaita.la
-I include -I $(srcdir)/include \
-I %D% -I $(srcdir)/%D% \
-DLOCALEDIR=\"$(localedir)\" \
- -DINSTALLDIR=\"$(bindir)\"
+ -DINSTALLDIR=\"$(bindir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\"
%C%_libdisfluid_adwaita_la_LIBADD = \
lib/libgnu.la \
diff --git a/src/adwaita/disfluid-adwaita.h b/src/adwaita/disfluid-adwaita.h
index f1c4e78..f0f3f7d 100644
--- a/src/adwaita/disfluid-adwaita.h
+++ b/src/adwaita/disfluid-adwaita.h
@@ -55,6 +55,8 @@ void disfluid_adw_show_tests_results (GtkApplication * app,
GMenuItem *disfluid_adw_menu_item_about (void);
+GMenuItem *disfluid_adw_menu_item_run_tests (void);
+
GMenu *disfluid_adw_main_menu (void);
void disfluid_adw_cache_entry_set_file_name (DisfluidAdwCacheEntry *
diff --git a/src/adwaita/disfluid-application.c b/src/adwaita/disfluid-application.c
index a909d2c..b15d6c6 100644
--- a/src/adwaita/disfluid-application.c
+++ b/src/adwaita/disfluid-application.c
@@ -49,6 +49,23 @@ launch_about_window (GSimpleAction * action, GVariant * parameter,
}
static void
+start_tests (GSimpleAction * action, GVariant * parameter, gpointer user_data)
+{
+ (void) action;
+ (void) parameter;
+ (void) user_data;
+ char *arg_0;
+ if (asprintf (&arg_0, "%s/disfluid-run-unit-tests", relocate (LIBEXECDIR)) <
+ 0)
+ {
+ abort ();
+ }
+ char *args[] = { arg_0, NULL };
+ g_spawn_async (NULL, args, NULL, 0, NULL, NULL, NULL, NULL);
+ free (arg_0);
+}
+
+static void
disfluid_adw_application_init (DisfluidAdwApplication * self)
{
(void) self;
@@ -61,7 +78,8 @@ disfluid_adw_application_init (DisfluidAdwApplication * self)
g_application_get_flags (G_APPLICATION (self)) |
G_APPLICATION_HANDLES_OPEN);
static GActionEntry app_actions[] = {
- {.name = "about",.activate = launch_about_window}
+ {.name = "about",.activate = launch_about_window},
+ {.name = "runtests",.activate = start_tests}
};
g_action_map_add_action_entries (G_ACTION_MAP (self), app_actions,
G_N_ELEMENTS (app_actions), self);
diff --git a/src/adwaita/disfluid-menus.c b/src/adwaita/disfluid-menus.c
index ffa0c00..34766c7 100644
--- a/src/adwaita/disfluid-menus.c
+++ b/src/adwaita/disfluid-menus.c
@@ -29,12 +29,25 @@ disfluid_adw_menu_item_about (void)
return item;
}
+GMenuItem *
+disfluid_adw_menu_item_run_tests (void)
+{
+ GMenuItem *item = g_menu_item_new (_("Run Tests"), "app.runtests");
+ GIcon *system_run_icon = G_ICON (g_themed_icon_new ("system-run"));
+ g_menu_item_set_icon (item, system_run_icon);
+ g_object_unref (system_run_icon);
+ return item;
+}
+
GMenu *
disfluid_adw_main_menu (void)
{
GMenu *menu = g_menu_new ();
GMenuItem *about = disfluid_adw_menu_item_about ();
+ GMenuItem *runtests = disfluid_adw_menu_item_run_tests ();
g_menu_append_item (menu, about);
+ g_menu_append_item (menu, runtests);
g_object_unref (about);
+ g_object_unref (runtests);
return menu;
}