blob: 96b8abe804b76e3b529e058eac608cd02c7517b1 [file] [log] [blame]
#!/usr/bin/env sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
make -sj8 || exit -1
function exit_func {
kill -- -$$
echo "Killed all"
exit 0
}
trap "exit_func" EXIT SIGINT SIGTERM
echo > server_list
starting_port=8004
pids=()
num_servers=5
interval=2
for ((i = 0; i < $num_servers; ++i)); do
./echo_server -server_num 1 -port $((starting_port+i)) &
pids[$i]=$!
done
usleep 100000
./echo_client -use_bthread -thread_num 400 -timeout_ms -1 --health_check_interval 1 -dont_fail > echo_client.log 2>&1 &
echo ${pids[*]}
while true; do
echo "Running for $interval seconds..."
sleep $interval
index=$((RANDOM%num_servers))
server_pid=${pids[$index]}
echo "Kill $server_pid(index=$index)"
kill -INT $server_pid
echo "Wait for another $interval seconds..."
sleep $interval
if grep -q "BAD\!\|^FATAL:" echo_client.log; then
echo "************** Found bug! ***************"
echo "Check echo_client.log for client logs"
exit 1
fi
./echo_server -server_num 1 -port $((starting_port+index)) &
pids[$index]=$!
echo "Create echo_server=${pids[$index]} at index=$index"
done