[gnome-software] lib: Formalise use of GS_APP_PROGRESS_UNKNOWN
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] lib: Formalise use of GS_APP_PROGRESS_UNKNOWN
- Date: Thu, 14 May 2020 15:01:16 +0000 (UTC)
commit 0c2fa837907773279f9cd7bca46f067c63f52972
Author: Philip Withnall <withnall endlessm com>
Date: Tue Apr 28 18:22:42 2020 +0100
lib: Formalise use of GS_APP_PROGRESS_UNKNOWN
Formalise handling of unknown progress values a little in `lib/` by
using `GS_APP_PROGRESS_UNKNOWN` introduced in the previous few commits.
Signed-off-by: Philip Withnall <withnall endlessm com>
Helps: #276
lib/gs-plugin-loader.c | 8 ++++----
lib/gs-self-test.c | 24 ++++++++++++++++++++++--
2 files changed, 26 insertions(+), 6 deletions(-)
---
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
index 003a06a1..fef08423 100644
--- a/lib/gs-plugin-loader.c
+++ b/lib/gs-plugin-loader.c
@@ -205,15 +205,15 @@ reset_app_progress (GsApp *app)
GsAppList *addons = gs_app_get_addons (app);
GsAppList *related = gs_app_get_related (app);
- gs_app_set_progress (app, 0);
+ gs_app_set_progress (app, GS_APP_PROGRESS_UNKNOWN);
for (guint i = 0; i < gs_app_list_length (addons); i++) {
GsApp *app_addons = gs_app_list_index (addons, i);
- gs_app_set_progress (app_addons, 0);
+ gs_app_set_progress (app_addons, GS_APP_PROGRESS_UNKNOWN);
}
for (guint i = 0; i < gs_app_list_length (related); i++) {
GsApp *app_related = gs_app_list_index (related, i);
- gs_app_set_progress (app_related, 0);
+ gs_app_set_progress (app_related, GS_APP_PROGRESS_UNKNOWN);
}
}
@@ -1626,7 +1626,7 @@ gs_plugin_loader_pending_apps_add (GsPluginLoader *plugin_loader,
GsApp *app = gs_app_list_index (list, i);
g_ptr_array_add (priv->pending_apps, g_object_ref (app));
/* make sure the progress is properly initialized */
- gs_app_set_progress (app, 0);
+ gs_app_set_progress (app, GS_APP_PROGRESS_UNKNOWN);
}
g_idle_add (emit_pending_apps_idle, g_object_ref (plugin_loader));
}
diff --git a/lib/gs-self-test.c b/lib/gs-self-test.c
index 7ac66c9e..0eb5d380 100644
--- a/lib/gs-self-test.c
+++ b/lib/gs-self-test.c
@@ -678,8 +678,11 @@ gs_app_func (void)
/* check setting the progress */
gs_app_set_progress (app, 42);
g_assert_cmpuint (gs_app_get_progress (app), ==, 42);
- gs_app_set_progress (app, 142);
- g_assert_cmpuint (gs_app_get_progress (app), ==, 100);
+ gs_app_set_progress (app, 0);
+ g_assert_cmpuint (gs_app_get_progress (app), ==, 0);
+ gs_app_set_progress (app, GS_APP_PROGRESS_UNKNOWN);
+ g_assert_cmpuint (gs_app_get_progress (app), ==, GS_APP_PROGRESS_UNKNOWN);
+ g_assert_false ((gint) 0 <= (gint) GS_APP_PROGRESS_UNKNOWN && GS_APP_PROGRESS_UNKNOWN <= 100);
/* check pending action */
g_assert_cmpuint (gs_app_get_pending_action (app), ==, GS_PLUGIN_ACTION_UNKNOWN);
@@ -691,6 +694,22 @@ gs_app_func (void)
gs_app_set_state_recover (app);
}
+static void
+gs_app_progress_clamping_func (void)
+{
+ g_autoptr(GsApp) app = NULL;
+
+ if (g_test_subprocess ()) {
+ app = gs_app_new ("gnome-software.desktop");
+ gs_app_set_progress (app, 142);
+ g_assert_cmpuint (gs_app_get_progress (app), ==, 100);
+ } else {
+ g_test_trap_subprocess (NULL, 0, 0);
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*WARNING*cannot set 142% for *, setting instead: 100%*");
+ }
+}
+
static void
gs_app_list_wildcard_dedupe_func (void)
{
@@ -796,6 +815,7 @@ main (int argc, char **argv)
g_test_add_func ("/gnome-software/lib/utils{parse-evr}", gs_utils_parse_evr_func);
g_test_add_func ("/gnome-software/lib/os-release", gs_os_release_func);
g_test_add_func ("/gnome-software/lib/app", gs_app_func);
+ g_test_add_func ("/gnome-software/lib/app/progress-clamping", gs_app_progress_clamping_func);
g_test_add_func ("/gnome-software/lib/app{addons}", gs_app_addons_func);
g_test_add_func ("/gnome-software/lib/app{unique-id}", gs_app_unique_id_func);
g_test_add_func ("/gnome-software/lib/app{thread}", gs_app_thread_func);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]