use interpolation for more accurate percentile calculation
[fio.git] / t / axmap.c
index dafcedf4cf2ca4c95e8f22478d608e2800b96158..1512737eda8228a35589122e50cbc1128721a31b 100644 (file)
--- a/t/axmap.c
+++ b/t/axmap.c
@@ -116,11 +116,21 @@ struct overlap_test {
 static int test_overlap(void)
 {
        struct overlap_test tests[] = {
+               {
+                       .start  = 0,
+                       .nr     = 0,
+                       .ret    = 0,
+               },
                {
                        .start  = 16,
                        .nr     = 16,
                        .ret    = 16,
                },
+               {
+                       .start  = 16,
+                       .nr     = 0,
+                       .ret    = 0,
+               },
                {
                        .start  = 0,
                        .nr     = 32,
@@ -181,6 +191,26 @@ static int test_overlap(void)
                        .nr     = 2,
                        .ret    = 0,
                },
+               {
+                       .start  = 1100,
+                       .nr     = 1,
+                       .ret    = 1,
+               },
+               {
+                       .start  = 1000,
+                       .nr     = 256,
+                       .ret    = 100,
+               },
+               {
+                       .start  = 22684,
+                       .nr     = 1,
+                       .ret    = 1,
+               },
+               {
+                       .start  = 22670,
+                       .nr     = 60,
+                       .ret    = 14,
+               },
                {
                        .start  = -1U,
                },
@@ -189,7 +219,7 @@ static int test_overlap(void)
        int entries, i, ret, err = 0;
 
        entries = 0;
-       for (i = 0; tests[i].start != 1U; i++) {
+       for (i = 0; tests[i].start != -1U; i++) {
                unsigned int this = tests[i].start + tests[i].nr;
 
                if (this > entries)
@@ -214,7 +244,8 @@ static int test_overlap(void)
                }
        }
 
-       printf("pass!\n");
+       if (!err)
+               printf("pass!\n");
        axmap_free(map);
        return err;
 }