1 2if TEST_UTILITIES 3export MAYBE_TEST = test 4endif 5 6if EXAMPLES 7export MAYBE_EXAMPLES = examples 8endif 9 10 11SUBDIRS = \ 12 others \ 13 src \ 14 doc \ 15 tools \ 16 $(MAYBE_EXAMPLES) \ 17 $(MAYBE_TEST) 18 19 20 21# make clean 22CLEANFILES = 23 24ACLOCAL_AMFLAGS = -I build 25 26# make maintainer-clean 27MAINTAINERCLEANFILES = \ 28 aclocal.m4 \ 29 ar-lib \ 30 build/libtool.m4 \ 31 build/lt~obsolete.m4 \ 32 build/ltoptions.m4 \ 33 build/ltsugar.m4 \ 34 build/ltversion.m4 \ 35 coding-style.txt \ 36 compile \ 37 config.guess \ 38 config.sub \ 39 configure \ 40 cppcheck.txt \ 41 depcomp \ 42 install-sh \ 43 ltmain.sh \ 44 Makefile.in \ 45 missing \ 46 test/modsec-shared-collections \ 47 test/modsec-shared-collections-lock \ 48 test-suite-drd.log \ 49 test-suite-helgrind.log \ 50 test-suite-memcheck.log \ 51 ylwrap 52 53parser: 54 cat src/parser/seclang-parser.hh | sed "s/return \*new (yyas_<T> ()) T (t)/return *new (yyas_<T> ()) T (std::move((T\&)t))/g" > src/parser/seclang-parser.hh.fix && mv src/parser/seclang-parser.hh.fix src/parser/seclang-parser.hh 55 56 57 58cppcheck: 59 @cppcheck -U YYSTYPE -U MBEDTLS_MD5_ALT -U MBEDTLS_SHA1_ALT \ 60 -D MS_CPPCHECK_DISABLED_FOR_PARSER -U YY_USER_INIT \ 61 --suppressions-list=./test/cppcheck_suppressions.txt \ 62 --enable=warning,style,performance,portability,unusedFunction,missingInclude \ 63 --inconclusive \ 64 --template="warning: {file},{line},{severity},{id},{message}" \ 65 -I headers -I . -I others -I src -I others/mbedtls -I src/parser \ 66 --error-exitcode=1 \ 67 -i "src/parser/seclang-parser.cc" -i "src/parser/seclang-scanner.cc" \ 68 --force --verbose . 69 70 71check-static: cppcheck 72 73check-style: check-coding-style 74 75check-coding-style: 76 @cpplint.py \ 77 $$(find . -name "*.h" -o -name "*.cc" | xargs) 2>&1 \ 78 | egrep -v $$(echo -n "catchall" ; \ 79 for i in $$(cat test/coding_style_suppressions.txt); do echo -n "|"$$i; done) \ 80 | sed 's/^\./warning: ./g' > coding-style.txt 81 -cat coding-style.txt 82 83 84@VALGRIND_CHECK_RULES@ 85VALGRIND_SUPPRESSIONS_FILES = valgrind_suppressions.txt 86 87LOG_DRIVER = env $(SHELL) $(top_srcdir)/test/custom-test-driver 88AM_TESTS_ENVIRONMENT=AUTOMAKE_TESTS=true; export AUTOMAKE_TESTS; 89LOG_COMPILER=test/test-suite.sh 90 91# for i in `find test/test-cases -iname *.json`; do echo TESTS+=$i; done 92TESTS= 93TESTS+=test/test-cases/regression/action-allow.json 94TESTS+=test/test-cases/regression/action-block.json 95TESTS+=test/test-cases/regression/action-ctl_request_body_access.json 96TESTS+=test/test-cases/regression/action-ctl_request_body_processor.json 97TESTS+=test/test-cases/regression/action-ctl_request_body_processor_urlencoded.json 98TESTS+=test/test-cases/regression/action-ctl_rule_engine.json 99TESTS+=test/test-cases/regression/action-ctl_rule_remove_by_id.json 100TESTS+=test/test-cases/regression/action-ctl_rule_remove_by_tag.json 101TESTS+=test/test-cases/regression/action-ctl_rule_remove_target_by_id.json 102TESTS+=test/test-cases/regression/action-ctl_rule_remove_target_by_tag.json 103TESTS+=test/test-cases/regression/action-disruptive.json 104TESTS+=test/test-cases/regression/action-exec.json 105TESTS+=test/test-cases/regression/action-id.json 106TESTS+=test/test-cases/regression/action-initcol.json 107TESTS+=test/test-cases/regression/action-msg.json 108TESTS+=test/test-cases/regression/action-setenv.json 109TESTS+=test/test-cases/regression/action-setrsc.json 110TESTS+=test/test-cases/regression/action-setsid.json 111TESTS+=test/test-cases/regression/action-setuid.json 112TESTS+=test/test-cases/regression/actions.json 113TESTS+=test/test-cases/regression/action-skip.json 114TESTS+=test/test-cases/regression/action-tag.json 115TESTS+=test/test-cases/regression/action-tnf-base64.json 116TESTS+=test/test-cases/regression/action-xmlns.json 117TESTS+=test/test-cases/regression/auditlog.json 118TESTS+=test/test-cases/regression/collection-case-insensitive.json 119TESTS+=test/test-cases/regression/collection-lua.json 120TESTS+=test/test-cases/regression/collection-regular_expression_selection.json 121TESTS+=test/test-cases/regression/collection-resource.json 122TESTS+=test/test-cases/regression/collection-tx.json 123TESTS+=test/test-cases/regression/collection-tx-with-macro.json 124TESTS+=test/test-cases/regression/config-body_limits.json 125TESTS+=test/test-cases/regression/config-calling_phases_by_name.json 126TESTS+=test/test-cases/regression/config-include-bad.json 127TESTS+=test/test-cases/regression/config-include.json 128TESTS+=test/test-cases/regression/config-remove_by_id.json 129TESTS+=test/test-cases/regression/config-remove_by_msg.json 130TESTS+=test/test-cases/regression/config-remove_by_tag.json 131TESTS+=test/test-cases/regression/config-response_type.json 132TESTS+=test/test-cases/regression/config-secdefaultaction.json 133TESTS+=test/test-cases/regression/config-secremoterules.json 134TESTS+=test/test-cases/regression/config-update-action-by-id.json 135TESTS+=test/test-cases/regression/config-update-target-by-id.json 136TESTS+=test/test-cases/regression/config-update-target-by-msg.json 137TESTS+=test/test-cases/regression/config-update-target-by-tag.json 138TESTS+=test/test-cases/regression/config-xml_external_entity.json 139TESTS+=test/test-cases/regression/debug_log.json 140TESTS+=test/test-cases/regression/directive-sec_rule_script.json 141TESTS+=test/test-cases/regression/issue-1152.json 142TESTS+=test/test-cases/regression/issue-1528.json 143TESTS+=test/test-cases/regression/issue-1565.json 144TESTS+=test/test-cases/regression/issue-1576.json 145TESTS+=test/test-cases/regression/issue-1591.json 146TESTS+=test/test-cases/regression/issue-1725.json 147TESTS+=test/test-cases/regression/issue-1743.json 148TESTS+=test/test-cases/regression/issue-1785.json 149TESTS+=test/test-cases/regression/issue-1812.json 150TESTS+=test/test-cases/regression/issue-1831.json 151TESTS+=test/test-cases/regression/issue-1844.json 152TESTS+=test/test-cases/regression/issue-1850.json 153TESTS+=test/test-cases/regression/issue-1941.json 154TESTS+=test/test-cases/regression/issue-1943.json 155TESTS+=test/test-cases/regression/issue-1956.json 156TESTS+=test/test-cases/regression/issue-1960.json 157TESTS+=test/test-cases/regression/issue-2099.json 158TESTS+=test/test-cases/regression/issue-2000.json 159TESTS+=test/test-cases/regression/issue-2111.json 160TESTS+=test/test-cases/regression/issue-2196.json 161TESTS+=test/test-cases/regression/issue-2423-msg-in-chain.json 162TESTS+=test/test-cases/regression/issue-2427.json 163TESTS+=test/test-cases/regression/issue-2296.json 164TESTS+=test/test-cases/regression/issue-394.json 165TESTS+=test/test-cases/regression/issue-849.json 166TESTS+=test/test-cases/regression/issue-960.json 167TESTS+=test/test-cases/regression/misc.json 168TESTS+=test/test-cases/regression/misc-variable-under-quotes.json 169TESTS+=test/test-cases/regression/offset-variable.json 170TESTS+=test/test-cases/regression/operator-detectsqli.json 171TESTS+=test/test-cases/regression/operator-detectxss.json 172TESTS+=test/test-cases/regression/operator-fuzzyhash.json 173TESTS+=test/test-cases/regression/operator-inpectFile.json 174TESTS+=test/test-cases/regression/operator-ipMatchFromFile.json 175TESTS+=test/test-cases/regression/operator-pm.json 176TESTS+=test/test-cases/regression/operator-rx.json 177TESTS+=test/test-cases/regression/operator-rxGlobal.json 178TESTS+=test/test-cases/regression/operator-UnconditionalMatch.json 179TESTS+=test/test-cases/regression/operator-validate-byte-range.json 180TESTS+=test/test-cases/regression/operator-verifycc.json 181TESTS+=test/test-cases/regression/operator-verifycpf.json 182TESTS+=test/test-cases/regression/operator-verifyssn.json 183TESTS+=test/test-cases/regression/operator-verifysvnr.json 184TESTS+=test/test-cases/regression/request-body-parser-json.json 185TESTS+=test/test-cases/regression/request-body-parser-multipart-crlf.json 186TESTS+=test/test-cases/regression/request-body-parser-multipart.json 187TESTS+=test/test-cases/regression/request-body-parser-xml.json 188TESTS+=test/test-cases/regression/request-body-parser-xml-validade-dtd.json 189TESTS+=test/test-cases/regression/rule-920120.json 190TESTS+=test/test-cases/regression/rule-920200.json 191TESTS+=test/test-cases/regression/rule-920274.json 192TESTS+=test/test-cases/regression/secaction.json 193TESTS+=test/test-cases/regression/secargumentslimit.json 194TESTS+=test/test-cases/regression/sec_component_signature.json 195TESTS+=test/test-cases/regression/secmarker.json 196TESTS+=test/test-cases/regression/secruleengine.json 197TESTS+=test/test-cases/regression/transformation-none.json 198TESTS+=test/test-cases/regression/transformations.json 199TESTS+=test/test-cases/regression/variable-ARGS_COMBINED_SIZE.json 200TESTS+=test/test-cases/regression/variable-ARGS_GET.json 201TESTS+=test/test-cases/regression/variable-ARGS_GET_NAMES.json 202TESTS+=test/test-cases/regression/variable-ARGS.json 203TESTS+=test/test-cases/regression/variable-ARGS_NAMES.json 204TESTS+=test/test-cases/regression/variable-ARGS_POST.json 205TESTS+=test/test-cases/regression/variable-ARGS_POST_NAMES.json 206TESTS+=test/test-cases/regression/variable-AUTH_TYPE.json 207TESTS+=test/test-cases/regression/variable-DURATION.json 208TESTS+=test/test-cases/regression/variable-ENV.json 209TESTS+=test/test-cases/regression/variable-FILES_COMBINED_SIZE.json 210TESTS+=test/test-cases/regression/variable-FILES.json 211TESTS+=test/test-cases/regression/variable-FILES_NAMES.json 212TESTS+=test/test-cases/regression/variable-FILES_SIZES.json 213TESTS+=test/test-cases/regression/variable-FULL_REQUEST.json 214TESTS+=test/test-cases/regression/variable-FULL_REQUEST_LENGTH.json 215TESTS+=test/test-cases/regression/variable-GEO.json 216TESTS+=test/test-cases/regression/variable-HIGHEST_SEVERITY.json 217TESTS+=test/test-cases/regression/variable-INBOUND_DATA_ERROR.json 218TESTS+=test/test-cases/regression/variable-MATCHED_VAR.json 219TESTS+=test/test-cases/regression/variable-MATCHED_VAR_NAME.json 220TESTS+=test/test-cases/regression/variable-MATCHED_VARS.json 221TESTS+=test/test-cases/regression/variable-MATCHED_VARS_NAMES.json 222TESTS+=test/test-cases/regression/variable-MODSEC_BUILD.json 223TESTS+=test/test-cases/regression/variable-MULTIPART_CRLF_LF_LINES.json 224TESTS+=test/test-cases/regression/variable-MULTIPART_FILENAME.json 225TESTS+=test/test-cases/regression/variable-MULTIPART_INVALID_HEADER_FOLDING.json 226TESTS+=test/test-cases/regression/variable-MULTIPART_NAME.json 227TESTS+=test/test-cases/regression/variable-MULTIPART_STRICT_ERROR.json 228TESTS+=test/test-cases/regression/variable-MULTIPART_UNMATCHED_BOUNDARY.json 229TESTS+=test/test-cases/regression/variable-OUTBOUND_DATA_ERROR.json 230TESTS+=test/test-cases/regression/variable-PATH_INFO.json 231TESTS+=test/test-cases/regression/variable-QUERY_STRING.json 232TESTS+=test/test-cases/regression/variable-REMOTE_ADDR.json 233TESTS+=test/test-cases/regression/variable-REMOTE_HOST.json 234TESTS+=test/test-cases/regression/variable-REMOTE_PORT.json 235TESTS+=test/test-cases/regression/variable-REMOTE_USER.json 236TESTS+=test/test-cases/regression/variable-REQBODY_PROCESSOR_ERROR.json 237TESTS+=test/test-cases/regression/variable-REQBODY_PROCESSOR.json 238TESTS+=test/test-cases/regression/variable-REQUEST_BASENAME.json 239TESTS+=test/test-cases/regression/variable-REQUEST_BODY.json 240TESTS+=test/test-cases/regression/variable-REQUEST_BODY_LENGTH.json 241TESTS+=test/test-cases/regression/variable-REQUEST_COOKIES.json 242TESTS+=test/test-cases/regression/variable-REQUEST_COOKIES_NAMES.json 243TESTS+=test/test-cases/regression/variable-REQUEST_FILENAME.json 244TESTS+=test/test-cases/regression/variable-REQUEST_HEADERS.json 245TESTS+=test/test-cases/regression/variable-REQUEST_HEADERS_NAMES.json 246TESTS+=test/test-cases/regression/variable-REQUEST_LINE.json 247TESTS+=test/test-cases/regression/variable-REQUEST_METHOD.json 248TESTS+=test/test-cases/regression/variable-REQUEST_PROTOCOL.json 249TESTS+=test/test-cases/regression/variable-REQUEST_URI.json 250TESTS+=test/test-cases/regression/variable-REQUEST_URI_RAW.json 251TESTS+=test/test-cases/regression/variable-RESPONSE_BODY.json 252TESTS+=test/test-cases/regression/variable-RESPONSE_CONTENT_LENGTH.json 253TESTS+=test/test-cases/regression/variable-RESPONSE_CONTENT_TYPE.json 254TESTS+=test/test-cases/regression/variable-RESPONSE_HEADERS.json 255TESTS+=test/test-cases/regression/variable-RESPONSE_HEADERS_NAMES.json 256TESTS+=test/test-cases/regression/variable-RESPONSE_PROTOCOL.json 257TESTS+=test/test-cases/regression/variable-RULE.json 258TESTS+=test/test-cases/regression/variable-SERVER_ADDR.json 259TESTS+=test/test-cases/regression/variable-SERVER_NAME.json 260TESTS+=test/test-cases/regression/variable-SERVER_PORT.json 261TESTS+=test/test-cases/regression/variable-SESSIONID.json 262TESTS+=test/test-cases/regression/variable-STATUS.json 263TESTS+=test/test-cases/regression/variable-TIME_DAY.json 264TESTS+=test/test-cases/regression/variable-TIME_EPOCH.json 265TESTS+=test/test-cases/regression/variable-TIME_HOUR.json 266TESTS+=test/test-cases/regression/variable-TIME.json 267TESTS+=test/test-cases/regression/variable-TIME_MIN.json 268TESTS+=test/test-cases/regression/variable-TIME_MON.json 269TESTS+=test/test-cases/regression/variable-TIME_SEC.json 270TESTS+=test/test-cases/regression/variable-TIME_WDAY.json 271TESTS+=test/test-cases/regression/variable-TIME_YEAR.json 272TESTS+=test/test-cases/regression/variable-TX.json 273TESTS+=test/test-cases/regression/variable-UNIQUE_ID.json 274TESTS+=test/test-cases/regression/variable-URLENCODED_ERROR.json 275TESTS+=test/test-cases/regression/variable-USERID.json 276TESTS+=test/test-cases/regression/variable-variation-count.json 277TESTS+=test/test-cases/regression/variable-variation-exclusion.json 278TESTS+=test/test-cases/regression/variable-WEBAPPID.json 279TESTS+=test/test-cases/regression/variable-WEBSERVER_ERROR_LOG.json 280TESTS+=test/test-cases/secrules-language-tests/operators/beginsWith.json 281TESTS+=test/test-cases/secrules-language-tests/operators/contains.json 282TESTS+=test/test-cases/secrules-language-tests/operators/containsWord.json 283TESTS+=test/test-cases/secrules-language-tests/operators/detectSQLi.json 284TESTS+=test/test-cases/secrules-language-tests/operators/detectXSS.json 285TESTS+=test/test-cases/secrules-language-tests/operators/endsWith.json 286TESTS+=test/test-cases/secrules-language-tests/operators/eq.json 287TESTS+=test/test-cases/secrules-language-tests/operators/ge.json 288TESTS+=test/test-cases/secrules-language-tests/operators/geoLookup.json 289TESTS+=test/test-cases/secrules-language-tests/operators/gt.json 290TESTS+=test/test-cases/secrules-language-tests/operators/ipMatch.json 291TESTS+=test/test-cases/secrules-language-tests/operators/le.json 292TESTS+=test/test-cases/secrules-language-tests/operators/lt.json 293TESTS+=test/test-cases/secrules-language-tests/operators/noMatch.json 294TESTS+=test/test-cases/secrules-language-tests/operators/pmFromFile.json 295TESTS+=test/test-cases/secrules-language-tests/operators/pm.json 296TESTS+=test/test-cases/secrules-language-tests/operators/rx.json 297TESTS+=test/test-cases/secrules-language-tests/operators/rxGlobal.json 298TESTS+=test/test-cases/secrules-language-tests/operators/streq.json 299TESTS+=test/test-cases/secrules-language-tests/operators/strmatch.json 300TESTS+=test/test-cases/secrules-language-tests/operators/unconditionalMatch.json 301TESTS+=test/test-cases/secrules-language-tests/operators/validateByteRange.json 302TESTS+=test/test-cases/secrules-language-tests/operators/validateUrlEncoding.json 303TESTS+=test/test-cases/secrules-language-tests/operators/validateUtf8Encoding.json 304TESTS+=test/test-cases/secrules-language-tests/operators/verifyCC.json 305TESTS+=test/test-cases/secrules-language-tests/operators/verifycpf.json 306TESTS+=test/test-cases/secrules-language-tests/operators/verifyssn.json 307TESTS+=test/test-cases/secrules-language-tests/operators/verifysvnr.json 308TESTS+=test/test-cases/secrules-language-tests/operators/within.json 309TESTS+=test/test-cases/secrules-language-tests/transformations/base64DecodeExt.json 310TESTS+=test/test-cases/secrules-language-tests/transformations/base64Decode.json 311TESTS+=test/test-cases/secrules-language-tests/transformations/base64Encode.json 312TESTS+=test/test-cases/secrules-language-tests/transformations/cmdLine.json 313TESTS+=test/test-cases/secrules-language-tests/transformations/compressWhitespace.json 314TESTS+=test/test-cases/secrules-language-tests/transformations/cssDecode.json 315TESTS+=test/test-cases/secrules-language-tests/transformations/escapeSeqDecode.json 316TESTS+=test/test-cases/secrules-language-tests/transformations/hexDecode.json 317TESTS+=test/test-cases/secrules-language-tests/transformations/hexEncode.json 318TESTS+=test/test-cases/secrules-language-tests/transformations/htmlEntityDecode.json 319TESTS+=test/test-cases/secrules-language-tests/transformations/jsDecode.json 320TESTS+=test/test-cases/secrules-language-tests/transformations/length.json 321TESTS+=test/test-cases/secrules-language-tests/transformations/lowercase.json 322TESTS+=test/test-cases/secrules-language-tests/transformations/md5.json 323TESTS+=test/test-cases/secrules-language-tests/transformations/normalisePath.json 324TESTS+=test/test-cases/secrules-language-tests/transformations/normalisePathWin.json 325TESTS+=test/test-cases/secrules-language-tests/transformations/parityEven7bit.json 326TESTS+=test/test-cases/secrules-language-tests/transformations/parityOdd7bit.json 327TESTS+=test/test-cases/secrules-language-tests/transformations/parityZero7bit.json 328TESTS+=test/test-cases/secrules-language-tests/transformations/removeCommentsChar.json 329TESTS+=test/test-cases/secrules-language-tests/transformations/removeComments.json 330TESTS+=test/test-cases/secrules-language-tests/transformations/removeNulls.json 331TESTS+=test/test-cases/secrules-language-tests/transformations/removeWhitespace.json 332TESTS+=test/test-cases/secrules-language-tests/transformations/replaceComments.json 333TESTS+=test/test-cases/secrules-language-tests/transformations/replaceNulls.json 334TESTS+=test/test-cases/secrules-language-tests/transformations/sha1.json 335TESTS+=test/test-cases/secrules-language-tests/transformations/sqlHexDecode.json 336TESTS+=test/test-cases/secrules-language-tests/transformations/trim.json 337TESTS+=test/test-cases/secrules-language-tests/transformations/trimLeft.json 338TESTS+=test/test-cases/secrules-language-tests/transformations/trimRight.json 339TESTS+=test/test-cases/secrules-language-tests/transformations/urlDecode.json 340TESTS+=test/test-cases/secrules-language-tests/transformations/urlDecodeUni.json 341TESTS+=test/test-cases/secrules-language-tests/transformations/urlEncode.json 342TESTS+=test/test-cases/secrules-language-tests/transformations/utf8toUnicode.json 343 344 345pkgconfigdir = $(libdir)/pkgconfig 346pkgconfig_DATA = modsecurity.pc 347EXTRA_DIST = modsecurity.pc.in \ 348 modsecurity.conf-recommended \ 349 unicode.mapping 350 351