split logic. run_tests.sh runs the sipp scenarios. get_results.sh generates the tap files.

vseva/3.0
Victor Seva 13 years ago
parent 0d1cab6290
commit 2628aa7fbe

@ -9,6 +9,8 @@ Requeriments:
- python-yaml - python-yaml
- libgraphviz-perl - libgraphviz-perl
- libtemplate-perl - libtemplate-perl
- ngcp-ossbss-clients-perl
- parallel
Installation: Installation:
------------- -------------
@ -19,7 +21,8 @@ Installation:
#cd /usr/local/src #cd /usr/local/src
#git clone git@git.mgm.sipwise.com:kamailio-config-tests #git clone git@git.mgm.sipwise.com:kamailio-config-tests
#apt-get install python-yaml sip-tester \ #apt-get install python-yaml sip-tester \
libgraphviz-perl libtemplate-perl libgraphviz-perl libtemplate-perl \
ngcp-ossbss-clients-perl parallel
Usage: Usage:
------ ------
@ -27,22 +30,27 @@ Usage:
"PRO" "PRO"
#bash /usr/local/src/kamailio-config-tests/run_tests.sh [-p PROFILE ] #bash /usr/local/src/kamailio-config-tests/run_tests.sh [-p PROFILE ]
This will create 2 directories: This will create:
- /usr/local/src/kamailio-config-tests/log - /usr/local/src/kamailio-config-tests/log
with a directory per test with: with a directory per test with:
- kamailio.log - kamailio.log
- parsed messages - parsed messages
- sipp error logs - sipp error logs
#bash /usr/local/src/kamailio-config-tests/get_result.sh [-p PROFILE ] [-g]
This will create:
- /usr/local/src/kamailio-config-tests/result - /usr/local/src/kamailio-config-tests/result
with a directory per test with: with a directory per test with:
- a tap file ( test results ) - a tap file ( test results )
- a png file ( routes flow ) - a png file ( routes flow ) If you use -g option
If you want to run test manually just exec this onces: If you want to run test manually just exec this onces:
#./bin/config_debug.pl on #./bin/config_debug.pl on
#ngcpcfg apply #ngcpcfg apply
and run the check that you want: and run the check that you want:
#./bin/check.sh <checkname> #./bin/check.sh <checkname>
this will run the test and the result taps
-- --
Victor Seva <vseva@sipwise.com> Victor Seva <vseva@sipwise.com>

@ -179,9 +179,6 @@ function run_sipp
if [[ $status -ne 0 ]]; then if [[ $status -ne 0 ]]; then
error_sipp "error in sipp" 2 error_sipp "error in sipp" 2
fi fi
echo "$(date) - Parsing ${LOG_DIR}/kamailio.log"
${BIN_DIR}/ulog_parser.pl ${LOG_DIR}/kamailio.log ${LOG_DIR}
} }
function usage function usage
@ -192,6 +189,7 @@ function usage
echo -e "\t-R: skip run sipp" echo -e "\t-R: skip run sipp"
echo -e "\t-D: skip deletion of domain and subscribers as final step" echo -e "\t-D: skip deletion of domain and subscribers as final step"
echo -e "\t-T: skip checks" echo -e "\t-T: skip checks"
echo -e "\t-P: skip parse. -T is froced"
echo -e "\t-G: creation of graphviz image" echo -e "\t-G: creation of graphviz image"
echo -e "\t-d: DOMAIN" echo -e "\t-d: DOMAIN"
echo -e "\t-p CE|PRO default is CE" echo -e "\t-p CE|PRO default is CE"
@ -199,7 +197,7 @@ function usage
echo -e "\tcheck_name. Scenario name to check. This is the name of the directory on scenarios dir." echo -e "\tcheck_name. Scenario name to check. This is the name of the directory on scenarios dir."
} }
while getopts 'hCRDTGd:p:' opt; do while getopts 'hCd:p:RDTPG' opt; do
case $opt in case $opt in
h) usage; exit 0;; h) usage; exit 0;;
C) SKIP=1;; C) SKIP=1;;
@ -208,6 +206,7 @@ while getopts 'hCRDTGd:p:' opt; do
R) SKIP_RUNSIPP=1;; R) SKIP_RUNSIPP=1;;
D) SKIP_DELDOMAIN=1;; D) SKIP_DELDOMAIN=1;;
T) SKIP_TESTS=1;; T) SKIP_TESTS=1;;
P) SKIP_PARSE=1; SKIP_TESTS=1;;
G) GRAPH=1;; G) GRAPH=1;;
esac esac
done done
@ -263,6 +262,12 @@ if [ -z $SKIP ]; then
fi fi
fi fi
if [ -z ${SKIP_PARSE} ]; then
echo "$(date) - Parsing ${LOG_DIR}/kamailio.log"
${BIN_DIR}/ulog_parser.pl ${LOG_DIR}/kamailio.log ${LOG_DIR}
echo "$(date) - Done"
fi
# let's check the results # let's check the results
ERR_FLAG=0 ERR_FLAG=0
if [ -z ${SKIP_TESTS} ]; then if [ -z ${SKIP_TESTS} ]; then

@ -10,7 +10,6 @@ sub usage
{ {
my $output = "usage: config_debug.pl [-h] MODE DOMAIN\n"; my $output = "usage: config_debug.pl [-h] MODE DOMAIN\n";
$output .= "Options:\n"; $output .= "Options:\n";
$output .= "\t-p: [CE|PRO]\n";
$output .= "\t-h: this help\n"; $output .= "\t-h: this help\n";
$output .= "\tMODE: on|off\tdefault: off\n"; $output .= "\tMODE: on|off\tdefault: off\n";
$output .= "\tDOMAIN: default: spce.test\n"; $output .= "\tDOMAIN: default: spce.test\n";
@ -19,8 +18,7 @@ sub usage
my $help = 0; my $help = 0;
my $profile = "CE"; my $profile = "CE";
GetOptions ("h|help" => \$help, GetOptions ("h|help" => \$help)
"p|profile=s" => \$profile)
or die("Error in command line arguments\n".usage()); or die("Error in command line arguments\n".usage());
if($#ARGV>1 || $help) if($#ARGV>1 || $help)
@ -28,11 +26,6 @@ if($#ARGV>1 || $help)
die("Wrong number of arguments\n".usage()) die("Wrong number of arguments\n".usage())
} }
if($profile ne "CE" && $profile ne "PRO")
{
die("Uknown PROFILE:$profile\n".usage());
}
my $base_dir; my $base_dir;
my $yaml = YAML::Tiny->new; my $yaml = YAML::Tiny->new;
my $file = "/etc/ngcp-config/config.yml"; my $file = "/etc/ngcp-config/config.yml";

3
debian/control vendored

@ -13,6 +13,7 @@ Depends: ${misc:Depends},
python-yaml, python-yaml,
libgraphviz-perl, libgraphviz-perl,
libtemplate-perl, libtemplate-perl,
sip-tester ( >= 1:3.2-1~ ) sip-tester ( >= 1:3.2-1~ ),
parallel
Description: Kamailio configuration tests Description: Kamailio configuration tests
scripts and tests scenarios to check Kamailio configuration scripts and tests scenarios to check Kamailio configuration

@ -0,0 +1,49 @@
#!/bin/bash
BASE_DIR="${BASE_DIR:-/usr/local/src/kamailio-config-tests}"
BIN_DIR="${BASE_DIR}/bin"
LOG_DIR="${BASE_DIR}/log"
RESULT_DIR="${BASE_DIR}/result"
PROFILE="CE"
DOMAIN="spce.test"
function usage
{
echo "Usage: get_results.sh [-p PROFILE] [-h] [-g]"
echo "-p CE|PRO default is CE"
echo "-g generate png flow graphs"
echo "-h this help"
echo "BASE_DIR:${BASE_DIR}"
echo "BIN_DIR:${BIN_DIR}"
}
while getopts 'hcp:' opt; do
case $opt in
h) usage; exit 0;;
g) GRAPH="-G";;
p) PROFILE=$OPTARG;;
esac
done
shift $(($OPTIND - 1))
if [[ $# -ne 0 ]]; then
echo "Wrong number or arguments"
usage
exit 1
fi
if [ "${PROFILE}" != "CE" ] && [ "${PROFILE}" != "PRO" ]; then
echo "PROFILE ${PROFILE} unknown"
usage
exit 2
fi
echo "$(date) - Clean result dir"
rm -rf ${RESULT_DIR}
for t in $(find ${BASE_DIR}/scenarios/ -depth -maxdepth 1 -mindepth 1 -type d | sort); do
echo "$(date) - Testing[${PROFILE}]: $(basename $t) ================================================="
echo $(basename $t) | parallel "${BIN_DIR}/check.sh ${GRAPH} -C -d ${DOMAIN} -p ${PROFILE}"
done
echo "$(date) - All done"

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
BASE_DIR="${BASE_DIR:-/usr/local/src/kamailio-config-tests}" BASE_DIR=${BASE_DIR:-"/usr/local/src/kamailio-config-tests"}
BIN_DIR="${BASE_DIR}/bin" BIN_DIR="${BASE_DIR}/bin"
LOG_DIR="${BASE_DIR}/log" LOG_DIR="${BASE_DIR}/log"
RESULT_DIR="${BASE_DIR}/result" RESULT_DIR="${BASE_DIR}/result"
@ -13,18 +13,17 @@ function usage
echo "Usage: run_test.sh [-p PROFILE] [-c] [-t]" echo "Usage: run_test.sh [-p PROFILE] [-c] [-t]"
echo "-p CE|PRO default is CE" echo "-p CE|PRO default is CE"
echo "-c skips configuration of the environment" echo "-c skips configuration of the environment"
echo "-t skips tests"
echo "-g generate route flow graphs"
echo "-h this help" echo "-h this help"
echo "BASE_DIR:${BASE_DIR}"
echo "BIN_DIR:${BIN_DIR}"
} }
while getopts 'hctp:' opt; do while getopts 'hcp:' opt; do
case $opt in case $opt in
h) usage; exit 0;; h) usage; exit 0;;
c) SKIP=1;; c) SKIP=1;;
t) TEST=1;;
p) PROFILE=$OPTARG;; p) PROFILE=$OPTARG;;
g) GRAPH="-G"
esac esac
done done
shift $(($OPTIND - 1)) shift $(($OPTIND - 1))
@ -43,29 +42,26 @@ fi
if [ -z $SKIP ]; then if [ -z $SKIP ]; then
echo "$(date) - Setting config debug on" echo "$(date) - Setting config debug on"
${BIN_DIR}/config_debug.pl -p ${PROFILE} on ${DOMAIN} ${BIN_DIR}/config_debug.pl on ${DOMAIN}
ngcpcfg apply ngcpcfg apply
echo "$(date) - Setting config debug on. Done." echo "$(date) - Setting config debug on. Done."
fi fi
for i in ${LOG_DIR} ${RESULT_DIR}; do echo "$(date) - Clean log dir"
rm -rf $i rm -rf ${LOG_DIR}
done
for t in $(find ${BASE_DIR}/scenarios/ -depth -maxdepth 1 -mindepth 1 -type d | sort); do for t in $(find ${BASE_DIR}/scenarios/ -depth -maxdepth 1 -mindepth 1 -type d | sort); do
echo "$(date) - Run[${PROFILE}]: $(basename $t) =================================================" echo "$(date) - Run[${PROFILE}]: $(basename $t) ================================================="
if [ -z $TEST ]; then ${BIN_DIR}/check.sh -P -d ${DOMAIN} -p ${PROFILE} $(basename $t)
${BIN_DIR}/check.sh ${GRAPH} -d ${DOMAIN} -p ${PROFILE} $(basename $t) if [ $? -ne 0 ]; then
if [ $? -ne 0 ]; then error_flag=1
error_flag=1
fi
fi fi
echo "$(date) - =================================================================================" echo "$(date) - ================================================================================="
done done
if [ -z $SKIP ]; then if [ -z $SKIP ]; then
echo "$(date) - Setting config debug off" echo "$(date) - Setting config debug off"
${BIN_DIR}/config_debug.pl -p ${PROFILE} off ${DOMAIN} ${BIN_DIR}/config_debug.pl off ${DOMAIN}
ngcpcfg apply ngcpcfg apply
echo "$(date) - Setting config debug off. Done." echo "$(date) - Setting config debug off. Done."
fi fi

Loading…
Cancel
Save