# longaarch64 only - related issue: https://gitlab.freedesktop.org/upower/upower/-/issues/195
diff --git a/src/up-self-test.c b/src/up-self-test.c
index f60618f..3f39c12 100644
--- a/src/up-self-test.c
+++ b/src/up-self-test.c
@@ -172,20 +172,20 @@ up_test_history_func (void)
 	up_history_set_time_empty_data (history, 12346);
 	up_history_set_time_full_data (history, 54322);
 
-	g_usleep (2 * G_USEC_PER_SEC);
+	g_usleep (5 * G_USEC_PER_SEC);
 	up_history_set_charge_data (history, 90);
 	up_history_set_rate_data (history, 1.00f);
 	up_history_set_time_empty_data (history, 12345);
 	up_history_set_time_full_data (history, 54321);
 
-	g_usleep (2 * G_USEC_PER_SEC);
+	g_usleep (5 * G_USEC_PER_SEC);
 	up_history_set_charge_data (history, 95);
 	up_history_set_rate_data (history, 1.01f);
 	up_history_set_time_empty_data (history, 12344);
 	up_history_set_time_full_data (history, 54320);
 
-	/* get data for last 10 seconds */
-	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 10, 100);
+	/* get data for last 20 seconds */
+	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 20, 100);
 	g_assert (array != NULL);
 	g_assert_cmpint (array->len, ==, 3);
 
@@ -212,7 +212,7 @@ up_test_history_func (void)
         /* request fewer items than we have in our history; should have the
          * same order: first one is the most recent, and the data gets
          * interpolated */
-	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 10, 2);
+	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 20, 2);
 	g_assert (array != NULL);
 	g_assert_cmpint (array->len, ==, 2);
 
@@ -242,8 +242,8 @@ up_test_history_func (void)
 	up_history_set_directory (history, history_dir);
 	up_history_set_id (history, "test");
 
-	/* get data for last 10 seconds */
-	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 10, 100);
+	/* get data for last 20 seconds */
+	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 20, 100);
 	g_assert (array != NULL);
 	g_assert_cmpint (array->len, ==, 4); /* we have inserted an unknown as the first entry */
 	item = g_ptr_array_index (array, 1);
@@ -253,17 +253,23 @@ up_test_history_func (void)
 	g_ptr_array_unref (array);
 
 	/* ensure old entries are purged */
-	up_history_set_max_data_age (history, 2);
-	g_usleep (1100 * G_USEC_PER_SEC / 1000);
+	up_history_set_max_data_age (history, 5);
+	g_usleep (G_USEC_PER_SEC);
 	g_object_unref (history);
 
-	/* ensure only 2 points are returned */
+	/* ensure only 2 points are returned (the two inserted UNKNOWN state points are compressed) */
 	history = up_history_new ();
 	up_history_set_directory (history, history_dir);
 	up_history_set_id (history, "test");
-	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 10, 100);
+	array = up_history_get_data (history, UP_HISTORY_TYPE_CHARGE, 20, 100);
 	g_assert (array != NULL);
 	g_assert_cmpint (array->len, ==, 2);
+
+	item = g_ptr_array_index (array, 0);
+	g_assert_cmpint (up_history_item_get_value (item), ==, 0);
+	item = g_ptr_array_index (array, 1);
+	g_assert_cmpint (up_history_item_get_value (item), ==, 0);
+
 	g_ptr_array_unref (array);
 
 	/* unref */

