Merge branch 'misc_cleanups' into 'main'

tests/integration: Test that "feedback-ended" is propagated through LfbEvent

Closes #62

See merge request Librem5/feedbackd!82
This commit is contained in:
Guido Gunther
2022-11-10 12:52:07 +00:00
2 changed files with 84 additions and 30 deletions
+2 -1
View File
@@ -384,6 +384,8 @@ fbd_feedback_manager_handle_trigger_feedback (LfbGdbusFeedback *object,
found_fb = FALSE; found_fb = FALSE;
} }
lfb_gdbus_feedback_complete_trigger_feedback (object, invocation, event_id);
if (found_fb) { if (found_fb) {
g_signal_connect_object (event, "feedbacks-ended", g_signal_connect_object (event, "feedbacks-ended",
(GCallback) on_event_feedbacks_ended, (GCallback) on_event_feedbacks_ended,
@@ -397,7 +399,6 @@ fbd_feedback_manager_handle_trigger_feedback (LfbGdbusFeedback *object,
FBD_EVENT_END_REASON_NOT_FOUND); FBD_EVENT_END_REASON_NOT_FOUND);
} }
lfb_gdbus_feedback_complete_trigger_feedback (object, invocation, event_id);
return TRUE; return TRUE;
} }
+55 -2
View File
@@ -140,6 +140,28 @@ on_event_triggered (LfbEvent *event,
g_assert_cmpint (lfb_event_get_state (event), ==, LFB_EVENT_STATE_RUNNING); g_assert_cmpint (lfb_event_get_state (event), ==, LFB_EVENT_STATE_RUNNING);
/* "Return" event */
*cmp = event;
}
static void
on_event_triggered_quit (LfbEvent *event,
GAsyncResult *res,
LfbEvent **cmp)
{
g_autoptr (GError) err = NULL;
gboolean success;
g_assert_true (LFB_IS_EVENT (event));
g_assert_null (*cmp);
g_debug ("%s: %p, %s", __func__, event, lfb_event_get_event (event));
success = lfb_event_trigger_feedback_finish (event, res, &err);
g_assert_no_error (err);
g_assert_true (success);
g_assert_cmpint (lfb_event_get_state (event), ==, LFB_EVENT_STATE_RUNNING);
/* "Return" event */ /* "Return" event */
*cmp = event; *cmp = event;
g_main_loop_quit (mainloop); g_main_loop_quit (mainloop);
@@ -169,6 +191,32 @@ on_event_end_finished (LfbEvent *event,
g_main_loop_quit (mainloop); g_main_loop_quit (mainloop);
} }
static void
test_lfb_integration_event_not_found_async (void)
{
g_autoptr(LfbEvent) event0 = NULL;
LfbEvent *cmp = NULL;
LfbEvent *cmp2 = NULL;
event0 = lfb_event_new ("test-does-not-exist");
g_signal_connect (event0, "feedback-ended", (GCallback)on_feedback_ended, &cmp2);
/* The main loop will only quit if the "feedback-ended" signal actually gets emitted */
g_signal_connect_swapped (event0, "feedback-ended", (GCallback)g_main_loop_quit, mainloop);
lfb_event_trigger_feedback_async (event0,
NULL,
(GAsyncReadyCallback)on_event_triggered,
&cmp);
g_main_loop_run (mainloop);
/* If the signal fired cmp will match event */
g_assert_true (event0 == cmp);
g_assert_true (event0 == cmp2);
g_assert_cmpint (lfb_event_get_state (event0), ==, LFB_EVENT_STATE_ENDED);
g_assert_cmpint (lfb_event_get_end_reason (event0), ==, LFB_EVENT_END_REASON_NOT_FOUND);
}
static void static void
test_lfb_integration_event_async (void) test_lfb_integration_event_async (void)
{ {
@@ -179,7 +227,7 @@ test_lfb_integration_event_async (void)
event0 = lfb_event_new ("test-dummy-0"); event0 = lfb_event_new ("test-dummy-0");
lfb_event_trigger_feedback_async (event0, lfb_event_trigger_feedback_async (event0,
NULL, NULL,
(GAsyncReadyCallback)on_event_triggered, (GAsyncReadyCallback)on_event_triggered_quit,
&cmp1); &cmp1);
g_main_loop_run (mainloop); g_main_loop_run (mainloop);
/* The async finish callback saw the right event */ /* The async finish callback saw the right event */
@@ -195,7 +243,7 @@ test_lfb_integration_event_async (void)
/* The async callback ends the main loop */ /* The async callback ends the main loop */
lfb_event_trigger_feedback_async (event10, lfb_event_trigger_feedback_async (event10,
NULL, NULL,
(GAsyncReadyCallback)on_event_triggered, (GAsyncReadyCallback)on_event_triggered_quit,
&cmp2); &cmp2);
g_main_loop_run (mainloop); g_main_loop_run (mainloop);
@@ -307,6 +355,11 @@ main (gint argc, gchar *argv[])
(gpointer)test_lfb_integration_event_not_found, (gpointer)test_lfb_integration_event_not_found,
(gpointer)fixture_teardown); (gpointer)fixture_teardown);
g_test_add("/feedbackd/lfb-integration/event_not_found_async", TestFixture, NULL,
(gpointer)fixture_setup,
(gpointer)test_lfb_integration_event_not_found_async,
(gpointer)fixture_teardown);
g_test_add("/feedbackd/lfb-integration/profile", TestFixture, NULL, g_test_add("/feedbackd/lfb-integration/profile", TestFixture, NULL,
(gpointer)fixture_setup, (gpointer)fixture_setup,
(gpointer)test_lfb_integration_profile, (gpointer)test_lfb_integration_profile,