Imported Upstream version 16.11
[deb_dpdk.git] / app / test / test_cycles.c
index f6c043a..f189797 100644 (file)
@@ -90,3 +90,48 @@ test_cycles(void)
 }
 
 REGISTER_TEST_COMMAND(cycles_autotest, test_cycles);
+
+/*
+ * rte_delay_us_callback test
+ *
+ * - check if callback is correctly registered/unregistered
+ *
+ */
+
+static unsigned int pattern;
+static void my_rte_delay_us(unsigned int us)
+{
+       pattern += us;
+}
+
+static int
+test_user_delay_us(void)
+{
+       pattern = 0;
+
+       rte_delay_us(2);
+       if (pattern != 0)
+               return -1;
+
+       /* register custom delay function */
+       rte_delay_us_callback_register(my_rte_delay_us);
+
+       rte_delay_us(2);
+       if (pattern != 2)
+               return -1;
+
+       rte_delay_us(3);
+       if (pattern != 5)
+               return -1;
+
+       /* restore original delay function */
+       rte_delay_us_callback_register(rte_delay_us_block);
+
+       rte_delay_us(3);
+       if (pattern != 5)
+               return -1;
+
+       return 0;
+}
+
+REGISTER_TEST_COMMAND(user_delay_us, test_user_delay_us);