File indexing completed on 2024-04-28 05:38:40

0001 unset CLAZY_CHECKS
0002 
0003 if [ -z "${CLAZY_CXX}" ]; then
0004     CLAZY_CXX=clazy
0005 fi
0006 
0007 CLAZY_COMMAND="${CLAZY_CXX} -c -o /dev/null -xc++ -Xclang -plugin-arg-clazy -Xclang print-requested-checks "
0008 CLAZY_COMMAND_STDIN=$CLAZY_COMMAND"-"
0009 
0010 # Test without checks:
0011 echo | $CLAZY_COMMAND_STDIN
0012 
0013 # Test with invalid check:
0014 export CLAZY_CHECKS="foo"
0015 echo | $CLAZY_COMMAND_STDIN
0016 
0017 # Test with 1 check specified through env variable
0018 export CLAZY_CHECKS="foreach"
0019 echo | $CLAZY_COMMAND_STDIN
0020 
0021 # Test with 2 checks specified through env variable
0022 export CLAZY_CHECKS="foreach,writing-to-temporary"
0023 echo | $CLAZY_COMMAND_STDIN
0024 
0025 # Test with 2 checks specified through env variable plus one error
0026 export CLAZY_CHECKS="foreach,writing-to-temporary,foo"
0027 echo | $CLAZY_COMMAND_STDIN
0028 
0029 # Test that fixit enables the check
0030 unset CLAZY_CHECKS
0031 echo | $CLAZY_COMMAND_STDIN
0032 
0033 # Test both check and fixit
0034 export CLAZY_CHECKS="old-style-connect"
0035 echo | $CLAZY_COMMAND_STDIN
0036 
0037 # Test fixit+check + unrelated check
0038 export CLAZY_CHECKS="old-style-connect,foreach"
0039 echo | $CLAZY_COMMAND_STDIN
0040 
0041 # test all_checks
0042 export CLAZY_CHECKS="all_checks"
0043 echo | $CLAZY_COMMAND_STDIN
0044 
0045 unset CLAZY_CHECKS
0046 
0047 # Test specifying check in command line
0048 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts -)
0049 
0050 # Pass two checks in command line
0051 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts,foreach -)
0052 
0053 # Pass fixits through the command-line
0054 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang fix-old-style-connect -)
0055 
0056 # Pass level0
0057 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang level0 -)
0058 
0059 # Pass level1
0060 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang level1 -)
0061 
0062 # Pass level0 + another check
0063 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang reserve-candidates -Xclang -plugin-arg-clazy -Xclang level0 -)
0064 
0065 # Pass level0 + another check that's already in level0
0066 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang qdatetime-utc -Xclang -plugin-arg-clazy -Xclang level0 -)
0067 
0068 # Use a level argument in the checks list
0069 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts,foreach,level0 -)
0070 
0071 # Use a level in env-variable
0072 export CLAZY_CHECKS="level1"
0073 echo | $CLAZY_COMMAND_STDIN
0074 
0075 # Should also work with quotes. Users sometimes add quotes in QtCreator.
0076 echo Test9
0077 export CLAZY_CHECKS=\"level1\"
0078 echo | $CLAZY_COMMAND_STDIN
0079 
0080 # Use a level in env-variable + another check
0081 export CLAZY_CHECKS="level0,reserve-candidates"
0082 echo | $CLAZY_COMMAND_STDIN
0083 
0084 # Use both env variable and compiler argument
0085 export CLAZY_CHECKS="level0,reserve-candidates"
0086 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts,level0 -)
0087 
0088 unset CLAZY_CHECKS
0089 
0090 # Test disabling checks works
0091 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts,foreach,no-foreach -)
0092 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts,no-foreach -)
0093 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang implicit-casts,no-implicit-casts -)
0094 echo | $($CLAZY_COMMAND -Xclang -plugin-arg-clazy -Xclang level0,no-qenums,no-qgetenv -)
0095 
0096 # Test disabling checks works, now with env variables
0097 export CLAZY_CHECKS="implicit-casts,foreach,no-foreach"
0098 echo | $CLAZY_COMMAND_STDIN
0099 
0100 export CLAZY_CHECKS="implicit-casts,no-foreach"
0101 echo | $CLAZY_COMMAND_STDIN
0102 
0103 export CLAZY_CHECKS="implicit-casts,no-implicit-casts"
0104 echo | $CLAZY_COMMAND_STDIN
0105 
0106 export CLAZY_CHECKS="level0,no-qenums,no-qgetenv"
0107 echo | $CLAZY_COMMAND_STDIN
0108 
0109 export CLAZY_CHECKS="no-qenums"
0110 echo | $CLAZY_COMMAND_STDIN
0111