Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / logger / logtest / logtest.sh
CommitLineData
970ed795
EL
1#!/bin/bash
2###############################################################################
d44e3c4f 3# Copyright (c) 2000-2016 Ericsson Telecom AB
970ed795
EL
4# All rights reserved. This program and the accompanying materials
5# are made available under the terms of the Eclipse Public License v1.0
6# which accompanies this distribution, and is available at
7# http://www.eclipse.org/legal/epl-v10.html
d44e3c4f 8#
9# Contributors:
10# Balasko, Jeno
11# Baranyi, Botond
12#
970ed795
EL
13###############################################################################
14
15
16#Description:
17#The goal of this script is to compare the logfile generation result for two different Titan version.
18#If switches are not applied the original logfiles given as input will be compared with the just generated log files
19#This is the use case in folder regression_test/logger/logtest
20
21
22#Inputs
23# old_logfilename.txt -if "-o" not used
24# old_logfilename_modified.txt -if "-o" not used
25# Outputs:
26# old_logfilename.txt -if "-o" used
27# old_logfilename_modified.txt -if "-o" used
28# Console_old_logfilename.txt
29# new_logfilename.txt
30# new_logfilename_modified.txt
31# Console_new_logfilename.txt
32
33create_old=0
34cfg_filename="Titan_LogTest.cfg"
35old_logfilename="original_merged_log"
36new_logfilename="new_merged_log"
37generate_makefile=0
38
39
40
41##### FUNCTIONS #######
42
43####################
44# showUsage
45####################
46showUsage()
47{
48 echo "Usage: $0 <options>"
49 echo "Options:"
50 echo " -o create old versions"
51 echo " -c [config filename] e.g.: Titan_LogTest.cfg"
52 echo " -O [Old log file name (before modification)]"
53 echo " -N [New log file name (before modification)]"
54 echo " -g generate makefiles. Mandatory if -o applied"
55 echo "Prerequisite: TTCN3_DIR set for the new ttcn3 dir"
56}
57
58####################
59# init
60####################
61init() {
62 echo "Init called"
63
64 if [ "$TTCN3_DIR_OLD" == "" ]
65 then
66 TTCN3_DIR_OLD="/mnt/TTCN/Releases/TTCNv3-1.8.pl5"
67 fi
68 echo "TTCN3_DIR_OLD:${TTCN3_DIR_OLD}"
69
70 if [ "$TTCN3_DIR" == "" ]
71 then
72 TTCN3_DIR="/export/localhome/TCC/ethbaat/XmlTest/install"
73 fi
74 TTCN3_DIR_NEW=${TTCN3_DIR}
75
76 echo "TTCN3_DIR:${TTCN3_DIR}"
77
78 LD_LIBRARY_PATH_ORIG=$LD_LIBRARY_PATH
79
80 SYSTEM_NAME=`uname -n`
81 HOST_NAME=`hostname`
82 export HOST_NAME
83 if [ "$USER" == "" ]
84 then
85 export USER=$(whoami)
86 fi
87 if [ "$USER" == "" ]
88 then
89 export USER=$(/usr/ucb/whoami)
90 fi
91}
92
93####################
94# create_log
95# $1: name of the cfg file
96# $2: name of the merged log file
97# $3: name of the merged modified log file (timestamps removed)
98####################
99create_log() {
100
101echo "Create_log called"
102
103make clean
104
105if [ "${generate_makefile}" == "1" ]
106then
107 ttcn3_makefilegen -fg Titan_LogTest.ttcn Titan_LogTestDefinitions.ttcn *.cc *.hh
108fi
109
110make
3f84031e 111echo "ttcn3_start Titan_LogTest $1"
970ed795
EL
112ttcn3_start Titan_LogTest "$1" | tee "Console_$2"
113
114#ttcn3_logmerge *.log > "$2"
115#logmerge the order of the loglines can be different per executions
116# therefore the logs will be appended instead of merge
117echo "Appended logs:" > "$2"
118list=$(ls Titan_LogTest*.log | xargs)
119for i in $list
120do
121 cat $i >> "$2"
122done
123
124cmd='
125s/^.*\(EXECUTOR_COMPONENT - TTCN-3 Parallel Test Component started on\).*\( Component reference:\).*$/\1 \2/g
126s/^.*\(PORTEVENT_UNQUALIFIED - Port internal_port is waiting for connection from\).*$/\1/g
127s/^.*\(EXECUTOR_UNQUALIFIED - The local IP address of the control connection to\).*$/\1/g
128s/^.*\(EXECUTOR_COMPONENT - TTCN-3 Main Test Component started on\).*$/\1/g
129s/^.*\(EXECUTOR_RUNTIME - TTCN-3 Host Controller started on\).*$/\1/g
130s/^.*\(EXECUTOR_UNQUALIFIED - The address of MC was set to\).*$/\1/g
131s/^.*\(EXECUTOR_RUNTIME - MTC was created. Process id\).*$/\1/g
132s/^.*\(Random number generator was initialized with seed\)\(.*\)$/\1/g
133s/^.*\(Function rnd() returned\)\(.*\)$/\1/g
134s/^.*\(PARALLEL_PTC - PTC was created. Component reference: \).*\(testcase name:\).*\(, process id:\)\(.*\)$/\1\2\3/g
135s/^.*\(ERROR_UNQUALIFIED Titan_LogTest.ttcn\)\(.*\)\(Dynamic test case error: Assignment of an unbound integer value\).*/\1 \3/g
136s/^.*\(TIMEROP_READ Titan_LogTest.ttcn\)\(.*\)/\1/g
137s/^.*\(USER_UNQUALIFIED Titan_LogTest.ttcn\)\(.*\)/\1/g
138s/^.*\(PARALLEL_PTC - PTC with component reference\)\(.*\)/\1/g
139s/^.*\(PARALLEL_PTC - MTC finished.\)\(.*\)//g
140s/^.*\(EXECUTOR_RUNTIME - Maximum number of open file descriptors\).*//g
141s/^.\{15\} //g
142'
143# TODO: s/^.*\(PARALLEL_PTC - MTC finished.\)\(.*\)/\1/g should be used instead of s/^.*\(PARALLEL_PTC - MTC finished.\)\(.*\)//g
144# TODO: s/^.*\(EXECUTOR_RUNTIME - Maximum number of open file descriptors\).*//g kiszedese
145# This line removes the random/seldom line from the log
146sed -e "$cmd" -e "/^$/d" < "$2" > "$3"
147
148}
149
150####################
151# create_log_old
152# $1: name of the cfg file
153# $2: name of the merged log file
154# $3: name of the merged modified log file (timestamps removed)
155####################
156create_log_old() {
157 TTCN3_DIR_ORIG=${TTCN3_DIR}
158 TTCN3_DIR=${TTCN3_DIR_OLD}
159 PATH_ORIG=$PATH}
160 PATH=${TTCN3_DIR}/bin:${PATH}
161 LD_LIBRARY_PATH_ORIG=${LD_LIBRARY_PATH}
162 LD_LIBRARY_PATH=${TTCN3_DIR}/lib:${LD_LIBRARY_PATH}
163 export TTCN3_DIR PATH LD_LIBRARY_PATH
164
165 create_log $1 $2 $3
166
167 TTCN3_DIR=${TTCN3_DIR_ORIG}
168 PATH=${PATH_ORIG}
169 LD_LIBRARY_PATH=${LD_LIBRARY_PATH_ORIG}
170 export TTCN3_DIR PATH LD_LIBRARY_PATH
171}
172
173####################
174# create_log_new
175# $1: name of the cfg file
176# $2: name of the merged log file
177# $3: name of the merged modified log file (timestamps removed)
178####################
179create_log_new() {
180 echo ">>>>create_log_new args: $1 $2 $3"
181 TTCN3_DIR_ORIG=${TTCN3_DIR}
182 TTCN3_DIR=${TTCN3_DIR_NEW}
183 PATH_ORIG=${PATH}
184 PATH=${TTCN3_DIR}/bin:${PATH}
185 LD_LIBRARY_PATH_ORIG=${LD_LIBRARY_PATH}
186 LD_LIBRARY_PATH=${TTCN3_DIR}/lib:${LD_LIBRARY_PATH}
187 export TTCN3_DIR PATH LD_LIBRARY_PATH
188
189 create_log $1 $2 $3
190
191 TTCN3_DIR=${TTCN3_DIR_ORIG}
192 PATH=${PATH_ORIG}
193 LD_LIBRARY_PATH=${LD_LIBRARY_PATH_ORIG}
194 export TTCN3_DIR PATH LD_LIBRARY_PATH
195}
196####################
197# compare
198# $1: name of the old merged modified log file
199# $2: name of the new merged modified log file
200####################
201compare() {
202 echo "Comparison follows"
203 diff "$1" "$2"
204 result=$?
205 echo "Comparison result is $result"
206 exit $result
207}
208
209####################### EOF FUNCTIONS ###################################
210
211#===== MAIN =======
212while getopts "hoc:O:N:g" o
213do
214 case "$o" in
215 h) showUsage; exit 1;;
216 o) create_old=1;;
217 c) cfg_filename=$OPTARG;;
218 O) old_logfilename=$OPTARG;;
219 N) new_logfilename=$OPTARG;;
220 g) generate_makefile=1;;
221 [?]) showUsage; exit 1;;
222 esac
223done
224
225init
226
227if [ "${create_old}" == "1" ]
228then
229 echo ">>>CREATES OLD<<<"
230 create_log_old "${cfg_filename}" "${old_logfilename}.txt" "${old_logfilename}_modified.txt"
231else
232 echo ">>>OLD LOG NOT CREATED<<<"
233 echo ">>>${create_old}<<<"
234fi
235
236create_log_new "${cfg_filename}" "${new_logfilename}.txt" "${new_logfilename}_modified.txt"
237
238compare "${old_logfilename}_modified.txt" "${new_logfilename}_modified.txt"
This page took 0.034203 seconds and 5 git commands to generate.