On Tue, Nov 25, 2014 at 3:24 PM, Mike Holmes <mike.hol...@linaro.org> wrote: > > On 25 November 2014 at 08:16, Ciprian Barbu <ciprian.ba...@linaro.org> > wrote: >> >> On Mon, Nov 24, 2014 at 11:53 AM, Maxim Uvarov <maxim.uva...@linaro.org> >> wrote: >> > Add basic check for mtu and promisc modes. >> > >> > Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> >> > --- >> > test/validation/Makefile.am | 4 +- >> > test/validation/odp_pktio.c | 164 >> > ++++++++++++++++++++++++++++++++++++++++++++ >> > 2 files changed, 167 insertions(+), 1 deletion(-) >> > create mode 100644 test/validation/odp_pktio.c >> >> I don't know if anyone sees a pattern in naming the testcases, I like >> to think there is a source file for each API header file and the names >> of the files match. With this argument, I suggest renaming >> test/validation/odp_pktio.c to test/validation/odp_packet_io.c. > > > The test suite names need to match the API logical groups they cover which > may encompass more than one header file, but I agree if it is one to one it > appears sensible to show the correlation. > >> >> On a more general note, I think having duplicate names is a really bad >> idea (implementation sources and test sources), perhaps we can later >> rename the test files to something different, > > > We plan to move all the tests into one library post 1.0 so that will have a > profound effect on the names and locations of the files I suspect. > >> >> odp_packet_io_test.c for >> instance. That may not work all to well either, Taras for instance has >> an odp_buffer.c and an odp_buffer_test.c in his buffer cunit, but I >> just don't like duplicate names. > > > I don't like adding _test myself, they are in the test/validation directory > already so it should be obvious they are tests.
How about naming them odpt_xxxx, similar to what the helper files names are. > >> > >> > diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am >> > index 0b831d0..91adc7e 100644 >> > --- a/test/validation/Makefile.am >> > +++ b/test/validation/Makefile.am >> > @@ -6,11 +6,12 @@ AM_LDFLAGS += -L$(CUNIT_PATH)/lib -static -lcunit >> > if ODP_CUNIT_ENABLED >> > TESTS = ${bin_PROGRAMS} >> > check_PROGRAMS = ${bin_PROGRAMS} >> > -bin_PROGRAMS = odp_init odp_queue odp_crypto >> > +bin_PROGRAMS = odp_init odp_queue odp_crypto odp_pktio >> > odp_init_LDFLAGS = $(AM_LDFLAGS) >> > odp_queue_LDFLAGS = $(AM_LDFLAGS) >> > odp_crypto_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/crypto >> > odp_crypto_LDFLAGS = $(AM_LDFLAGS) >> > +odp_pktio_LDFLAGS = $(AM_LDFLAGS) >> > endif >> > >> > dist_odp_init_SOURCES = odp_init.c >> > @@ -18,3 +19,4 @@ dist_odp_queue_SOURCES = odp_queue.c >> > dist_odp_crypto_SOURCES = crypto/odp_crypto_test_async_inp.c \ >> > crypto/odp_crypto_test_sync_inp.c \ >> > odp_crypto.c >> > +dist_odp_pktio_SOURCES = odp_pktio.c >> > diff --git a/test/validation/odp_pktio.c b/test/validation/odp_pktio.c >> > new file mode 100644 >> > index 0000000..e26d820 >> > --- /dev/null >> > +++ b/test/validation/odp_pktio.c >> > @@ -0,0 +1,164 @@ >> > +/* Copyright (c) 2014, Linaro Limited >> > + * All rights reserved. >> > + * >> > + * SPDX-License-Identifier: BSD-3-Clause >> > + */ >> > + >> > +#include <odp.h> >> > +#include "CUnit/Basic.h" >> > + >> > +#define SHM_PKT_POOL_SIZE (512 * 2048 * 2) >> > +#define SHM_PKT_POOL_BUF_SIZE (1024 * 32) >> > + >> > +#define SHM_COMPL_POOL_SIZE (128 * 1024) >> > +#define SHM_COMPL_POOL_BUF_SIZE 128 >> > + >> > +static odp_pktio_t pktio; >> > + >> > +static void test_pktio_mtu(void) >> > +{ >> > + int i; >> > + int ret; >> > + int def; >> > + >> > + def = odp_pktio_mtu(pktio); >> > + CU_ASSERT(def > 0); >> > + >> > + for (i = 64; i < 9000; i *= 2) { >> > + printf(" %d ", i); >> > + >> > + ret = odp_pktio_set_mtu(pktio, i); >> > + CU_ASSERT(0 == ret); >> > + >> > + ret = odp_pktio_mtu(pktio); >> > + CU_ASSERT(ret == i); >> > + } >> > + >> > + ret = odp_pktio_set_mtu(pktio, def); >> > + CU_ASSERT(0 == ret); >> > + >> > + return; >> > +} >> > + >> > +static void test_pktio_promisc(void) >> > +{ >> > + int ret; >> > + >> > + ret = odp_pktio_promisc_enable(pktio); >> > + CU_ASSERT(ret == 0); >> > + >> > + /* Check */ >> > + ret = odp_pktio_promisc_get_enabled(pktio); >> > + CU_ASSERT(ret == 1); >> > + >> > + ret = odp_pktio_promisc_disable(pktio); >> > + CU_ASSERT(ret == 0); >> > + >> > + /* Check */ >> > + ret = odp_pktio_promisc_get_enabled(pktio); >> > + CU_ASSERT(ret == 0); >> > + >> > + return; >> > +} >> > + >> > +int main(void) >> > +{ >> > + odp_shm_t shm; >> > + void *pool_base; >> > + odp_buffer_pool_t pool; >> > + odp_queue_t out_queue; >> > + CU_pSuite ptr_suite; >> > + CU_pTest ptest; >> > + >> > + if (odp_init_global(NULL, NULL)) { >> > + printf("ODP global init failed.\n"); >> > + return -1; >> > + } >> > + odp_init_local(); >> > + >> > + shm = odp_shm_reserve("shm_packet_pool", >> > + SHM_PKT_POOL_SIZE, >> > + ODP_CACHE_LINE_SIZE, 0); >> > + >> > + pool_base = odp_shm_addr(shm); >> > + if (!pool_base) { >> > + fprintf(stderr, "Packet pool allocation failed.\n"); >> > + return -1; >> > + } >> > + >> > + pool = odp_buffer_pool_create("packet_pool", pool_base, >> > + SHM_PKT_POOL_SIZE, >> > + SHM_PKT_POOL_BUF_SIZE, >> > + ODP_CACHE_LINE_SIZE, >> > + ODP_BUFFER_TYPE_PACKET); >> > + if (ODP_BUFFER_POOL_INVALID == pool) { >> > + fprintf(stderr, "Packet pool creation failed.\n"); >> > + return -1; >> > + } >> > + out_queue = odp_queue_create("crypto-out", >> > + ODP_QUEUE_TYPE_POLL, NULL); >> > + if (ODP_QUEUE_INVALID == out_queue) { >> > + fprintf(stderr, "Crypto outq creation failed.\n"); >> > + return -1; >> > + } >> > + shm = odp_shm_reserve("shm_compl_pool", >> > + SHM_COMPL_POOL_SIZE, >> > + ODP_CACHE_LINE_SIZE, >> > + ODP_SHM_SW_ONLY); >> > + pool_base = odp_shm_addr(shm); >> > + if (!pool_base) { >> > + fprintf(stderr, "Completion pool allocation failed.\n"); >> > + return -1; >> > + } >> > + pool = odp_buffer_pool_create("compl_pool", pool_base, >> > + SHM_COMPL_POOL_SIZE, >> > + SHM_COMPL_POOL_BUF_SIZE, >> > + ODP_CACHE_LINE_SIZE, >> > + ODP_BUFFER_TYPE_RAW); >> > + if (ODP_BUFFER_POOL_INVALID == pool) { >> > + fprintf(stderr, "Completion pool creation failed.\n"); >> > + return -1; >> > + } >> > + >> > + /* Open a packet IO instance for this thread */ >> > + pktio = odp_pktio_open("eth0", pool); >> > + if (pktio == ODP_PKTIO_INVALID) { >> > + fprintf(stderr, "Error: pktio create failed\n"); >> > + return -1; >> > + } >> > + >> > + printf("\tODP version: %s\n", odp_version_api_str()); >> > + >> > + /* initialize the CUnit test registry */ >> > + if (CUE_SUCCESS != CU_initialize_registry()) >> > + return CU_get_error(); >> > + >> > + /* add a suite to the registry */ >> > + ptr_suite = CU_add_suite(__FILE__, NULL, NULL); >> > + if (NULL == ptr_suite) { >> > + CU_cleanup_registry(); >> > + return CU_get_error(); >> > + } >> > + >> > + ptest = CU_ADD_TEST(ptr_suite, test_pktio_mtu); >> > + if (NULL == ptest) { >> > + CU_cleanup_registry(); >> > + return CU_get_error(); >> > + } >> > + >> > + ptest = CU_ADD_TEST(ptr_suite, test_pktio_promisc); >> > + if (NULL == ptest) { >> > + CU_cleanup_registry(); >> > + return CU_get_error(); >> > + } >> > + >> > + /* Run all tests using the CUnit Basic interface */ >> > + CU_basic_set_mode(CU_BRM_VERBOSE); >> > + CU_basic_run_tests(); >> > + CU_cleanup_registry(); >> > + >> > + odp_term_local(); >> > + odp_term_global(); >> > + >> > + return CU_get_error(); >> > +} >> > -- >> > 1.8.5.1.163.gd7aced9 >> > >> > >> > _______________________________________________ >> > lng-odp mailing list >> > lng-odp@lists.linaro.org >> > http://lists.linaro.org/mailman/listinfo/lng-odp >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp > > > > > -- > Mike Holmes > Linaro Sr Technical Manager > LNG - ODP _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp