summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlberto Garcia <berto@igalia.com>2016-02-18 12:27:05 +0200
committerKevin Wolf <kwolf@redhat.com>2016-02-22 14:08:06 +0100
commiteb8a1a1cbda15d776d6d505f14f61c7852f6a51a (patch)
tree6f389e62399796d8e327d9db4dbafd5c7e844254
parent398befdf50b71176ade6f9c07075a2f41bd6dd32 (diff)
downloadfocaccia-qemu-eb8a1a1cbda15d776d6d505f14f61c7852f6a51a.tar.gz
focaccia-qemu-eb8a1a1cbda15d776d6d505f14f61c7852f6a51a.zip
throttle: Check that burst_level leaks correctly
This patch expands test_leak_bucket() to check that burst_level leaks
correctly.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--tests/test-throttle.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test-throttle.c b/tests/test-throttle.c
index 34f1f9efa1..145ba085f2 100644
--- a/tests/test-throttle.c
+++ b/tests/test-throttle.c
@@ -60,6 +60,22 @@ static void test_leak_bucket(void)
     g_assert(bkt.avg == 150);
     g_assert(bkt.max == 15);
     g_assert(double_cmp(bkt.level, 0));
+
+    /* check that burst_level leaks correctly */
+    bkt.burst_level = 6;
+    bkt.max = 250;
+    bkt.burst_length = 2; /* otherwise burst_level will not leak */
+    throttle_leak_bucket(&bkt, NANOSECONDS_PER_SECOND / 100);
+    g_assert(double_cmp(bkt.burst_level, 3.5));
+
+    throttle_leak_bucket(&bkt, NANOSECONDS_PER_SECOND / 100);
+    g_assert(double_cmp(bkt.burst_level, 1));
+
+    throttle_leak_bucket(&bkt, NANOSECONDS_PER_SECOND / 100);
+    g_assert(double_cmp(bkt.burst_level, 0));
+
+    throttle_leak_bucket(&bkt, NANOSECONDS_PER_SECOND / 100);
+    g_assert(double_cmp(bkt.burst_level, 0));
 }
 
 static void test_compute_wait(void)