On Wed, Dec 17, 2014 at 6:30 PM, Stuart Haslam <stuart.has...@arm.com>
wrote:
>
> On Wed, Dec 17, 2014 at 10:41:52PM +0000, Maxim Uvarov wrote:
> > Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>
> > ---
> >  test/validation/odp_pktio.c | 105
> ++++++++++++++++++++++++++++++++++++++++----
> >  1 file changed, 96 insertions(+), 9 deletions(-)
> >
> > diff --git a/test/validation/odp_pktio.c b/test/validation/odp_pktio.c
> > index 0ba9938..02c4a7b 100644
> > --- a/test/validation/odp_pktio.c
> > +++ b/test/validation/odp_pktio.c
> > @@ -398,6 +398,90 @@ static void test_odp_pktio_sched_multi(void)
> >       pktio_test_txrx(ODP_QUEUE_TYPE_SCHED, 4);
> >  }
> >
> > +static void pktio_test_mtu(void)
> > +{
> > +     int i;
> > +     int ret;
> > +     int def;
> > +     odp_pktio_t pktio = create_pktio(iface_name[0]);
> > +
> > +     printf("testing mtu for %s\n", iface_name[0]);
>
> This printf isn't needed, cunit tells you which test is being run, same
> with the others below.
>
> > +
> > +     def = odp_pktio_mtu(pktio);
> > +     CU_ASSERT(def > 0);
> > +
> > +     for (i = 9000; i > 100; i /= 2) {
>
> I don't think support for jumbo frames should be mandatory.
>
>
I can't think of any 1Gb or higher NIC/SoC that doesn't support jumbo
frames.  This is pretty standard for higher data rate I/O these days, so no
harm in verifying that here.


> > +             printf(" %d ", i);
> > +
> > +             ret = odp_pktio_set_mtu(pktio, i);
> > +             CU_ASSERT(0 == ret);
> > +
> > +             ret = odp_pktio_mtu(pktio);
> > +             CU_ASSERT(i == ret);
> > +     }
> > +
>
> This is only really testing that the APIs can be called without blowing
> up, to test it properly you need to send packets and check their size is
> limited to the MTU. That can be added later though.
>
> > +     ret = odp_pktio_set_mtu(pktio, def);
> > +     CU_ASSERT(0 == ret);
> > +
> > +     ret = odp_pktio_close(pktio);
> > +     CU_ASSERT(ret == 0);
> > +
> > +     return;
> > +}
> > +
> > +static void pktio_test_promisc(void)
> > +{
> > +     int ret;
> > +     odp_pktio_t pktio = create_pktio(iface_name[0]);
> > +
> > +     printf("testing promisc for %s\n", iface_name[0]);
> > +
> > +     ret = odp_pktio_promisc_mode_set(pktio, 1);
> > +     CU_ASSERT(0 == ret);
> > +
> > +     /* Check */
> > +     ret = odp_pktio_promisc_mode(pktio);
> > +     CU_ASSERT(1 == ret);
> > +
> > +     ret = odp_pktio_promisc_mode_set(pktio, 0);
> > +     CU_ASSERT(0 == ret);
> > +
> > +     /* Check */
> > +     ret = odp_pktio_promisc_mode(pktio);
> > +     CU_ASSERT(0 == ret);
> > +
>
> Not actually checking that enabling/disabling promiscuous mode actually
> does anything. Again could be added later.
>
> > +     ret = odp_pktio_close(pktio);
> > +     CU_ASSERT(ret == 0);
> > +
> > +     return;
> > +}
> > +
> > +static void pktio_test_mac(void)
> > +{
> > +     unsigned char mac_addr[ODPH_ETHADDR_LEN];
> > +     size_t mac_len;
> > +     int ret;
> > +     odp_pktio_t pktio = create_pktio(iface_name[0]);
> > +
> > +     printf("testing mac for %s\n", iface_name[0]);
> > +
> > +     mac_len = odp_pktio_mac_addr(pktio, mac_addr, ODPH_ETHADDR_LEN);
> > +     CU_ASSERT(ODPH_ETHADDR_LEN == mac_len);
> > +
> > +     printf(" %X:%X:%X:%X:%X:%X ",
> > +            mac_addr[0], mac_addr[1], mac_addr[2],
> > +            mac_addr[3], mac_addr[4], mac_addr[5]);
> > +
> > +     /* Fail case */
> > +     mac_len = odp_pktio_mac_addr(pktio, mac_addr, 2);
> > +     CU_ASSERT(0 == mac_len);
> > +
> > +     ret = odp_pktio_close(pktio);
> > +     CU_ASSERT(ret == 0);
> > +
> > +     return;
> > +}
> > +
> >  static void test_odp_pktio_open(void)
> >  {
> >       odp_pktio_t pktio[2];
> > @@ -472,18 +556,21 @@ static int init_pktio_suite(void)
> >  }
> >
> >  CU_TestInfo pktio_tests[] = {
> > -     {"pktio open",         test_odp_pktio_open},
> > -     {"pktio close",        test_odp_pktio_close},
> > -     {"pktio inq",          test_odp_pktio_inq},
> > -     {"pktio outq",         test_odp_pktio_outq},
> > -     {"pktio poll queues",  test_odp_pktio_poll_queue},
> > -     {"pktio poll multi",   test_odp_pktio_poll_multi},
> > -     {"pktio sched queues", test_odp_pktio_sched_queue},
> > -     {"pktio sched multi",  test_odp_pktio_sched_multi},
> > +     {"pktio open",          test_odp_pktio_open},
> > +     {"pktio close",         test_odp_pktio_close},
> > +     {"pktio inq",           test_odp_pktio_inq},
> > +     {"pktio outq",          test_odp_pktio_outq},
> > +     {"pktio poll queues",   test_odp_pktio_poll_queue},
> > +     {"pktio poll multi",    test_odp_pktio_poll_multi},
> > +     {"pktio sched queues",  test_odp_pktio_sched_queue},
> > +     {"pktio sched multi",   test_odp_pktio_sched_multi},
> > +     {"pktio mtu",           pktio_test_mtu},
> > +     {"pktio promisc mode",  pktio_test_promisc},
> > +     {"pktio mac",           pktio_test_mac},
> >       CU_TEST_INFO_NULL
> >  };
> >
> >  CU_SuiteInfo odp_testsuites[] = {
> > -     {"odp_pktio", init_pktio_suite, NULL, NULL, NULL, pktio_tests},
> > +     {"Packet I/O", init_pktio_suite, NULL, NULL, NULL, pktio_tests},
> >       CU_SUITE_INFO_NULL
> >  };
> > --
> > 1.8.5.1.163.gd7aced9
> >
>
> --
> Stuart.
>
>
> _______________________________________________
> 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

Reply via email to