allow a time offset to be added so we don't actually have to wait in make check

This commit is contained in:
Richard Hughes 2007-12-23 21:25:04 +00:00
parent db666fda60
commit f868e906cd

View File

@ -56,6 +56,7 @@ static void pk_time_finalize (GObject *object);
struct PkTimePrivate struct PkTimePrivate
{ {
gboolean finished; gboolean finished;
guint time_offset; /* ms */
GPtrArray *array; GPtrArray *array;
GTimer *timer; GTimer *timer;
}; };
@ -82,6 +83,8 @@ pk_time_get_elapsed (PkTime *time)
elapsed = g_timer_elapsed (time->priv->timer, NULL); elapsed = g_timer_elapsed (time->priv->timer, NULL);
elapsed *= 1000; elapsed *= 1000;
elapsed += time->priv->time_offset;
return (guint) elapsed; return (guint) elapsed;
} }
@ -182,20 +185,19 @@ gboolean
pk_time_add_data (PkTime *time, guint percentage) pk_time_add_data (PkTime *time, guint percentage)
{ {
PkTimeItem *item; PkTimeItem *item;
gdouble elapsed; guint elapsed;
g_return_val_if_fail (time != NULL, FALSE); g_return_val_if_fail (time != NULL, FALSE);
g_return_val_if_fail (PK_IS_TIME (time), FALSE); g_return_val_if_fail (PK_IS_TIME (time), FALSE);
/* get runtime in ms */ /* get runtime in ms */
elapsed = g_timer_elapsed (time->priv->timer, NULL); elapsed = pk_time_get_elapsed (time);
elapsed *= 1000;
pk_debug ("adding %i at %i (ms)", percentage, (guint) elapsed); pk_debug ("adding %i at %i (ms)", percentage, elapsed);
/* create a new object and add to the array */ /* create a new object and add to the array */
item = g_new0 (PkTimeItem, 1); item = g_new0 (PkTimeItem, 1);
item->time = (guint) elapsed; item->time = elapsed;
item->percentage = percentage; item->percentage = percentage;
g_ptr_array_add (time->priv->array, item); g_ptr_array_add (time->priv->array, item);
@ -222,6 +224,7 @@ static void
pk_time_init (PkTime *time) pk_time_init (PkTime *time)
{ {
time->priv = PK_TIME_GET_PRIVATE (time); time->priv = PK_TIME_GET_PRIVATE (time);
time->priv->time_offset = 0;
time->priv->array = g_ptr_array_new (); time->priv->array = g_ptr_array_new ();
time->priv->timer = g_timer_new (); time->priv->timer = g_timer_new ();
} }
@ -337,7 +340,7 @@ libst_time (LibSelfTest *test)
libst_title (test, "make sure we can get remaining correctly"); libst_title (test, "make sure we can get remaining correctly");
value = 20; value = 20;
while (value < 60) { while (value < 60) {
g_usleep (2*1000*1000); time->priv->time_offset += 2000;
pk_time_add_data (time, value); pk_time_add_data (time, value);
value += 10; value += 10;
} }