summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/docker/docker.py4
-rw-r--r--tests/migration/guestperf/shell.py8
-rw-r--r--tests/test-throttle.c80
3 files changed, 87 insertions, 5 deletions
diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index ee40ca04d9..81c87ee329 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -13,12 +13,14 @@
import os
import sys
+sys.path.append(os.path.join(os.path.dirname(__file__),
+ '..', '..', 'scripts'))
+import argparse
import subprocess
import json
import hashlib
import atexit
import uuid
-import argparse
import tempfile
import re
import signal
diff --git a/tests/migration/guestperf/shell.py b/tests/migration/guestperf/shell.py
index 185c5697a6..7992459a97 100644
--- a/tests/migration/guestperf/shell.py
+++ b/tests/migration/guestperf/shell.py
@@ -18,12 +18,14 @@
#
-import argparse
-import fnmatch
import os
import os.path
-import platform
import sys
+sys.path.append(os.path.join(os.path.dirname(__file__),
+ '..', '..', '..', 'scripts'))
+import argparse
+import fnmatch
+import platform
from guestperf.hardware import Hardware
from guestperf.engine import Engine
diff --git a/tests/test-throttle.c b/tests/test-throttle.c
index 768f11dfed..bf7a5a648a 100644
--- a/tests/test-throttle.c
+++ b/tests/test-throttle.c
@@ -284,13 +284,14 @@ static void test_enabled(void)
for (i = 0; i < BUCKETS_COUNT; i++) {
throttle_config_init(&cfg);
set_cfg_value(false, i, 150);
+ g_assert(throttle_is_valid(&cfg, NULL));
g_assert(throttle_enabled(&cfg));
}
for (i = 0; i < BUCKETS_COUNT; i++) {
throttle_config_init(&cfg);
set_cfg_value(false, i, -150);
- g_assert(!throttle_enabled(&cfg));
+ g_assert(!throttle_is_valid(&cfg, NULL));
}
}
@@ -377,6 +378,82 @@ static void test_is_valid(void)
test_is_valid_for_value(1, true);
}
+static void test_ranges(void)
+{
+ int i;
+
+ for (i = 0; i < BUCKETS_COUNT; i++) {
+ LeakyBucket *b = &cfg.buckets[i];
+ throttle_config_init(&cfg);
+
+ /* avg = 0 means throttling is disabled, but the config is valid */
+ b->avg = 0;
+ g_assert(throttle_is_valid(&cfg, NULL));
+ g_assert(!throttle_enabled(&cfg));
+
+ /* These are valid configurations (values <= THROTTLE_VALUE_MAX) */
+ b->avg = 1;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ b->avg = THROTTLE_VALUE_MAX;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ b->avg = THROTTLE_VALUE_MAX;
+ b->max = THROTTLE_VALUE_MAX;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ /* Values over THROTTLE_VALUE_MAX are not allowed */
+ b->avg = THROTTLE_VALUE_MAX + 1;
+ g_assert(!throttle_is_valid(&cfg, NULL));
+
+ b->avg = THROTTLE_VALUE_MAX;
+ b->max = THROTTLE_VALUE_MAX + 1;
+ g_assert(!throttle_is_valid(&cfg, NULL));
+
+ /* burst_length must be between 1 and THROTTLE_VALUE_MAX */
+ b->avg = 1;
+ b->max = 1;
+ b->burst_length = 0;
+ g_assert(!throttle_is_valid(&cfg, NULL));
+
+ b->avg = 1;
+ b->max = 1;
+ b->burst_length = 1;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ b->avg = 1;
+ b->max = 1;
+ b->burst_length = THROTTLE_VALUE_MAX;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ b->avg = 1;
+ b->max = 1;
+ b->burst_length = THROTTLE_VALUE_MAX + 1;
+ g_assert(!throttle_is_valid(&cfg, NULL));
+
+ /* burst_length * max cannot exceed THROTTLE_VALUE_MAX */
+ b->avg = 1;
+ b->max = 2;
+ b->burst_length = THROTTLE_VALUE_MAX / 2;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ b->avg = 1;
+ b->max = 3;
+ b->burst_length = THROTTLE_VALUE_MAX / 2;
+ g_assert(!throttle_is_valid(&cfg, NULL));
+
+ b->avg = 1;
+ b->max = THROTTLE_VALUE_MAX;
+ b->burst_length = 1;
+ g_assert(throttle_is_valid(&cfg, NULL));
+
+ b->avg = 1;
+ b->max = THROTTLE_VALUE_MAX;
+ b->burst_length = 2;
+ g_assert(!throttle_is_valid(&cfg, NULL));
+ }
+}
+
static void test_max_is_missing_limit(void)
{
int i;
@@ -668,6 +745,7 @@ int main(int argc, char **argv)
g_test_add_func("/throttle/config/enabled", test_enabled);
g_test_add_func("/throttle/config/conflicting", test_conflicting_config);
g_test_add_func("/throttle/config/is_valid", test_is_valid);
+ g_test_add_func("/throttle/config/ranges", test_ranges);
g_test_add_func("/throttle/config/max", test_max_is_missing_limit);
g_test_add_func("/throttle/config/iops_size",
test_iops_size_is_missing_limit);