On Tue, Aug 16, 2016 at 4:10 PM, Mike Holmes <[email protected]> wrote:

> Add process mode run for odp_crypto_run, odp_l2fwd_run,
> odp_pktio_perf_run.
>
> Currently failing tests retun SKIP (77) until process mode is fixed
>
> Signed-off-by: Mike Holmes <[email protected]>
>

Reviewed-by: Bill Fischofer <[email protected]>


> ---
>  test/linux-generic/performance/Makefile.am         |   5 +-
>  .../performance/odp_crypto_run_proc.sh             |  22 ++++
>  .../performance/odp_l2fwd_run_proc.sh              | 117
> +++++++++++++++++++++
>  .../performance/odp_pktio_perf_run_proc.sh         |  24 +++++
>  4 files changed, 167 insertions(+), 1 deletion(-)
>  create mode 100755 test/linux-generic/performance/odp_crypto_run_proc.sh
>  create mode 100755 test/linux-generic/performance/odp_l2fwd_run_proc.sh
>  create mode 100755 test/linux-generic/performance/odp_pktio_perf_
> run_proc.sh
>
> diff --git a/test/linux-generic/performance/Makefile.am
> b/test/linux-generic/performance/Makefile.am
> index cb72fce..41aead5 100644
> --- a/test/linux-generic/performance/Makefile.am
> +++ b/test/linux-generic/performance/Makefile.am
> @@ -2,7 +2,10 @@ include $(top_srcdir)/test/Makefile.inc
>
>  TESTS_ENVIRONMENT += TEST_DIR=${builddir}
>
> -TESTSCRIPTS = odp_scheduling_run_proc.sh
> +TESTSCRIPTS = odp_scheduling_run_proc.sh \
> +             odp_crypto_run_proc.sh \
> +             odp_pktio_perf_run_proc.sh \
> +             odp_l2fwd_run_proc.sh
>
>  TEST_EXTENSIONS = .sh
>
> diff --git a/test/linux-generic/performance/odp_crypto_run_proc.sh
> b/test/linux-generic/performance/odp_crypto_run_proc.sh
> new file mode 100755
> index 0000000..a8fdeb0
> --- /dev/null
> +++ b/test/linux-generic/performance/odp_crypto_run_proc.sh
> @@ -0,0 +1,22 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2016, Linaro Limited
> +# All rights reserved.
> +#
> +# SPDX-License-Identifier:     BSD-3-Clause
> +#
> +# Script that passes command line arguments to odp_crypto test when
> +# launched by 'make check'
> +
> +TEST_DIR="${TEST_DIR:-$(dirname $0)}"
> +PERFORMANCE="$TEST_DIR/../../common_plat/performance"
> +ret=0
> +
> +run()
> +{
> +       $PERFORMANCE/odp_crypto${EXEEXT} --odph_proc  || ret=1
> +}
> +
> +run
> +
> +exit $ret
> diff --git a/test/linux-generic/performance/odp_l2fwd_run_proc.sh
> b/test/linux-generic/performance/odp_l2fwd_run_proc.sh
> new file mode 100755
> index 0000000..5e0b0a6
> --- /dev/null
> +++ b/test/linux-generic/performance/odp_l2fwd_run_proc.sh
> @@ -0,0 +1,117 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2016, Linaro Limited
> +# All rights reserved.
> +#
> +# SPDX-License-Identifier:     BSD-3-Clause
> +#
> +
> +# TEST_DIR is set by Makefile, when we add a rule to Makefile for
> odp_l2fwd_run
> +# we can use TEST_DIR the same way odp_pktio_run uses it now.
> +# If TEST_DIR is not set it means we are not running with make, and in
> this case
> +# there are two situations:
> +# 1. user build ODP in the same dir as the source (most likely)
> +#    here the user can simply call odp_l2fwd_run
> +# 2. user may have built ODP in a separate build dir (like bitbake
> usually does)
> +#    here the user has to do something like $ODP/test/performance/odp_
> l2fwd_run
> +#
> +# In both situations the script assumes that the user is in the directory
> where
> +# odp_l2fwd exists. If that's not true, then the user has to specify the
> path
> +# to it and run:
> +# TEST_DIR=$builddir $ODP/test/performance/odp_l2fwd_run
> +
> +# directory where test binaries have been built
> +TEST_DIR="${TEST_DIR:-$PWD}"
> +PERFORMANCE="$TEST_DIR/../../common_plat/performance"
> +
> +# directory where test sources are, including scripts
> +TEST_SRC_DIR=$(dirname $0)
> +
> +PATH=$TEST_DIR:$TEST_DIR/../../../example/generator:$PATH
> +
> +# exit codes expected by automake for skipped tests
> +TEST_SKIPPED=77
> +
> +PLATFORM_VALIDATION=${TEST_SRC_DIR}/../../$ODP_PLATFORM/validation
> +
> +# Use installed pktio env or for make check take it from platform
> directory
> +if [ -f "./pktio_env" ]; then
> +       . ./pktio_env
> +elif  [ "$ODP_PLATFORM" = "" ]; then
> +       echo "$0: error: ODP_PLATFORM must be defined"
> +       # not skipped as this should never happen via "make check"
> +       exit 1
> +elif [ -f ${PLATFORM_VALIDATION}/api/pktio/pktio_env ]; then
> +       . ${PLATFORM_VALIDATION}/api/pktio/pktio_env
> +else
> +       echo "BUG: unable to find pktio_env!"
> +       echo "pktio_env has to be in current directory or in \
> +             platform/\$ODP_PLATFORM/test."
> +       echo "ODP_PLATFORM=\"$ODP_PLATFORM\""
> +       exit 1
> +fi
> +
> +run_l2fwd()
> +{
> +       setup_pktio_env clean # install trap to call cleanup_pktio_env
> +
> +       if [ $? -ne 0 ]; then
> +               echo "setup_pktio_env error $?"
> +               exit $TEST_SKIPPED
> +       fi
> +
> +       type odp_generator > /dev/null
> +       if [ $? -ne 0 ]; then
> +               echo "odp_generator not installed. Aborting."
> +               cleanup_pktio_env
> +               exit 1
> +       fi
> +
> +       #@todo: limit odp_generator to cores
> +       #https://bugs.linaro.org/show_bug.cgi?id=1398
> +       (odp_generator${EXEEXT} -I $IF0 \
> +                       --srcip 192.168.0.1 --dstip 192.168.0.2 \
> +                       -m u 2>&1 > /dev/null) \
> +                       2>&1 > /dev/null &
> +       GEN_PID=$!
> +
> +       # this just turns off output buffering so that you still get
> periodic
> +       # output while piping to tee, as long as stdbuf is available.
> +       if [ "$(which stdbuf)" != "" ]; then
> +               STDBUF="stdbuf -o 0"
> +       else
> +               STDBUF=
> +       fi
> +       LOG=odp_l2fwd_tmp.log
> +
> +       #skip this because process mode is broken
> +       #$STDBUF ${PERFORMANCE}/odp_l2fwd${EXEEXT} --odph_proc -i
> $IF1,$IF2 \
> +       #-m 0 -t 30 -c 2 | tee $LOG
> +       #ret=$?
> +       ret=77
> +
> +       kill ${GEN_PID}
> +
> +       if [ ! -f $LOG ]; then
> +               echo "FAIL: $LOG not found"
> +               ret=1
> +       elif [ $ret -eq 0 ]; then
> +               PASS_PPS=5000
> +               MAX_PPS=$(awk '/TEST RESULT/ {print $3}' $LOG)
> +               if [ "$MAX_PPS" -lt "$PASS_PPS" ]; then
> +                       echo "FAIL: pps below threshold $MAX_PPS <
> $PASS_PPS"
> +                       ret=1
> +               fi
> +       fi
> +
> +       rm -f $LOG
> +       cleanup_pktio_env
> +
> +       exit $ret
> +}
> +
> +case "$1" in
> +       setup)   setup_pktio_env   ;;
> +       cleanup) cleanup_pktio_env ;;
> +       *)       run_l2fwd ;;
> +esac
> diff --git a/test/linux-generic/performance/odp_pktio_perf_run_proc.sh
> b/test/linux-generic/performance/odp_pktio_perf_run_proc.sh
> new file mode 100755
> index 0000000..fccc7eb
> --- /dev/null
> +++ b/test/linux-generic/performance/odp_pktio_perf_run_proc.sh
> @@ -0,0 +1,24 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2016, Linaro Limited
> +# All rights reserved.
> +#
> +# SPDX-License-Identifier:     BSD-3-Clause
> +#
> +# Script that passes command line arguments to odp_crypto test when
> +# launched by 'make check'
> +
> +TEST_DIR="${TEST_DIR:-$(dirname $0)}"
> +PERFORMANCE="$TEST_DIR/../../common_plat/performance"
> +ret=0
> +
> +run()
> +{
> +       #skip because process mode is broken
> +       #$PERFORMANCE/odp_pktio_perf${EXEEXT} --odph_proc || ret=1
> +       ret=77
> +}
> +
> +run
> +
> +exit $ret
> --
> 2.7.4
>
>

Reply via email to