diff options
Diffstat (limited to 'app/test')
-rw-r--r-- | app/test/test_acl.h | 18 | ||||
-rw-r--r-- | app/test/test_common.c | 32 | ||||
-rw-r--r-- | app/test/test_cryptodev.c | 6 | ||||
-rw-r--r-- | app/test/test_hash.c | 24 | ||||
-rw-r--r-- | app/test/test_hash_perf.c | 3 | ||||
-rw-r--r-- | app/test/test_kni.c | 48 | ||||
-rw-r--r-- | app/test/test_reorder.c | 2 |
7 files changed, 97 insertions, 36 deletions
diff --git a/app/test/test_acl.h b/app/test/test_acl.h index 421f3109..6f5c485a 100644 --- a/app/test/test_acl.h +++ b/app/test/test_acl.h @@ -109,34 +109,40 @@ enum { struct rte_acl_ipv4vlan_rule invalid_layout_rules[] = { /* test src and dst address */ { - .data = {.userdata = 1, .category_mask = 1}, + .data = {.userdata = 1, .category_mask = 1, + .priority = 1}, .src_addr = IPv4(10,0,0,0), .src_mask_len = 24, }, { - .data = {.userdata = 2, .category_mask = 1}, + .data = {.userdata = 2, .category_mask = 1, + .priority = 1}, .dst_addr = IPv4(10,0,0,0), .dst_mask_len = 24, }, /* test src and dst ports */ { - .data = {.userdata = 3, .category_mask = 1}, + .data = {.userdata = 3, .category_mask = 1, + .priority = 1}, .dst_port_low = 100, .dst_port_high = 100, }, { - .data = {.userdata = 4, .category_mask = 1}, + .data = {.userdata = 4, .category_mask = 1, + .priority = 1}, .src_port_low = 100, .src_port_high = 100, }, /* test proto */ { - .data = {.userdata = 5, .category_mask = 1}, + .data = {.userdata = 5, .category_mask = 1, + .priority = 1}, .proto = 0xf, .proto_mask = 0xf }, { - .data = {.userdata = 6, .category_mask = 1}, + .data = {.userdata = 6, .category_mask = 1, + .priority = 1}, .dst_port_low = 0xf, .dst_port_high = 0xf, } diff --git a/app/test/test_common.c b/app/test/test_common.c index 8effa2f9..afd2b99f 100644 --- a/app/test/test_common.c +++ b/app/test/test_common.c @@ -159,12 +159,44 @@ test_align(void) } static int +test_fls(void) +{ + struct fls_test_vector { + uint32_t arg; + int rc; + }; + int expected, rc; + uint32_t i, arg; + + const struct fls_test_vector test[] = { + {0x0, 0}, + {0x1, 1}, + {0x4000, 15}, + {0x80000000, 32}, + }; + + for (i = 0; i < RTE_DIM(test); i++) { + arg = test[i].arg; + rc = rte_fls_u32(arg); + expected = test[i].rc; + if (rc != expected) { + printf("Wrong rte_fls_u32(0x%x) rc=%d, expected=%d\n", + arg, rc, expected); + return TEST_FAILED; + } + } + + return 0; +} + +static int test_common(void) { int ret = 0; ret |= test_align(); ret |= test_macros(0); ret |= test_misc(); + ret |= test_fls(); return ret; } diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index a1f8717b..209c4024 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -557,7 +557,7 @@ test_device_configure_invalid_queue_pair_ids(void) /* valid - max value queue pairs */ - ts_params->conf.nb_queue_pairs = MAX_NUM_QPS_PER_QAT_DEVICE; + ts_params->conf.nb_queue_pairs = orig_nb_qps; TEST_ASSERT_SUCCESS(rte_cryptodev_configure(ts_params->valid_devs[0], &ts_params->conf), @@ -588,7 +588,7 @@ test_device_configure_invalid_queue_pair_ids(void) /* invalid - max value + 1 queue pairs */ - ts_params->conf.nb_queue_pairs = MAX_NUM_QPS_PER_QAT_DEVICE + 1; + ts_params->conf.nb_queue_pairs = orig_nb_qps + 1; TEST_ASSERT_FAIL(rte_cryptodev_configure(ts_params->valid_devs[0], &ts_params->conf), @@ -735,7 +735,7 @@ test_queue_pair_descriptor_setup(void) /* test invalid queue pair id */ qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT; /*valid */ - qp_id = DEFAULT_NUM_QPS_PER_QAT_DEVICE; /*invalid */ + qp_id = ts_params->conf.nb_queue_pairs; /*invalid */ TEST_ASSERT_FAIL(rte_cryptodev_queue_pair_setup( ts_params->valid_devs[0], diff --git a/app/test/test_hash.c b/app/test/test_hash.c index 2c87efe6..c55ec0da 100644 --- a/app/test/test_hash.c +++ b/app/test/test_hash.c @@ -110,29 +110,23 @@ static uint32_t pseudo_hash(__attribute__((unused)) const void *keys, return 3; } +#define UNIT_TEST_HASH_VERBOSE 0 /* * Print out result of unit test hash operation. */ -#if defined(UNIT_TEST_HASH_VERBOSE) static void print_key_info(const char *msg, const struct flow_key *key, int32_t pos) { - uint8_t *p = (uint8_t *)key; - unsigned i; - - printf("%s key:0x", msg); - for (i = 0; i < sizeof(struct flow_key); i++) { - printf("%02X", p[i]); + if (UNIT_TEST_HASH_VERBOSE) { + const uint8_t *p = (const uint8_t *)key; + unsigned int i; + + printf("%s key:0x", msg); + for (i = 0; i < sizeof(struct flow_key); i++) + printf("%02X", p[i]); + printf(" @ pos %d\n", pos); } - printf(" @ pos %d\n", pos); -} -#else -static void print_key_info(__attribute__((unused)) const char *msg, - __attribute__((unused)) const struct flow_key *key, - __attribute__((unused)) int32_t pos) -{ } -#endif /* Keys used by unit test functions */ static struct flow_key keys[5] = { { diff --git a/app/test/test_hash_perf.c b/app/test/test_hash_perf.c index c0051b20..b0514b10 100644 --- a/app/test/test_hash_perf.c +++ b/app/test/test_hash_perf.c @@ -49,7 +49,8 @@ #define MAX_ENTRIES (1 << 19) #define KEYS_TO_ADD (MAX_ENTRIES * 3 / 4) /* 75% table utilization */ #define NUM_LOOKUPS (KEYS_TO_ADD * 5) /* Loop among keys added, several times */ -#define BUCKET_SIZE 4 +/* BUCKET_SIZE should be same as RTE_HASH_BUCKET_ENTRIES in rte_hash library */ +#define BUCKET_SIZE 8 #define NUM_BUCKETS (MAX_ENTRIES / BUCKET_SIZE) #define MAX_KEYSIZE 64 #define NUM_KEYSIZES 10 diff --git a/app/test/test_kni.c b/app/test/test_kni.c index db17fdf3..c6e34d40 100644 --- a/app/test/test_kni.c +++ b/app/test/test_kni.c @@ -36,6 +36,7 @@ #include <unistd.h> #include <string.h> #include <sys/wait.h> +#include <dirent.h> #include "test.h" @@ -57,6 +58,8 @@ #define IFCONFIG "/sbin/ifconfig " #define TEST_KNI_PORT "test_kni_port" +#define KNI_MODULE_PATH "/sys/module/rte_kni" +#define KNI_MODULE_PARAM_LO KNI_MODULE_PATH"/parameters/lo_mode" #define KNI_TEST_MAX_PORTS 4 /* The threshold number of mbufs to be transmitted or received. */ #define KNI_NUM_MBUF_THRESHOLD 100 @@ -472,13 +475,28 @@ static int test_kni(void) { int ret = -1; - uint8_t nb_ports, port_id; + uint8_t port_id; struct rte_kni *kni; struct rte_mempool *mp; struct rte_kni_conf conf; struct rte_eth_dev_info info; struct rte_kni_ops ops; + FILE *fd; + DIR *dir; + char buf[16]; + + dir = opendir(KNI_MODULE_PATH); + if (!dir) { + if (errno == ENOENT) { + printf("Cannot run UT due to missing rte_kni module\n"); + return -1; + } + printf("opendir: %s", strerror(errno)); + return -1; + } + closedir(dir); + /* Initialize KNI subsytem */ rte_kni_init(KNI_TEST_MAX_PORTS); @@ -493,12 +511,6 @@ test_kni(void) return -1; } - nb_ports = rte_eth_dev_count(); - if (nb_ports == 0) { - printf("no supported nic port found\n"); - return -1; - } - /* configuring port 0 for the test is enough */ port_id = 0; ret = rte_eth_dev_configure(port_id, 1, 1, &port_conf); @@ -527,9 +539,25 @@ test_kni(void) rte_eth_promiscuous_enable(port_id); /* basic test of kni processing */ - ret = test_kni_processing(port_id, mp); - if (ret < 0) - goto fail; + fd = fopen(KNI_MODULE_PARAM_LO, "r"); + if (fd == NULL) { + printf("fopen: %s", strerror(errno)); + return -1; + } + memset(&buf, 0, sizeof(buf)); + if (fgets(buf, sizeof(buf), fd)) { + if (!strncmp(buf, "lo_mode_fifo", strlen("lo_mode_fifo")) || + !strncmp(buf, "lo_mode_fifo_skb", + strlen("lo_mode_fifo_skb"))) { + ret = test_kni_processing(port_id, mp); + if (ret < 0) { + fclose(fd); + goto fail; + } + } else + printf("test_kni_processing skipped because of missing rte_kni module lo_mode argument\n"); + } + fclose(fd); /* test of allocating KNI with NULL mempool pointer */ memset(&info, 0, sizeof(info)); diff --git a/app/test/test_reorder.c b/app/test/test_reorder.c index add45511..d7dab321 100644 --- a/app/test/test_reorder.c +++ b/app/test/test_reorder.c @@ -300,7 +300,7 @@ test_reorder_drain(void) goto exit; } if (robufs[0] != NULL) - rte_pktmbuf_free(robufs[i]); + rte_pktmbuf_free(robufs[0]); /* Insert more packets * RB[] = {NULL, NULL, NULL, NULL} |