app/test: rework command registration
[dpdk.git] / app / test / test_meter.c
index 688978d..26b0565 100644 (file)
@@ -1,13 +1,13 @@
 /*-
  *   BSD LICENSE
- * 
- *   Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
  *   All rights reserved.
- * 
+ *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
  *   are met:
- * 
+ *
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
@@ -17,7 +17,7 @@
  *     * Neither the name of Intel Corporation nor the names of its
  *       contributors may be used to endorse or promote products derived
  *       from this software without specific prior written permission.
- * 
+ *
  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 #include <stdint.h>
 #include <unistd.h>
 
-#include <cmdline_parse.h>
-
 #include "test.h"
 
-#ifdef RTE_LIBRTE_METER
-
 #include <rte_cycles.h>
 #include <rte_meter.h>
 
 #define TM_TEST_TRTCM_CBS_DF 2048
 #define TM_TEST_TRTCM_PBS_DF 4096
 
-static struct rte_meter_srtcm_params sparams = 
-                               {.cir = TM_TEST_SRTCM_CIR_DF,  
-                                .cbs = TM_TEST_SRTCM_CBS_DF, 
+static struct rte_meter_srtcm_params sparams =
+                               {.cir = TM_TEST_SRTCM_CIR_DF,
+                                .cbs = TM_TEST_SRTCM_CBS_DF,
                                 .ebs = TM_TEST_SRTCM_EBS_DF,};
 
-static struct  rte_meter_trtcm_params tparams= 
-                               {.cir = TM_TEST_TRTCM_CIR_DF,  
-                                .pir = TM_TEST_TRTCM_PIR_DF,  
-                                .cbs = TM_TEST_TRTCM_CBS_DF, 
+static struct  rte_meter_trtcm_params tparams=
+                               {.cir = TM_TEST_TRTCM_CIR_DF,
+                                .pir = TM_TEST_TRTCM_PIR_DF,
+                                .cbs = TM_TEST_TRTCM_CBS_DF,
                                 .pbs = TM_TEST_TRTCM_PBS_DF,};
 
 /**
  * functional test for rte_meter_srtcm_config
  */
-static inline int 
+static inline int
 tm_test_srtcm_config(void)
 {
 #define SRTCM_CFG_MSG "srtcm_config"
@@ -114,16 +110,16 @@ tm_test_srtcm_config(void)
        sparams1 = sparams;
        sparams1.ebs = 0;
        if(rte_meter_srtcm_config(&sm, &sparams1) != 0)
-               melog(SRTCM_CFG_MSG);   
+               melog(SRTCM_CFG_MSG);
 
        sparams1 = sparams;
        sparams1.cbs = 0;
        if(rte_meter_srtcm_config(&sm, &sparams1) != 0)
-               melog(SRTCM_CFG_MSG);   
+               melog(SRTCM_CFG_MSG);
 
        /* usual parameter, should be successful */
        if(rte_meter_srtcm_config(&sm, &sparams) != 0)
-               melog(SRTCM_CFG_MSG);   
+               melog(SRTCM_CFG_MSG);
 
        return 0;
 
@@ -132,7 +128,7 @@ tm_test_srtcm_config(void)
 /**
  * functional test for rte_meter_trtcm_config
  */
-static inline int 
+static inline int
 tm_test_trtcm_config(void)
 {
        struct rte_meter_trtcm tm;
@@ -161,12 +157,12 @@ tm_test_trtcm_config(void)
        tparams1 = tparams;
        tparams1.pbs = 0;
        if(rte_meter_trtcm_config(&tm, &tparams1) == 0)
-               melog(TRTCM_CFG_MSG);                   
+               melog(TRTCM_CFG_MSG);
 
        tparams1 = tparams;
        tparams1.pir = 0;
        if(rte_meter_trtcm_config(&tm, &tparams1) == 0)
-               melog(TRTCM_CFG_MSG);   
+               melog(TRTCM_CFG_MSG);
 
        /* pir should be greater or equal to cir */
        tparams1 = tparams;
@@ -176,7 +172,7 @@ tm_test_trtcm_config(void)
 
        /* usual parameter, should be successful */
        if(rte_meter_trtcm_config(&tm, &tparams) != 0)
-               melog(TRTCM_CFG_MSG);   
+               melog(TRTCM_CFG_MSG);
 
        return 0;
 }
@@ -184,29 +180,29 @@ tm_test_trtcm_config(void)
 /**
  * functional test for rte_meter_srtcm_color_blind_check
  */
-static inline int 
+static inline int
 tm_test_srtcm_color_blind_check(void)
 {
 #define SRTCM_BLIND_CHECK_MSG "srtcm_blind_check"
        struct rte_meter_srtcm sm;
        uint64_t time;
        uint64_t hz = rte_get_tsc_hz();
-       
+
        /* Test green */
        if(rte_meter_srtcm_config(&sm, &sparams) != 0)
                melog(SRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_srtcm_color_blind_check(
-               &sm, time, TM_TEST_SRTCM_CBS_DF - 1) 
+               &sm, time, TM_TEST_SRTCM_CBS_DF - 1)
                != e_RTE_METER_GREEN)
                melog(SRTCM_BLIND_CHECK_MSG" GREEN");
-       
+
        /* Test yellow */
        if(rte_meter_srtcm_config(&sm, &sparams) != 0)
                melog(SRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_srtcm_color_blind_check(
-               &sm, time, TM_TEST_SRTCM_CBS_DF + 1) 
+               &sm, time, TM_TEST_SRTCM_CBS_DF + 1)
                != e_RTE_METER_YELLOW)
                melog(SRTCM_BLIND_CHECK_MSG" YELLOW");
 
@@ -222,10 +218,10 @@ tm_test_srtcm_color_blind_check(void)
                melog(SRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_srtcm_color_blind_check(
-               &sm, time, TM_TEST_SRTCM_EBS_DF + 1) 
+               &sm, time, TM_TEST_SRTCM_EBS_DF + 1)
                != e_RTE_METER_RED)
                melog(SRTCM_BLIND_CHECK_MSG" RED");
-       
+
        return 0;
 
 }
@@ -233,7 +229,7 @@ tm_test_srtcm_color_blind_check(void)
 /**
  * functional test for rte_meter_trtcm_color_blind_check
  */
-static inline int 
+static inline int
 tm_test_trtcm_color_blind_check(void)
 {
 #define TRTCM_BLIND_CHECK_MSG "trtcm_blind_check"
@@ -241,22 +237,22 @@ tm_test_trtcm_color_blind_check(void)
        uint64_t time;
        struct rte_meter_trtcm tm;
        uint64_t hz = rte_get_tsc_hz();
-       
+
        /* Test green */
        if(rte_meter_trtcm_config(&tm, &tparams) != 0)
                melog(TRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_trtcm_color_blind_check(
-               &tm, time, TM_TEST_TRTCM_CBS_DF - 1) 
+               &tm, time, TM_TEST_TRTCM_CBS_DF - 1)
                != e_RTE_METER_GREEN)
                melog(TRTCM_BLIND_CHECK_MSG" GREEN");
-       
+
        /* Test yellow */
        if(rte_meter_trtcm_config(&tm, &tparams) != 0)
                melog(TRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_trtcm_color_blind_check(
-               &tm, time, TM_TEST_TRTCM_CBS_DF + 1) 
+               &tm, time, TM_TEST_TRTCM_CBS_DF + 1)
                != e_RTE_METER_YELLOW)
                melog(TRTCM_BLIND_CHECK_MSG" YELLOW");
 
@@ -264,7 +260,7 @@ tm_test_trtcm_color_blind_check(void)
                melog(TRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_trtcm_color_blind_check(
-               &tm, time, TM_TEST_TRTCM_PBS_DF - 1) 
+               &tm, time, TM_TEST_TRTCM_PBS_DF - 1)
                != e_RTE_METER_YELLOW)
                melog(TRTCM_BLIND_CHECK_MSG" YELLOW");
 
@@ -273,7 +269,7 @@ tm_test_trtcm_color_blind_check(void)
                melog(TRTCM_BLIND_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_trtcm_color_blind_check(
-               &tm, time, TM_TEST_TRTCM_PBS_DF + 1) 
+               &tm, time, TM_TEST_TRTCM_PBS_DF + 1)
                != e_RTE_METER_RED)
                melog(TRTCM_BLIND_CHECK_MSG" RED");
 
@@ -284,13 +280,13 @@ tm_test_trtcm_color_blind_check(void)
 /**
  * @in[4] : the flags packets carries.
  * @in[4] : the flags function expect to return.
- * It will do blind check at the time of 1 second from beginning. 
- * At the time, it will use packets length of cbs -1, cbs + 1, 
+ * It will do blind check at the time of 1 second from beginning.
+ * At the time, it will use packets length of cbs -1, cbs + 1,
  * ebs -1 and ebs +1 with flag in[0], in[1], in[2] and in[3] to do
  * aware check, expect flag out[0], out[1], out[2] and out[3]
  */
 
-static inline int 
+static inline int
 tm_test_srtcm_aware_check
 (enum rte_meter_color in[4], enum rte_meter_color out[4])
 {
@@ -298,14 +294,14 @@ tm_test_srtcm_aware_check
        struct rte_meter_srtcm sm;
        uint64_t time;
        uint64_t hz = rte_get_tsc_hz();
-       
+
        if(rte_meter_srtcm_config(&sm, &sparams) != 0)
                melog(SRTCM_AWARE_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_srtcm_color_aware_check(
                &sm, time, TM_TEST_SRTCM_CBS_DF - 1, in[0]) != out[0])
                melog(SRTCM_AWARE_CHECK_MSG" %u:%u", in[0], out[0]);
-       
+
        if(rte_meter_srtcm_config(&sm, &sparams) != 0)
                melog(SRTCM_AWARE_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
@@ -326,7 +322,7 @@ tm_test_srtcm_aware_check
        if(rte_meter_srtcm_color_aware_check(
                &sm, time, TM_TEST_SRTCM_EBS_DF + 1, in[3]) != out[3])
                melog(SRTCM_AWARE_CHECK_MSG" %u:%u", in[3], out[3]);
-       
+
        return 0;
 }
 
@@ -334,14 +330,14 @@ tm_test_srtcm_aware_check
 /**
  * functional test for rte_meter_srtcm_color_aware_check
  */
-static inline int 
+static inline int
 tm_test_srtcm_color_aware_check(void)
 {
        enum rte_meter_color in[4], out[4];
 
        /**
-         * test 4 points that will produce green, yellow, yellow, red flag 
-         * if using blind check 
+         * test 4 points that will produce green, yellow, yellow, red flag
+         * if using blind check
          */
 
        /* previouly have a green, test points should keep unchanged */
@@ -354,7 +350,7 @@ tm_test_srtcm_color_aware_check(void)
                return -1;
 
        /**
-         * previously have a yellow, green & yellow = yellow 
+         * previously have a yellow, green & yellow = yellow
          * yellow & red = red
          */
        in[0] = in[1] = in[2] = in[3] = e_RTE_METER_YELLOW;
@@ -364,9 +360,9 @@ tm_test_srtcm_color_aware_check(void)
        out[3] = e_RTE_METER_RED;
        if(tm_test_srtcm_aware_check(in, out) != 0)
                return -1;
-       
+
        /**
-         * previously have a red, red & green = red 
+         * previously have a red, red & green = red
          * red & yellow = red
          */
        in[0] = in[1] = in[2] = in[3] = e_RTE_METER_RED;
@@ -383,12 +379,12 @@ tm_test_srtcm_color_aware_check(void)
 /**
  * @in[4] : the flags packets carries.
  * @in[4] : the flags function expect to return.
- * It will do blind check at the time of 1 second from beginning. 
- * At the time, it will use packets length of cbs -1, cbs + 1, 
+ * It will do blind check at the time of 1 second from beginning.
+ * At the time, it will use packets length of cbs -1, cbs + 1,
  * ebs -1 and ebs +1 with flag in[0], in[1], in[2] and in[3] to do
  * aware check, expect flag out[0], out[1], out[2] and out[3]
  */
-static inline int 
+static inline int
 tm_test_trtcm_aware_check
 (enum rte_meter_color in[4], enum rte_meter_color out[4])
 {
@@ -396,14 +392,14 @@ tm_test_trtcm_aware_check
        struct rte_meter_trtcm tm;
        uint64_t time;
        uint64_t hz = rte_get_tsc_hz();
-       
+
        if(rte_meter_trtcm_config(&tm, &tparams) != 0)
                melog(TRTCM_AWARE_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
        if(rte_meter_trtcm_color_aware_check(
                &tm, time, TM_TEST_TRTCM_CBS_DF - 1, in[0]) != out[0])
                melog(TRTCM_AWARE_CHECK_MSG" %u:%u", in[0], out[0]);
-       
+
        if(rte_meter_trtcm_config(&tm, &tparams) != 0)
                melog(TRTCM_AWARE_CHECK_MSG);
        time = rte_get_tsc_cycles() + hz;
@@ -424,7 +420,7 @@ tm_test_trtcm_aware_check
        if(rte_meter_trtcm_color_aware_check(
                &tm, time, TM_TEST_TRTCM_PBS_DF + 1, in[3]) != out[3])
                melog(TRTCM_AWARE_CHECK_MSG" %u:%u", in[3], out[3]);
-       
+
        return 0;
 }
 
@@ -433,13 +429,13 @@ tm_test_trtcm_aware_check
  * functional test for rte_meter_trtcm_color_aware_check
  */
 
-static inline int 
+static inline int
 tm_test_trtcm_color_aware_check(void)
 {
        enum rte_meter_color in[4], out[4];
        /**
-         * test 4 points that will produce green, yellow, yellow, red flag 
-         * if using blind check 
+         * test 4 points that will produce green, yellow, yellow, red flag
+         * if using blind check
          */
 
        /* previouly have a green, test points should keep unchanged */
@@ -450,7 +446,7 @@ tm_test_trtcm_color_aware_check(void)
        out[3] = e_RTE_METER_RED;
        if(tm_test_trtcm_aware_check(in, out) != 0)
                return -1;
-       
+
        in[0] = in[1] = in[2] = in[3] = e_RTE_METER_YELLOW;
        out[0] = e_RTE_METER_YELLOW;
        out[1] = e_RTE_METER_YELLOW;
@@ -458,7 +454,7 @@ tm_test_trtcm_color_aware_check(void)
        out[3] = e_RTE_METER_RED;
        if(tm_test_trtcm_aware_check(in, out) != 0)
                return -1;
-       
+
        in[0] = in[1] = in[2] = in[3] = e_RTE_METER_RED;
        out[0] = e_RTE_METER_RED;
        out[1] = e_RTE_METER_RED;
@@ -473,14 +469,14 @@ tm_test_trtcm_color_aware_check(void)
 /**
  * test main entrance for library meter
  */
-int 
+static int
 test_meter(void)
 {
        if(tm_test_srtcm_config() != 0 )
                return -1;
 
        if(tm_test_trtcm_config() != 0 )
-               return -1;      
+               return -1;
 
        if(tm_test_srtcm_color_blind_check() != 0)
                return -1;
@@ -490,20 +486,12 @@ test_meter(void)
 
        if(tm_test_srtcm_color_aware_check()!= 0)
                return -1;
-       
+
        if(tm_test_trtcm_color_aware_check()!= 0)
                return -1;
-       
+
        return 0;
 
 }
 
-#else /* RTE_LIBRTE_METER */
-
-int
-test_meter(void)
-{
-       printf("The meter library is not included in this build\n");
-       return 0;
-}
-#endif /* RTE_LIBRTE_METER */
+REGISTER_TEST_COMMAND(meter_autotest, test_meter);