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