summaryrefslogtreecommitdiffstats
path: root/docs/submodules/releng
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2020-04-29 10:22:59 +0200
committerGerrit Code Review <gerrit@opnfv.org>2020-04-29 08:22:59 +0000
commit6966536ebf662f2a3a61ecde3a7849005a7e6de2 (patch)
tree2c41bdcaa8e69cb9aca8daadb4608bb2692ae6c8 /docs/submodules/releng
parentfc350269f9771c5d498b5faa1a3153b9b58ef0c2 (diff)
Update git submodules
* Update docs/submodules/releng from branch 'master' to f37066dea9d82cd7875b8878e72e6348dcb18c21 - Create Functest K8s Kali branch Change-Id: I0cc9060158dc8e787a581adedc6a8ee3a9bc7f94 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'docs/submodules/releng')
m---------docs/submodules/releng0
1 files changed, 0 insertions, 0 deletions
diff --git a/docs/submodules/releng b/docs/submodules/releng
-Subproject 57b4073b66c71510ac32da878dcdcb318482b4b
+Subproject f37066dea9d82cd7875b8878e72e6348dcb18c2
highlight .kc { color: #66d9ef } /* Keyword.Constant */ .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ .highlight .kn { color: #f92672 } /* Keyword.Namespace */ .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ .highlight .kt { color: #66d9ef } /* Keyword.Type */ .highlight .ld { color: #e6db74 } /* Literal.Date */ .highlight .m { color: #ae81ff } /* Literal.Number */ .highlight .s { color: #e6db74 } /* Literal.String */ .highlight .na { color: #a6e22e } /* Name.Attribute */ .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ .highlight .nc { color: #a6e22e } /* Name.Class */ .highlight .no { color: #66d9ef } /* Name.Constant */ .highlight .nd { color: #a6e22e } /* Name.Decorator */ .highlight .ni { color: #f8f8f2 } /* Name.Entity */ .highlight .ne { color: #a6e22e } /* Name.Exception */ .highlight .nf { color: #a6e22e } /* Name.Function */ .highlight .nl { color: #f8f8f2 } /* Name.Label */ .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ .highlight .nx { color: #a6e22e } /* Name.Other */ .highlight .py { color: #f8f8f2 } /* Name.Property */ .highlight .nt { color: #f92672 } /* Name.Tag */ .highlight .nv { color: #f8f8f2 } /* Name.Variable */ .highlight .ow { color: #f92672 } /* Operator.Word */ .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ .highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ .highlight .sa { color: #e6db74 } /* Literal.String.Affix */ .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ .highlight .sc { color: #e6db74 } /* Literal.String.Char */ .highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */ .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ .highlight .se { color: #ae81ff } /* Literal.String.Escape */ .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ .highlight .sx { color: #e6db74 } /* Literal.String.Other */ .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ } @media (prefers-color-scheme: light) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
#!/bin/bash
#
# Copyright 2017 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Script for graphical representation of VSPERF results
#
# Usage:
#   ./create_graph ["test names" [filter [directory]]]
#
# where:
#       "test names" is a !!! quoted !!! string with vsperf testcase names separated
#           by spaces
#           Default value: "phy2phy_tput"
#
#       "filter" is used to select matching VSPERF results; Its value
#           will be used as PATTERN of grep command executed on selected
#           csv result files.
#           Default value: ",OvsDpdkVhost,"
#
#       "directory" is a directory name, where vsperf results (i.e. results_*
#           subdirectories) are located
#           Default value: "/tmp"
#
# Example of invocation:
#   ./create_graph "phy2phy_tput phy2phy_cont pvp_cont pvvp_cont" ",OvsVanilla,"

TESTS="phy2phy_tput"    # default set of TCs to be plotted
FILTER=",OvsDpdkVhost," # default filter to be applied on matching CSV files
NUMBER_OF_RESULTS=50    # max number of recent results to be compared in graph
CSV_RESULT_COL=2        # column number with result to be plotted, e.g. 2 for rx_throughput_fps
B2B_CSV_RESULT_COL=1    # column number with result to be plotted for back2back TCs
CSV_PKT_SIZE_COL=12     # column number with frame/packet size
B2B_CSV_PKT_SIZE_COL=4  # column number with frame/packet size for back2back TCs
NUMBER_OF_PKT_SIZES=0   # to be detected automatically
MAX_NUMBER_OF_PKT_SIZES=10
DIR="/tmp"              # directory where vsperf results are stored
PNG_PREFIX='vsperf_'
TYPE="TPUT"             # customization of graph for TPUT or B2B

function clean_data() {
    rm -rf *csv
    rm -rf *plot
    rm -rf *png
}

function prepare_data() {
    for test_name in $TESTS; do
        FIRST=1
        CSV_LIST=`grep -r ",${test_name}," ${DIR}/results_*/*csv | grep $FILTER | cut -d':' -f1 | uniq | sort | tail -n ${NUMBER_OF_RESULTS}`
        for result_file in $CSV_LIST ; do
            tmp_dir=`dirname $result_file`
            TIMESTAMP=`basename $tmp_dir | cut -d'_' -f2-`
            if [ $FIRST -eq 1 ] ; then
                NUMBER_OF_PKT_SIZES=$((`wc -l ${result_file} | cut -d' ' -f1`-1))
                if [ $NUMBER_OF_PKT_SIZES -gt $MAX_NUMBER_OF_PKT_SIZES ] ; then
                    NUMBER_OF_PKT_SIZES=$MAX_NUMBER_OF_PKT_SIZES
                fi
                if grep back2back ${result_file} &> /dev/null ; then
                    PKT_SIZE_COL=$B2B_CSV_PKT_SIZE_COL
                    RES_COL=$B2B_CSV_RESULT_COL
                    TYPE="B2B"
                else
                    PKT_SIZE_COL=$CSV_PKT_SIZE_COL
                    RES_COL=$CSV_RESULT_COL
                    TYPE="TPUT"
                fi
                RESULT_HEADER=`tail -n+2 ${result_file} | head -n ${NUMBER_OF_PKT_SIZES} | cut -d',' -f${PKT_SIZE_COL} | paste -d',' -s`
                echo "[$TYPE] Date/PKT Size [B],${RESULT_HEADER}" > "${test_name}.csv"
                FIRST=0
            fi
            RESULT_4ALL_PKT_SIZES=`tail -n+2 ${result_file} | head -n ${NUMBER_OF_PKT_SIZES} | cut -d',' -f${RES_COL} | paste -d',' -s`
            echo "${TIMESTAMP},${RESULT_4ALL_PKT_SIZES}" >> "${test_name}.csv"
        done
    done
}

function plot_data() {
    echo "Created graphs:"
    SUFFIX=`echo $FILTER | tr -d -C [:alnum:]`
    for TEST_CSV in *csv; do
        [ ! -f $TEST_CSV ] && continue
        TEST_NAME=`basename ${TEST_CSV} .csv`"_${SUFFIX}"
        OUTPUT="$TEST_NAME.plot"
        cat > $OUTPUT <<- EOM
set datafile separator ","
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set format x "%m-%d"
set xlabel "date"
set format y "%8.0f"
set term png size 1024,768
EOM

        if grep '^\[B2B\]' ${TEST_CSV} &> /dev/null ; then
            echo 'set ylabel "frames"' >> $OUTPUT
            echo 'set log y' >> $OUTPUT
            echo 'set yrange [1:]' >> $OUTPUT
        else
            echo 'set ylabel "fps"' >> $OUTPUT
            echo 'set yrange [0:]' >> $OUTPUT
        fi

        iter=0
        echo "set title \"$TEST_NAME\"" >> $OUTPUT
        echo "set output \"${PNG_PREFIX}${TEST_NAME}.png\"" >> $OUTPUT
        echo -n "plot " >> $OUTPUT
        SEP=""
        while [ $iter -lt $NUMBER_OF_PKT_SIZES ] ; do
            COL=$((2+$iter))
            echo $"$SEP '$TEST_CSV' using 1:$COL with linespoints title columnheader($COL) \\" >> $OUTPUT
            iter=$(($iter+1))
            SEP=","
        done
        echo -e "\t${PNG_PREFIX}${TEST_NAME}.png"
        gnuplot $OUTPUT
    done
}

#
# Main body
#

# override default set of TESTS if specified by 1st parameter
if [ "$1" != "" ] ; then
    TESTS="$1"
fi

# override default filter if specified by 2nd parameter
if [ "$2" != "" ] ; then
    FILTER="$2"
fi

# override default directory with results by 3rd parameter
if [ "$3" != "" ] ; then
    DIR="$3"
fi
clean_data

echo -e "Plot data input:"
echo -e "\tTESTS: $TESTS"
echo -e "\tFilter: $FILTER"
echo -e "\tResults direcotry: $DIR"

prepare_data
plot_data