1d7e699e3SBrian Tierney#!/bin/sh 2d7e699e3SBrian Tierney# 3d7e699e3SBrian Tierney# This is a set of commands to run and verify they work before doing a new release. 4d7e699e3SBrian Tierney# Eventually they should also use the -J flag to generate JSON output, and a program should 5d7e699e3SBrian Tierney# be written to check the output. 6d7e699e3SBrian Tierney# Be sure to test both client and server on Linux, BSD, and OSX 7d7e699e3SBrian Tierney# 8d7e699e3SBrian Tierney 9d7e699e3SBrian Tierneyif [ $# -ne 1 ] 10d7e699e3SBrian Tierneythen 11*ae2fac39Sa1346054 echo "Usage: `basename "$0"` hostname" 12d7e699e3SBrian Tierney exit $E_BADARGS 13d7e699e3SBrian Tierneyfi 14d7e699e3SBrian Tierney 15d7e699e3SBrian Tierneyset -x 16d7e699e3SBrian Tierney 17d7e699e3SBrian Tierneyhost=$1 18d7e699e3SBrian Tierney 19d7e699e3SBrian Tierney# basic testing 20*ae2fac39Sa1346054./src/iperf3 -c "$host" -V -t 5 -T "test1" 21*ae2fac39Sa1346054./src/iperf3 -c "$host" -u -V -t 5 22d7e699e3SBrian Tierney# omit mode 23*ae2fac39Sa1346054./src/iperf3 -c "$host" -i .3 -O 2 -t 5 24d7e699e3SBrian Tierney# JSON mode 25*ae2fac39Sa1346054./src/iperf3 -c "$host" -i 1 -J -t 5 26d7e699e3SBrian Tierney# force V4 27*ae2fac39Sa1346054./src/iperf3 -c "$host" -4 -t 5 28*ae2fac39Sa1346054./src/iperf3 -c "$host" -4 -u -t 5 29d7e699e3SBrian Tierney# force V6 30*ae2fac39Sa1346054./src/iperf3 -c "$host" -6 -t 5 31*ae2fac39Sa1346054./src/iperf3 -c "$host" -6 -u -t 5 3226a6e72eSBruce A. Mah# FQ rate 33*ae2fac39Sa1346054./src/iperf3 -c "$host" -V -t 5 --fq-rate 5m 34*ae2fac39Sa1346054./src/iperf3 -c "$host" -u -V -t 5 --fq-rate 5m 3526a6e72eSBruce A. Mah# SCTP 36*ae2fac39Sa1346054./src/iperf3 -c "$host" --sctp -V -t 5 37d7e699e3SBrian Tierney# parallel streams 38*ae2fac39Sa1346054./src/iperf3 -c "$host" -P 3 -t 5 39*ae2fac39Sa1346054./src/iperf3 -c "$host" -u -P 3 -t 5 40d7e699e3SBrian Tierney# reverse mode 41*ae2fac39Sa1346054./src/iperf3 -c "$host" -P 2 -t 5 -R 42*ae2fac39Sa1346054./src/iperf3 -c "$host" -u -P 2 -t 5 -R 4326a6e72eSBruce A. Mah# bidirectional mode 44*ae2fac39Sa1346054./src/iperf3 -c "$host" -P 2 -t 5 --bidir 45*ae2fac39Sa1346054./src/iperf3 -c "$host" -u -P 2 -t 5 --bidir 46d7e699e3SBrian Tierney# zero copy 47*ae2fac39Sa1346054./src/iperf3 -c "$host" -Z -t 5 48*ae2fac39Sa1346054./src/iperf3 -c "$host" -Z -t 5 -R 49d7e699e3SBrian Tierney# window size 50*ae2fac39Sa1346054./src/iperf3 -c "$host" -t 5 -w 8M 51d7e699e3SBrian Tierney# -n flag 52*ae2fac39Sa1346054./src/iperf3 -c "$host" -n 5M 53*ae2fac39Sa1346054./src/iperf3 -c "$host" -n 5M -u -b1G 54b818ef51SBruce A. Mah# -n flag with -R 55*ae2fac39Sa1346054./src/iperf3 -c "$host" -n 5M -R 56*ae2fac39Sa1346054./src/iperf3 -c "$host" -n 5M -u -b1G -R 57d7e699e3SBrian Tierney# conflicting -n -t flags 58*ae2fac39Sa1346054./src/iperf3 -c "$host" -n 5M -t 5 59d7e699e3SBrian Tierney# -k mode 60*ae2fac39Sa1346054./src/iperf3 -c "$host" -k 1K 61*ae2fac39Sa1346054./src/iperf3 -c "$host" -k 1K -u -b1G 62b818ef51SBruce A. Mah# -k mode with -R 63*ae2fac39Sa1346054./src/iperf3 -c "$host" -k 1K -R 64*ae2fac39Sa1346054./src/iperf3 -c "$host" -k 1K -u -b1G -R 65d7e699e3SBrian Tierney# CPU affinity 66*ae2fac39Sa1346054./src/iperf3 -c "$host" -A 2/2 67*ae2fac39Sa1346054./src/iperf3 -c "$host" -A 2/2 -u -b1G 68d7e699e3SBrian Tierney# Burst mode 69*ae2fac39Sa1346054./src/iperf3 -c "$host" -u -b1G/100 70d7e699e3SBrian Tierney# change MSS 71*ae2fac39Sa1346054./src/iperf3 -c "$host" -M 1000 -V 72dd050572SBrian Tierney# test congestion control option (linux only) 73*ae2fac39Sa1346054./src/iperf3 -c "$host" -C reno -V 74