1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# Test latency spikes caused by FIN/ACK handling race. 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunset +x 7*4882a593Smuzhiyunset -e 8*4882a593Smuzhiyun 9*4882a593Smuzhiyuntmpfile=$(mktemp /tmp/fin_ack_latency.XXXX.log) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyuncleanup() { 12*4882a593Smuzhiyun kill $(pidof fin_ack_lat) 13*4882a593Smuzhiyun rm -f $tmpfile 14*4882a593Smuzhiyun} 15*4882a593Smuzhiyun 16*4882a593Smuzhiyuntrap cleanup EXIT 17*4882a593Smuzhiyun 18*4882a593Smuzhiyundo_test() { 19*4882a593Smuzhiyun RUNTIME=$1 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun ./fin_ack_lat | tee $tmpfile & 22*4882a593Smuzhiyun PID=$! 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun sleep $RUNTIME 25*4882a593Smuzhiyun NR_SPIKES=$(wc -l $tmpfile | awk '{print $1}') 26*4882a593Smuzhiyun if [ $NR_SPIKES -gt 0 ] 27*4882a593Smuzhiyun then 28*4882a593Smuzhiyun echo "FAIL: $NR_SPIKES spikes detected" 29*4882a593Smuzhiyun return 1 30*4882a593Smuzhiyun fi 31*4882a593Smuzhiyun return 0 32*4882a593Smuzhiyun} 33*4882a593Smuzhiyun 34*4882a593Smuzhiyundo_test "30" 35*4882a593Smuzhiyunecho "test done" 36