Skip to content

Commit

Permalink
added more tests and posible fix for stikler CI
Browse files Browse the repository at this point in the history
  • Loading branch information
reactive-firewall committed Oct 13, 2017
1 parent b2f7ad4 commit 5d980bc
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .stickler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ linters:
shellcheck:
shell: bash
files:
ignore: ['*~', '.git', 'tests/*']
ignore: ['*~', '.git']
18 changes: 10 additions & 8 deletions bin/speed_test.bash
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
# usage: 'speed_test.bash [server [test interface]]'
# server defaults to 8.8.8.8 (GOOGLE's PUBLIC DNS - BUT YOU SHOULD CHANGE THIS TO SOMETHING THAT MAKES MORE SENSE)

if [[ ( `uname -s` = "Darwin" ) ]] ; then
if [[ ( $(uname -s) = "Darwin" ) ]] ; then
WAN_IFACE=${2:-en0}
# use en1 if you have both ethernet port and wifi and want to test wifi
else
Expand All @@ -75,18 +75,18 @@ test -x /sbin/route 2>/dev/null || USE_ALT_ROUTE_CMD=1 ;

SERVER_IP=${1:-8.8.8.8}
# server defaults to 8.8.8.8 (GOOGLE's PUBLIC DNS - BUT YOU SHOULD CHANGE THIS TO SOMETHING THAT MAKES MORE SENSE)
if [[ ( `uname -s` = "Darwin" ) ]] ; then
DATA_SIZE=$(( $(networksetup -getMTU ${WAN_IFACE:-"en0"} | grep -aoE "MTU:\s[0-9]+\s*" | cut -d \ -f 2 )-78))
if [[ ( $(uname -s) = "Darwin" ) ]] ; then
DATA_SIZE=$(( $(networksetup -getMTU "${WAN_IFACE:-en0}" | grep -aoE "MTU:\s[0-9]+\s*" | cut -d \ -f 2 )-78))
else
DATA_SIZE=$(( $(ip link show | fgrep -m1 ${WAN_IFACE:-"mtu"} | grep -aoE "mtu\s[0-9]+\s*" | cut -d \ -f 2 )-78))
DATA_SIZE=$(( $(ip link show | fgrep -m1 "${WAN_IFACE:-mtu}" | grep -aoE "mtu\s[0-9]+\s*" | cut -d \ -f 2 )-78))
fi
if [[ ( $USE_ALT_ROUTE_CMD -gt 0 ) ]] ; then
LOCAL_GW_IP=$(netstat -r -n | fgrep G | tr -s ' ' | cut -d \ -f 2 | grep -oE "([12]?[0-9]?[0-9]{1}[\.]{1}){3}([12]?[0-9]?[0-9]{1}){1}" 2>/dev/null | head -n 1 )
else
LOCAL_GW_IP=$(route -n | fgrep G | tr -s ' ' | cut -d \ -f 2 | grep -oE "([12]?[0-9]?[0-9]{1}[\.]{1}){3}([12]?[0-9]?[0-9]{1}){1}" 2>/dev/null | head -n 1 )
fi

TEST_PING_SAMPLES=${TEST_PING_SAMPLES:-20}
TEST_PING_SAMPLES="${TEST_PING_SAMPLES:-20}"

EXIT_CODE=0

Expand All @@ -102,7 +102,7 @@ EXIT_CODE=0
# exit 0 ;
# fi
#
# trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGKILL
# trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGABRT
# trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGHUP
# trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGTERM
# trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGQUIT
Expand All @@ -112,9 +112,11 @@ EXIT_CODE=0
# touch ${LOCK_FILE} 2>/dev/null || exit 0 ;

# THIS IS THE ACTUAL TEST to the next hop
avg_speed=$(ping -qnc ${TEST_PING_SAMPLES:-20} -s ${DATA_SIZE:-1024} ${LOCAL_GW_IP} 2>/dev/null | tail -n 1 | cut -d \= -f 2 | cut -d \/ -f 2 | cut -d \. -f 1 )
# shellcheck disable=SC1001
avg_speed=$(ping -qnc "${TEST_PING_SAMPLES:-20}" -s ${DATA_SIZE:-1024} "${LOCAL_GW_IP}" 2>/dev/null | tail -n 1 | cut -d \= -f 2 | cut -d \/ -f 2 | cut -d \. -f 1 )
# THIS IS THE ACTUAL TEST to the server
avg_speed_2=$(ping -qc ${TEST_PING_SAMPLES:-20} -s ${DATA_SIZE:-1024} ${SERVER_IP} 2>/dev/null | tail -n 1 | cut -d \= -f 2 | cut -d \/ -f 2 | cut -d \. -f 1 )
# shellcheck disable=SC1001
avg_speed_2=$(ping -qc "${TEST_PING_SAMPLES:-20}" -s ${DATA_SIZE:-1024} "${SERVER_IP}" 2>/dev/null | tail -n 1 | cut -d \= -f 2 | cut -d \/ -f 2 | cut -d \. -f 1 )

# report the data:
####
Expand Down
79 changes: 79 additions & 0 deletions tests/test_spelling.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#! /bin/bash
# Disclaimer of Warranties.
# A. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT, TO THE EXTENT PERMITTED BY
# APPLICABLE LAW, USE OF THIS SHELL SCRIPT AND ANY SERVICES PERFORMED
# BY OR ACCESSED THROUGH THIS SHELL SCRIPT IS AT YOUR SOLE RISK AND
# THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND
# EFFORT IS WITH YOU.
#
# B. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SHELL SCRIPT
# AND SERVICES ARE PROVIDED "AS IS" AND “AS AVAILABLE”, WITH ALL FAULTS AND
# WITHOUT WARRANTY OF ANY KIND, AND THE AUTHOR OF THIS SHELL SCRIPT'S LICENSORS
# (COLLECTIVELY REFERRED TO AS "THE AUTHOR" FOR THE PURPOSES OF THIS DISCLAIMER)
# HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THIS SHELL SCRIPT
# SOFTWARE AND SERVICES, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
# NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF
# MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE,
# ACCURACY, QUIET ENJOYMENT, AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS.
#
# C. THE AUTHOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
# THE AUTHOR's SOFTWARE AND SERVICES, THAT THE FUNCTIONS CONTAINED IN, OR
# SERVICES PERFORMED OR PROVIDED BY, THIS SHELL SCRIPT WILL MEET YOUR
# REQUIREMENTS, THAT THE OPERATION OF THIS SHELL SCRIPT OR SERVICES WILL
# BE UNINTERRUPTED OR ERROR-FREE, THAT ANY SERVICES WILL CONTINUE TO BE MADE
# AVAILABLE, THAT THIS SHELL SCRIPT OR SERVICES WILL BE COMPATIBLE OR
# WORK WITH ANY THIRD PARTY SOFTWARE, APPLICATIONS OR THIRD PARTY SERVICES,
# OR THAT DEFECTS IN THIS SHELL SCRIPT OR SERVICES WILL BE CORRECTED.
# INSTALLATION OF THIS THE AUTHOR SOFTWARE MAY AFFECT THE USABILITY OF THIRD
# PARTY SOFTWARE, APPLICATIONS OR THIRD PARTY SERVICES.
#
# D. YOU FURTHER ACKNOWLEDGE THAT THIS SHELL SCRIPT AND SERVICES ARE NOT
# INTENDED OR SUITABLE FOR USE IN SITUATIONS OR ENVIRONMENTS WHERE THE FAILURE
# OR TIME DELAYS OF, OR ERRORS OR INACCURACIES IN, THE CONTENT, DATA OR
# INFORMATION PROVIDED BY THIS SHELL SCRIPT OR SERVICES COULD LEAD TO
# DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE,
# INCLUDING WITHOUT LIMITATION THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
# NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, LIFE SUPPORT OR
# WEAPONS SYSTEMS.
#
# E. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY THE AUTHOR
# SHALL CREATE A WARRANTY. SHOULD THIS SHELL SCRIPT OR SERVICES PROVE DEFECTIVE,
# YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
#
# Limitation of Liability.
# F. TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, IN NO EVENT SHALL THE AUTHOR
# BE LIABLE FOR PERSONAL INJURY, OR ANY INCIDENTAL, SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES
# FOR LOSS OF PROFITS, CORRUPTION OR LOSS OF DATA, FAILURE TO TRANSMIT OR
# RECEIVE ANY DATA OR INFORMATION, BUSINESS INTERRUPTION OR ANY OTHER
# COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR
# INABILITY TO USE THIS SHELL SCRIPT OR SERVICES OR ANY THIRD PARTY
# SOFTWARE OR APPLICATIONS IN CONJUNCTION WITH THIS SHELL SCRIPT OR
# SERVICES, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT,
# TORT OR OTHERWISE) AND EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
# OR LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR
# CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
# shall THE AUTHOR's total liability to you for all damages (other than as may
# be required by applicable law in cases involving personal injury) exceed
# the amount of five dollars ($5.00). The foregoing limitations will apply
# even if the above stated remedy fails of its essential purpose.
################################################################################

# exit fast if command is missing
test -x /usr/bin/spellintian || exit 0 ;

THE_TEMP_FILE="/tmp/swapfile_spellcheck_${RANDOM}.tmp.txt" ;
( (spellintian "${@:-./**/*}" 2>/dev/null | fgrep -v "(duplicate word)" | fgrep " -> ") & (spellintian "${@:-./*}" 2>/dev/null | fgrep -v "(duplicate word)" | fgrep " -> ") & (spellintian "${@:-./**/**/*}" 2>/dev/null | fgrep -v "(duplicate word)" | fgrep " -> ") ) | sort -h | uniq | tee -a ${THE_TEMP_FILE:-/dev/null} ;
wait ;
THECOUNT=$( (wc -l ${THE_TEMP_FILE} 2>/dev/null || echo 0) | cut -d\ -f 1 ) ;
EXIT_CODE=${THECOUNT} ;
if [[ ("${THECOUNT}" -le 1) ]] ; then
EXIT_CODE=0 ;
echo "OK: Found no detected spelling errors." ;
else
echo "FAIL: Found ${THECOUNT:-many} spelling errors." ;
fi
rm -f ${THE_TEMP_FILE} 2>/dev/null >> /dev/null || true ;
wait ;
exit ${EXIT_CODE:255} ;
8 changes: 4 additions & 4 deletions tests/test_usage.bash
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ umask 137
LOCK_FILE="/tmp/net_speed_script_lock"

if [[ -f ${LOCK_FILE} ]] ; then
exit 0 ;
exit 0 ;
fi

trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGKILL
trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGABRT
trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGHUP
trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGTERM
trap 'rm -f ${LOCK_FILE} 2>/dev/null || true ; wait ; exit 1 ;' SIGQUIT
Expand All @@ -86,9 +86,9 @@ EXIT_CODE=0

# THIS IS THE ACTUAL TEST
if [[ -f ../bin/speed_test.bash ]] ; then
../bin/speed_test.bash || EXIT_CODE=1
../bin/speed_test.bash || EXIT_CODE=1
elif [[ -f ./bin/speed_test.bash ]] ; then
./bin/speed_test.bash || EXIT_CODE=1
./bin/speed_test.bash || EXIT_CODE=1
fi

rm -f ${LOCK_FILE} 2>/dev/null > /dev/null || true ; wait ;
Expand Down

0 comments on commit 5d980bc

Please sign in to comment.