add check for set e and operator

This commit is contained in:
Josh Chorlton 2021-05-23 19:43:42 -07:00
parent 331e89be99
commit eb1f83423d
1 changed files with 7 additions and 0 deletions

View File

@ -190,6 +190,7 @@ nodeChecks = [
,checkDollarQuoteParen
,checkUselessBang
,checkTranslatedStringVariable
,checkPipelineE
,checkModifiedArithmeticInRedirection
,checkBlatantRecursion
,checkBadTestAndOr
@ -3808,6 +3809,12 @@ checkUselessBang params t = when (hasSetE params) $ mapM_ check (getNonReturning
x:rest -> x : dropLast rest
_ -> []
prop_checkPipelineE1 = verify checkPipelineE "set -e; echo hi && echo hello"
prop_checkPipelineE2 = verifyNot checkPipelineE "echo hi && echo hello"
checkPipelineE params x@(T_AndIf id _ _) = when (hasSetE params) $
info id 3061 "&& operators running with -e set will not exit on error"
checkPipelineE _ _ = return ()
prop_checkModifiedArithmeticInRedirection1 = verify checkModifiedArithmeticInRedirection "ls > $((i++))"
prop_checkModifiedArithmeticInRedirection2 = verify checkModifiedArithmeticInRedirection "cat < \"foo$((i++)).txt\""
prop_checkModifiedArithmeticInRedirection3 = verifyNot checkModifiedArithmeticInRedirection "while true; do true; done > $((i++))"