summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRehas Sachdeva <aquannie@gmail.com>2017-02-20 14:40:00 +0300
committerMatthew Wilcox <mawilcox@microsoft.com>2017-03-07 21:18:19 +0300
commit166bb1f532fd9fe1b81c6b411ad5d5c9dd21a685 (patch)
tree88c78261a7976af4533989e52ae104f206fa63b5
parent2eacc79c27eb683c4a3ded80c2629387ee0d4e04 (diff)
downloadlinux-166bb1f532fd9fe1b81c6b411ad5d5c9dd21a685.tar.xz
radix tree test suite: Add tests for ida_simple_get() and ida_simple_remove()
Assert that ida_simple_get() allocates an id in the passed range or returns error on failure, and ida_simple_remove() releases an allocated id. Signed-off-by: Rehas Sachdeva <aquannie@gmail.com> Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
-rw-r--r--tools/testing/radix-tree/idr-test.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/testing/radix-tree/idr-test.c b/tools/testing/radix-tree/idr-test.c
index f20690ac3a97..86de901fa5c6 100644
--- a/tools/testing/radix-tree/idr-test.c
+++ b/tools/testing/radix-tree/idr-test.c
@@ -387,6 +387,24 @@ void ida_check_random(void)
goto repeat;
}
+void ida_simple_get_remove_test(void)
+{
+ DEFINE_IDA(ida);
+ unsigned long i;
+
+ for (i = 0; i < 10000; i++) {
+ assert(ida_simple_get(&ida, 0, 20000, GFP_KERNEL) == i);
+ }
+ assert(ida_simple_get(&ida, 5, 30, GFP_KERNEL) < 0);
+
+ for (i = 0; i < 10000; i++) {
+ ida_simple_remove(&ida, i);
+ }
+ assert(ida_is_empty(&ida));
+
+ ida_destroy(&ida);
+}
+
void ida_checks(void)
{
DEFINE_IDA(ida);
@@ -453,6 +471,7 @@ void ida_checks(void)
ida_check_max();
ida_check_conv();
ida_check_random();
+ ida_simple_get_remove_test();
radix_tree_cpu_dead(1);
}