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 echo "Running $test" >>$TEST_LOG
146 echo "Test started at : `date` "
147 echo "Test started at : `date` " >>$TEST_LOG
150 EXPECTED_FILE
=exp.
`basename ${test}`
152 EXP_FILE
=$EXPECTED_FILE
153 if [ "$ARCH" = "x86_64" ]
155 EXP_FILE
=$EXPECTED_FILE.
$ARCH
158 if [ -s "${TEST_SCRIPT_DIR}/${EXP_FILE}" ]
163 if [ "$expPresent" = "no" ]
165 if [ -s "${TEST_SCRIPT_DIR}/${EXPECTED_FILE}" ]
168 EXP_FILE
=$EXPECTED_FILE
171 echo "EXP_FILE is $EXP_FILE"
175 trap timeout_handler USR1
176 sleep ${HANG_TIMEOUT} && kill -s USR1 $$
&
179 if [ "$expPresent" = "yes" ]
181 cp ${TEST_SCRIPT_DIR}/${EXP_FILE} ${TEST_EXEC_DIR}
182 ${test} > ${TEST_EXEC_DIR}/cur.${EXP_FILE} 2>/dev
/null
&
184 ${test} >> ${TEST_LOG} 2>/dev
/null
&
187 wait ${CMD_PID} 2>/dev
/null
189 echo "Test Ended at : `date` "
190 echo "Test Ended at : `date` " >>$TEST_LOG
193 kill -9 ${SLEEP_PID} 2>/dev
/null
195 if [ "$HANG_FLAG" = "Yes" ]
197 echo "Test Hung. so it is killed." >>$TEST_LOG
198 echo "FAILED:Test $test failed" >>$TEST_LOG
199 #TODO::Reinitalize the database, as it may be in corrupted state.
201 mv ${SERVOUT} ${SERVOUT}.${SERVER_PID}.${CURTIME}
210 if [ "$expPresent" = "yes" ]
212 #compare exp and current output
213 diff ${TEST_SCRIPT_DIR}/${EXP_FILE} ${TEST_EXEC_DIR}/cur.${EXP_FILE} > ${TEST_EXEC_DIR}/diff.${EXP_FILE}
217 echo "Exp and current output matched."
218 echo "Test $test passed"
219 echo "Exp and current output matched." >>$TEST_LOG
220 echo "PASSED:Test $test passed" >>$TEST_LOG
221 rm ${TEST_EXEC_DIR}/cur.
${EXP_FILE}
222 rm ${TEST_EXEC_DIR}/diff.
${EXP_FILE}
223 rm ${TEST_EXEC_DIR}/${EXP_FILE}
225 echo "Exp and current output not matched."
226 echo "Test $test failed"
227 echo "Exp and current output not matched." >>${TEST_LOG}
228 echo "FAILED:Test $test failed" >>$TEST_LOG
229 #TODO::Reinitalize the database, as it may be in corrupted state.
231 mv ${SERVOUT} ${SERVOUT}.${SERVER_PID}.${CURTIME}
232 echo "Refer ${SERVOUT}.${SERVER_PID}.${CURTIME} file for server log" >>$TEST_LOG
237 echo "Test $test passed"
238 echo "Returned 0." >>$TEST_LOG
239 echo "PASSED:Test $test passed" >>$TEST_LOG
243 echo "Returned $ret "
244 echo "Test $test failed"
245 echo "Returned $ret " >>$TEST_LOG
246 echo "FAILED:Test $test failed" >>$TEST_LOG
247 #TODO::Reinitalize the database, as it may be in corrupted state.
249 mv ${SERVOUT} ${SERVOUT}.${SERVER_PID}.${CURTIME}
250 echo "Refer ${SERVOUT}.${SERVER_PID}.${CURTIME} file for server log" >>$TEST_LOG
256 #kill -9 `ps -e | grep csqlsqlserver | gawk -F" " '{ print $1 }'`
258 kill -9 ${SERVER_PID}
259 ipcrm
-M 2222 -M 3333 -M 1947
260 echo "csqlserver killed PID=${SERVER_PID}" >>${TEST_LOG}
264 #---------------------------------------------------------------------
265 #function definitions
266 dummy_restart_csqlserver
() {
267 echo "Restarting the server"
269 kill -9 ${SERVER_PID}
270 ipcrm
-M 2222 -M 3333 -M 1947
271 echo "csqlserver killed PID=${SERVER_PID}" >>$TEST_LOG
273 $CSQL_INSTALL_ROOT/bin
/csqlserver
>${SERVOUT} &
275 echo "csqlserver restarted with PID=${SERVER_PID}" >>$TEST_LOG
276 echo "Restarting Server"