3 ################### Settings ########################################
4 #Timeout value for the hanging scripts
7 ################### TIMEOUT HANDLER #################################
12 echo "HANG_FLAG is set here"
13 kill -9 $CMD_PID 2>/dev
/null
16 restart_csqlserver
() {
17 echo "Restarting the server"
20 SRVPID
=`ps -ef | grep csqlserver|grep -v "grep" |tail -1| awk -F" " '{ print $2 }'`
21 if [ "$SRVPID" != "" ]
23 echo CSQL Server
$SRVPID is being killed
27 ipcrm
-M 2222 -M 3333 -M 1947
30 echo "csqlserver killed PID=${SERVER_PID}" >>$TEST_LOG
33 $CSQL_INSTALL_ROOT/bin
/csqlserver
>${SERVOUT} &
35 echo "csqlserver restarted with PID=${SERVER_PID}" >>$TEST_LOG
43 SQLPID
=`ps -ef | grep csqlsqlserver|grep -v "grep" |tail -1| awk -F" " '{ print $2 }'`
44 if [ "$SQLPID" != "" ]
46 echo SQL Server
$SQLPID is being killed
52 #kill checkpoint setver
55 CHKPTPID
=`ps -ef | grep csqlcheckpointserver |grep -v "grep" |tail -1| awk -F" " '{ print $2 }'`
56 if [ "$CHKPTPID" != "" ]
58 echo Checkpoint server
$CHKPTPID is being killed
66 ##################### Test Executor main starts here ##################
69 #TEST_RUN_DIR should be set before running this
70 if [ ! "$TEST_RUN_ROOT" ]
72 echo "TEST_RUN_ROOT should be set before running the tests"
75 if [ ! "$CSQL_INSTALL_ROOT" ]
77 echo "CSQL_INSTALL_ROOT should be set before running the tests"
81 if [ ! "$CSQL_CONFIG_FILE" ]
83 echo "setupenv.ksh should be run before running the tests"
87 CACHECONFFILE
=`grep TABLE_CONFIG_FILE $CSQL_CONFIG_FILE| awk -F= '{ print $2}'`
93 mkdir
-p $TEST_RUN_ROOT
94 SERVOUT
=$TEST_RUN_ROOT/serv.out
97 export CSQL_CONFIG_FILE
=csql.conf
98 $CSQL_INSTALL_ROOT/bin
/csqlserver
>${SERVOUT} &
100 echo "Starting Server"
104 echo $MODULE |
grep "#" >/dev
/null
109 echo "MODULE READ is $MODULE"
111 TEST_SCRIPT_DIR
=${ROOT_DIR}/${MODULE}
112 TEST_RUN_DIR
=${TEST_RUN_ROOT}/${MODULE}
113 if [ -s "$TEST_RUN_DIR" ]
115 echo "TEST_RUN_ROOT directory is not empty. Clean and try again."
118 mkdir
-p $TEST_RUN_DIR
120 # TODO::check whether server is running
122 TEST_LOG
=$TEST_RUN_DIR/testlog
124 if [ -s "$TEST_LOG" ]
126 echo "TEST_RUN_DIR has files in it. Remove before running the tests"
130 TEST_EXEC_DIR
=$TEST_RUN_DIR/tests
134 echo "Test Executor log file" >$TEST_LOG
135 echo "----------------------" >>$TEST_LOG
137 TestList
=`ls ${TEST_SCRIPT_DIR}/test*`
138 for test in $TestList
140 if [ "$MODULE" = "system/lock" -o "$MODULE" = "system/trans" -o "$MODULE" = "system/Allocator" ]
145 if [ "$MODULE" = "dbapi/Threads" ]
153 echo "Running $test" >>$TEST_LOG
154 echo "Test started at : `date` "
155 echo "Test started at : `date` " >>$TEST_LOG
158 EXPECTED_FILE
=exp.
`basename ${test}`
160 EXP_FILE
=$EXPECTED_FILE
161 if [ "$ARCH" = "x86_64" ]
163 EXP_FILE
=$EXPECTED_FILE.
$ARCH
166 if [ -s "${TEST_SCRIPT_DIR}/${EXP_FILE}" ]
171 if [ "$expPresent" = "no" ]
173 if [ -s "${TEST_SCRIPT_DIR}/${EXPECTED_FILE}" ]
176 EXP_FILE
=$EXPECTED_FILE
179 echo "EXP_FILE is $EXP_FILE"
183 trap timeout_handler USR1
184 sleep ${HANG_TIMEOUT} && kill -s USR1 $$
&
187 if [ "$expPresent" = "yes" ]
189 cp ${TEST_SCRIPT_DIR}/${EXP_FILE} ${TEST_EXEC_DIR}
190 ${test} > ${TEST_EXEC_DIR}/cur.${EXP_FILE} 2>/dev
/null
&
192 ${test} >> ${TEST_LOG} 2>/dev
/null
&
195 wait ${CMD_PID} 2>/dev
/null
197 echo "Test Ended at : `date` "
198 echo "Test Ended at : `date` " >>$TEST_LOG
201 kill -9 ${SLEEP_PID} 2>/dev
/null
203 if [ "$HANG_FLAG" = "Yes" ]
205 echo "Test Hung. so it is killed." >>$TEST_LOG
206 echo "FAILED:Test $test failed" >>$TEST_LOG
207 #TODO::Reinitalize the database, as it may be in corrupted state.
209 mv ${SERVOUT} ${SERVOUT}.${SERVER_PID}.${CURTIME}
218 if [ "$expPresent" = "yes" ]
220 #compare exp and current output
221 diff ${TEST_SCRIPT_DIR}/${EXP_FILE} ${TEST_EXEC_DIR}/cur.${EXP_FILE} > ${TEST_EXEC_DIR}/diff.${EXP_FILE}
225 echo "Exp and current output matched."
226 echo "Test $test passed"
227 echo "Exp and current output matched." >>$TEST_LOG
228 echo "PASSED:Test $test passed" >>$TEST_LOG
229 rm ${TEST_EXEC_DIR}/cur.
${EXP_FILE}
230 rm ${TEST_EXEC_DIR}/diff.
${EXP_FILE}
231 rm ${TEST_EXEC_DIR}/${EXP_FILE}
233 echo "Exp and current output not matched."
234 echo "Test $test failed"
235 echo "Exp and current output not matched." >>${TEST_LOG}
236 echo "FAILED:Test $test failed" >>$TEST_LOG
237 #TODO::Reinitalize the database, as it may be in corrupted state.
239 mv ${SERVOUT} ${SERVOUT}.${SERVER_PID}.${CURTIME}
240 echo "Refer ${SERVOUT}.${SERVER_PID}.${CURTIME} file for server log" >>$TEST_LOG
245 echo "Test $test passed"
246 echo "Returned 0." >>$TEST_LOG
247 echo "PASSED:Test $test passed" >>$TEST_LOG
251 echo "Returned $ret "
252 echo "Test $test failed"
253 echo "Returned $ret " >>$TEST_LOG
254 echo "FAILED:Test $test failed" >>$TEST_LOG
255 #TODO::Reinitalize the database, as it may be in corrupted state.
257 mv ${SERVOUT} ${SERVOUT}.${SERVER_PID}.${CURTIME}
258 echo "Refer ${SERVOUT}.${SERVER_PID}.${CURTIME} file for server log" >>$TEST_LOG
264 #kill -9 `ps -e | grep csqlsqlserver | gawk -F" " '{ print $1 }'`
266 kill -9 ${SERVER_PID}
267 ipcrm
-M 2222 -M 3333 -M 1947
268 echo "csqlserver killed PID=${SERVER_PID}" >>${TEST_LOG}
272 #---------------------------------------------------------------------
273 #function definitions
274 dummy_restart_csqlserver
() {
275 echo "Restarting the server"
277 kill -9 ${SERVER_PID}
278 ipcrm
-M 2222 -M 3333 -M 1947
279 echo "csqlserver killed PID=${SERVER_PID}" >>$TEST_LOG
281 $CSQL_INSTALL_ROOT/bin
/csqlserver
>${SERVOUT} &
283 echo "csqlserver restarted with PID=${SERVER_PID}" >>$TEST_LOG
284 echo "Restarting Server"