Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

README bug on the running of tests #3328

Open
paul-hammant opened this issue Jan 13, 2025 · 8 comments
Open

README bug on the running of tests #3328

paul-hammant opened this issue Jan 13, 2025 · 8 comments
Labels
3.x Related to ModSecurity version 3.x

Comments

@paul-hammant
Copy link

paul-hammant commented Jan 13, 2025

Describe the bug

In the readme, there's advice for

$ cd test
$ ./regression-tests
$ ./unit-tests

The second line should be $ ./regression_tests (underscore not dash), but I can't intuit how to run the unit tests, but am sure that tests/unit-tests doesn't exist anymore. There is a test-suite.sh in the same folder this is what I get without any params passed to it:

$ cd test/
/test$ ./test-suite.sh 
./test-suite.sh: line 3: cd: test: No such file or directory
./test-suite.sh: line 6: $length: substring expression < 0
./test-suite.sh: line 29: ./unit_tests: No such file or directory
:test-result: SKIP: json is not enabled. (unit/127) .././test-suite.sh

OK, after a fresh clone-recursive I get back to attempting to run /test$ ./test_suite.sh again and it completes: "Ran a total of: 4326 unit tests - 11 failed." Not sure of zero failures was expected but 11 is better than 4326 failures.

@paul-hammant paul-hammant added the 3.x Related to ModSecurity version 3.x label Jan 13, 2025
@airween
Copy link
Member

airween commented Jan 13, 2025

Hi @paul-hammant,

:test-result: SKIP: json is not enabled. (unit/127) .././test-suite.sh

Am I right when I assume you don't have JSON support?

OK, after a fresh clone-recursive I get back to attempting to run /test$ ./test_suite.sh again and it completes: "Ran a total of: 4326 unit tests - 11 failed." Not sure of zero failures was expected but 11 is better than 4326 failures.

Which tests were failed? I assume all of them need JSON... bet please let us know.

@paul-hammant
Copy link
Author

Scanning the README: I'm not sure how to setup yajl, which is the json lib ModSecurity uses. So from StackOverflow:

$ sudo apt-get install libyajl-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libyajl-dev is already the newest version (2.1.0-5build1).
0 to upgrade, 0 to newly install, 0 to remove and 15 not to upgrade.

It appears it was already installed on this Ubuntu 24.04 box. There must be some other thing I need?

@airween
Copy link
Member

airween commented Jan 14, 2025

There must be some other thing I need?

I assume you also have libyajl2 package installed.

Could you show us the output of configure script? At the end it shows up you a summary. Something like this:

ModSecurity - v3.0.12-296-g6a2eee62 for Linux
 
 Mandatory dependencies
   + libInjection                                  ....v3.9.2-46-gbfba51f
   + Mbed TLS                                      ....v3.6.0
   + SecLang tests                                 ....a3d4405
 
 Optional dependencies
   + GeoIP/MaxMind                                 ....found 
      * (MaxMind) v1.11.0
         -lmaxminddb , -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu 
      * (GeoIP) v1.6.12
         -lGeoIP , -I/usr/include/ 
   + LibCURL                                       ....found v8.11.1 
      -lcurl,  -DWITH_CURL_SSLVERSION_TLSv1_2 -DWITH_CURL
   + YAJL                                          ....found v2.1.0
      -lyajl , -DWITH_YAJL  -I/usr/include
   + LMDB                                          ....disabled
   + LibXML2                                       ....found v2.9.14
      -lxml2 , -I/usr/include/libxml2  -DWITH_LIBXML2
   + SSDEEP                                        ....found 
      -lfuzzy -L/usr/lib/x86_64-linux-gnu/, -DWITH_SSDEEP -I/usr/include
   + LUA                                           ....found v503
      -llua5.3 -L/usr/lib/x86_64-linux-gnu/, -DWITH_LUA -DWITH_LUA_5_3 -I/usr/include/lua5.3
   + PCRE                                          ....found 
     using pcre v
      , 
   + PCRE2                                          ....found v10.44
      -lpcre2-8 , 
 
 Other Options
   + Test Utilities                                ....enabled
   + Assertions                                    ....enabled
   + SecDebugLog                                   ....enabled
   + afl fuzzer                                    ....disabled
   + library examples                              ....enabled
   + Building parser                               ....disabled
   + Treating pm operations as critical section    ....disabled

@paul-hammant
Copy link
Author

Was also installed already:

$ sudo apt install libyajl2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libyajl2 is already the newest version (2.1.0-5build1).
libyajl2 set to manually installed.
0 to upgrade, 0 to newly install, 0 to remove and 15 not to upgrade.

From ./configure:

ModSecurity - v3.0.12-296-g9e685bf8 for Linux
 
 Mandatory dependencies
   + libInjection                                  ....v3.9.2-92-gb9fcaaf
   + Mbed TLS                                      ....v3.6.0
   + SecLang tests                                 ....a3d4405
 
 Optional dependencies
   + GeoIP/MaxMind                                 ....not found
   + LibCURL                                       ....not found
   + YAJL                                          ....found v2.1.0
      -lyajl , -DWITH_YAJL  -I/usr/include
   + LMDB                                          ....not found
   + LibXML2                                       ....found v2.9.14
      -lxml2 , -I/usr/include/libxml2  -DWITH_LIBXML2
   + SSDEEP                                        ....not found
   + LUA                                           ....not found
   + PCRE2                                          ....disabled
 
 Other Options
   + Test Utilities                                ....enabled
   + Assertions                                    ....disabled
   + SecDebugLog                                   ....enabled
   + afl fuzzer                                    ....disabled
   + library examples                              ....enabled
   + Building parser                               ....disabled
   + Treating pm operations as critical section    ....disabled

@airween
Copy link
Member

airween commented Jan 14, 2025

Thanks,

now if you build the source, are you able to run tests? If yes, which tests are failed?

@paul-hammant
Copy link
Author

Same terminal as above, and changing ...

$ ./regression-tests
$ ./unit-tests

... to ...

$ ./regression_tests
$ ./unit_tests

I see ...

ModSecurity 3.0.13 - tests
(options are not available -- missing GetOpt)

  # File Name                                         Test Name                                                             Passed?   
--- ---------                                         ---------                                                             -------   
  1 action-allow.json                                 Testing allow action (1/3)                                            passed!
  2 action-allow.json                                 Testing allow action (2/3)                                            passed!
  3 action-allow.json                                 Testing allow action (3/3)                                            passed!
  4 action-block.json                                 Testing 'block' action with desruptive action                         passed!
  5 action-block.json                                 Testing 'block' action without desruptive action                      passed!
  6 action-ctl_audit_engine.json                      auditengine : Config=Off, ctl:auditEngine=on                          passed!
  7 action-ctl_request_body_access.json               Testing CtlRequestBodyAccess (1)                                      passed!
  8 action-ctl_request_body_access.json               Testing CtlRequestBodyAccess (2)                                      passed!
  9 action-ctl_request_body_access.json               Testing CtlRequestBodyAccess (3)                                      passed!
 10 action-ctl_request_body_processor.json            Testing CtlRequestBodyProcessor=XML (1)                               passed!
 11 action-ctl_request_body_processor.json            Testing CtlRequestBodyProcessor=XML (2)                               passed!
 12 action-ctl_request_body_processor.json            Testing CtlRequestBodyProcessor=XML (3)                               passed!
 13 action-ctl_request_body_processor_urlencoded.json ctl:requestBodyProcessor=URLENCODED                                   passed!
 14 action-ctl_request_body_processor_urlencoded.json ctl:requestBodyProcessor=URLENCODED                                   passed!
 15 action-ctl_rule_engine.json                       Testing CtlRuleEngine (1)                                             passed!
 16 action-ctl_rule_engine.json                       Testing CtlRuleEngine (2)                                             passed!
 17 action-ctl_rule_engine.json                       Testing CtlRuleEngine (3)                                             passed!
 18 action-ctl_rule_engine.json                       Testing CtlRuleEngine (4)                                             passed!
 19 action-ctl_rule_engine.json                       Testing CtlRuleEngine (5)                                             passed!
 20 action-ctl_rule_engine.json                       Testing CtlRuleEngine (6)                                             passed!
 21 action-ctl_rule_engine.json                       Testing CtlRuleEngine (7)                                             passed!
 22 action-ctl_rule_remove_by_id.json                 Testing CtlRuleRemoteById (1)                                         passed!
 23 action-ctl_rule_remove_by_id.json                 Testing CtlRuleRemoteById (2)                                         passed!
 24 action-ctl_rule_remove_by_tag.json                Testing ctl:ruleRemoveByTag (1/2)                                     passed!
 25 action-ctl_rule_remove_by_tag.json                Testing ctl:ruleRemoveByTag (2/2)                                     passed!
 26 action-ctl_rule_remove_target_by_id.json          Testing CtlRuleRemoveTargetById (1)                                   passed!
 27 action-ctl_rule_remove_target_by_id.json          Testing CtlRuleRemoveTargetById (2)                                   passed!
 28 action-ctl_rule_remove_target_by_id.json          Testing CtlRuleRemoveTargetById (3)                                   passed!
 29 action-ctl_rule_remove_target_by_tag.json         Testing CtlRuleRemoteTargetByTag (1)                                  passed!
 30 action-ctl_rule_remove_target_by_tag.json         Testing CtlRuleRemoteTargetByTag (2)                                  passed!
 31 action-ctl_rule_remove_target_by_tag.json         Testing CtlRuleRemoteTargetByTag (3)                                  passed!
 32 action-disruptive.json                            Testing Disruptive actions (1/n)                                      passed!
 33 action-disruptive.json                            Testing Disruptive actions (2/n)                                      passed!
 34 action-disruptive.json                            Testing Disruptive actions (3/n)                                      passed!
 35 action-disruptive.json                            Testing Disruptive actions (4/n)                                      passed!
 36 action-disruptive.json                            Testing Disruptive actions (5/n)                                      passed!
 37 action-disruptive.json                            Testing Disruptive actions (6/n)                                      passed!
 38 action-exec.json                                  Testing action :: exec (1/3)                                          skipped!
 39 action-exec.json                                  Testing action :: exec (2/2)                                          skipped!
 40 action-exec.json                                  Testing action :: exec (3/3)                                          skipped!
 41 action-expirevar.json                             Testing expirevar action (1/x) - ip, expire later                     passed!
 42 action-expirevar.json                             Testing expirevar action (2/x) - ip, expire immediately               passed!
 43 action-expirevar.json                             Testing expirevar action (3/x) session, expire later                  passed!
 44 action-expirevar.json                             Testing expirevar action (4/x) session, expire immediately            passed!
 45 action-id.json                                    Testing Action :: id (1/6)                                            passed!
 46 action-id.json                                    Testing Action :: id (2/6)                                            passed!
 47 action-id.json                                    Testing Action :: id (3/6)                                            passed!
 48 action-id.json                                    Testing Action :: id (4/6)                                            passed!
 49 action-id.json                                    Testing Action :: id (5/6)                                            passed!
 50 action-id.json                                    Testing Action :: id (6/6)                                            passed!
 51 action-initcol.json                               Testing initcol action                                                passed!
 52 action-msg.json                                   Testing action :: msg (this test is not really testing it)            passed!
 53 action-msg.json                                   Testing action :: msg - variable expansion                            passed!
 54 action-setenv.json                                Testing setenv action (2/3)                                           passed!
 55 action-setenv.json                                Testing setenv action (3/3)                                           passed!
 56 action-setenv.json                                Testing setsid action (1/3)                                           passed!
 57 action-setrsc.json                                Testing setrsc action                                                 passed!
 58 action-setsid.json                                Testing setsid action                                                 passed!
 59 action-setuid.json                                Testing setuid action                                                 passed!
 60 action-skip.json                                  Testing skip action 1/3                                               passed!
 61 action-skip.json                                  Testing skip action 2/3                                               passed!
 62 action-skip.json                                  Testing skip action 3/3                                               passed!
 63 action-tag.json                                   Testing action :: tag 1                                               passed!
 64 action-tag.json                                   Testing action :: tag 2                                               passed!
 65 action-tnf-base64.json                            Testing Transformatio :: base64 (1/2)                                 passed!
 66 action-tnf-base64.json                            Testing Transformatio :: base64 (2/2)                                 passed!
 67 action-xmlns.json                                 Testing XML request body parser (validate ok)                         passed!
 68 action-xmlns.json                                 Testing action :: XMLNS (parser error 1)                              passed!
 69 action-xmlns.json                                 Testing action :: XMLNS (parser error 2)                              passed!
 70 action-xmlns.json                                 Testing action :: XMLNS (parser error 3)                              passed!
 71 actions.json                                      actions :: phase:2,trim,status:500,deny                               passed!
 72 actions.json                                      actions :: phase:4,trim,status:500,deny                               passed!
 73 actions.json                                      actions :: trim,deny                                                  passed!
 74 actions.json                                      actions :: trim,redirect:'http://www.google.com'                      passed!
 75 actions.json                                      actions :: trim,status:306,redirect:http://www.google.com             passed!
 76 actions.json                                      actions :: trim,status:500                                            passed!
 77 auditlog.json                                     auditlog : basic parser test - Parallel                               passed!
 78 auditlog.json                                     auditlog : basic parser test - Parallel                               passed!
 79 auditlog.json                                     auditlog : basic parser test - Serial                                 passed!
 80 auditlog.json                                     auditlog : messages verification - nolog,auditlog                     passed!
 81 auditlog.json                                     auditlog : multiMatch data, match after last transform                passed!
 82 auditlog.json                                     auditlog : multiMatch data, match only after intermediate transform   passed!
 83 auditlog.json                                     auditlog : rule chain, multiMatch data, match after last transform    passed!
 84 auditlog.json                                     auditlog : rule chain, multiMatch data, match only after intermediate transformpassed!
 85 collection-case-insensitive.json                  Testing collection :: Case insensitive (1/1)                          passed!
 86 collection-lua.json                               Testing LUA :: m.getvars ARGS (8/8)                                   skipped!
 87 collection-lua.json                               Testing LUA :: m.set GLOBAL (3/7)                                     skipped!
 88 collection-lua.json                               Testing LUA :: m.set IP (2/7)                                         skipped!
 89 collection-lua.json                               Testing LUA :: m.set RESOURCE (4/7)                                   skipped!
 90 collection-lua.json                               Testing LUA :: m.set SESSION (5/7)                                    skipped!
 91 collection-lua.json                               Testing LUA :: m.set TX (1/7)                                         skipped!
 92 collection-lua.json                               Testing LUA :: m.set USER (6/7)                                       skipped!
 93 collection-regular_expression_selection.json      Testing collection :: TX/regular expression (1/2)                     passed!
 94 collection-regular_expression_selection.json      Testing collection :: TX/regular expression (2/2)                     passed!
 95 collection-resource.json                          Testing collection :: RESOURCE (1/2)                                  passed!
 96 collection-resource.json                          Testing collection :: RESOURCE (2/2)                                  passed!
 97 collection-tx-with-macro.json                     Testing collection :: TX (with macro) (1/4)                           passed!
 98 collection-tx-with-macro.json                     Testing collection :: TX (with macro) (2/4)                           passed!
 99 collection-tx-with-macro.json                     Testing collection :: TX (with macro) (3/4)                           passed!
100 collection-tx-with-macro.json                     Testing collection :: TX (with macro) (4/4)                           passed!
101 collection-tx.json                                Collection :: TX full vs partial match                                passed!
102 collection-tx.json                                Testing collection :: TX (1/4)                                        passed!
103 collection-tx.json                                Testing collection :: TX (2/4)                                        passed!
104 collection-tx.json                                Testing collection :: TX (3/4)                                        passed!
105 collection-tx.json                                Testing collection :: TX (4/4)                                        passed!
106 collection-tx.json                                Testing collection :: TX (5/n)                                        passed!
107 config-body_limits.json                           SecRequestBodyLimitAction ProcessPartial                              passed!
108 config-body_limits.json                           SecRequestBodyLimitAction Reject                                      passed!
109 config-body_limits.json                           SecRequestBodyLimitAction Reject - Engine Detection Only              passed!
110 config-body_limits.json                           SecRequestBodyLimitAction Reject - Engine Disabled                    passed!
111 config-body_limits.json                           SecRequestBodyNoFilesLimit - json, limit exceeded                     passed!
112 config-body_limits.json                           SecRequestBodyNoFilesLimit - json, limit not exceeded                 passed!
113 config-body_limits.json                           SecRequestBodyNoFilesLimit - multipart, limit exceeded                passed!
114 config-body_limits.json                           SecRequestBodyNoFilesLimit - multipart, limit not exceeded            passed!
115 config-body_limits.json                           SecRequestBodyNoFilesLimit - urlencoded, limit exceeded               passed!
116 config-body_limits.json                           SecRequestBodyNoFilesLimit - urlencoded, limit not exceeded           passed!
117 config-body_limits.json                           SecRequestBodyNoFilesLimit - xml, limit exceeded                      passed!
118 config-body_limits.json                           SecRequestBodyNoFilesLimit - xml, limit not exceeded                  passed!
119 config-body_limits.json                           SecResponseBodyLimitAction ProcessPartial                             passed!
120 config-body_limits.json                           SecResponseBodyLimitAction Reject                                     passed!
121 config-body_limits.json                           SecResponseBodyLimitAction Reject - Engine Detection Only             passed!
122 config-body_limits.json                           SecResponseBodyLimitAction Reject - Engine Disabled                   passed!
123 config-calling_phases_by_name.json                Testing Config :: Phases by name (1/2)                                passed!
124 config-calling_phases_by_name.json                Testing Config :: Phases by name (2/2)                                passed!
125 config-include-bad.json                           Include - bad rule                                                    passed!
126 config-include-bad.json                           Include - duplicate id                                                passed!
127 config-include-bad.json                           Include - missing at include                                          passed!
128 config-include-bad.json                           Include - missing file                                                passed!
129 config-include.json                               Include (1/8)                                                         passed!
130 config-include.json                               Include (2/8)                                                         passed!
131 config-include.json                               Include (3/8)                                                         passed!
132 config-include.json                               Include (4/8)                                                         passed!
133 config-include.json                               Include (5/8)                                                         passed!
134 config-include.json                               Include (6/8)                                                         passed!
135 config-include.json                               Include (7/8)                                                         passed!
136 config-include.json                               Include (8/8) -- quoted with wildcard                                 passed!
137 config-remove_by_id.json                          SecRuleRemoveById (1/3)                                               passed!
138 config-remove_by_id.json                          SecRuleRemoveById (2/3)                                               passed!
139 config-remove_by_id.json                          SecRuleRemoveById (3/3)                                               passed!
140 config-remove_by_msg.json                         SecRuleRemoveByMsg (1/2)                                              passed!
141 config-remove_by_msg.json                         SecRuleRemoveByMsg (2/2)                                              passed!
142 config-remove_by_tag.json                         SecRuleRemoveByTag (1/2)                                              passed!
143 config-remove_by_tag.json                         SecRuleRemoveByTag (2/2)                                              passed!
144 config-response_type.json                         SecResponseBodyMimeType (1/3)                                         passed!
145 config-response_type.json                         SecResponseBodyMimeType (2/3)                                         passed!
146 config-response_type.json                         SecResponseBodyMimeType (3/3)                                         passed!
147 config-secdefaultaction.json                      Testing action :: SecDefaultAction: action not suitable               passed!
148 config-secdefaultaction.json                      Testing action :: SecDefaultAction: simple test                       passed!
149 config-secdefaultaction.json                      Testing action :: SecDefaultAction: status + redirect                 passed!
150 config-secdefaultaction.json                      Testing action :: SecDefaultAction: supporting transformation         passed!
151 config-secdefaultaction.json                      Testing action :: SecDefaultAction: supporting transformation + t:nonepassed!
152 config-secdefaultaction.json                      Testing action :: SecDefaultAction: t:none                            passed!
153 config-secdefaultaction.json                      Testing action :: SecDefaultAction: twice                             passed!
154 config-secremoterules.json                        Include remote rules                                                  skipped!
155 config-secremoterules.json                        Include remote rules - failed download (Abort)                        skipped!
156 config-secremoterules.json                        Include remote rules - failed download (Warn)                         skipped!
157 config-update-action-by-id.json                   SecRuleUpdateActionById (1/n)                                         passed!
158 config-update-action-by-id.json                   SecRuleUpdateActionById (2/n)                                         passed!
159 config-update-action-by-id.json                   SecRuleUpdateActionById (3/n)                                         passed!
160 config-update-action-by-id.json                   SecRuleUpdateActionById (4/n)                                         passed!
161 config-update-action-by-id.json                   SecRuleUpdateActionById (5/n)                                         passed!
162 config-update-action-by-id.json                   SecRuleUpdateActionById (6/n)                                         passed!
163 config-update-target-by-id.json                   SecRuleUpdateTargetById - exclude from ARGS_NAMES using regex (match) passed!
164 config-update-target-by-id.json                   SecRuleUpdateTargetById - exclude from ARGS_NAMES using regex (no match)passed!
165 config-update-target-by-id.json                   SecRuleUpdateTargetById - exclude using full name                     passed!
166 config-update-target-by-id.json                   SecRuleUpdateTargetById - exclude using regex                         passed!
167 config-update-target-by-id.json                   SecRuleUpdateTargetById - exclude whole collection                    passed!
168 config-update-target-by-msg.json                  SecRuleUpdateTargetByTag                                              passed!
169 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag (1/6)                                        passed!
170 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag (2/6)                                        passed!
171 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag (3/6)                                        passed!
172 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag (4/6)                                        passed!
173 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag Test (5/6) Regex with match anchored at beginning of Subjectpassed!
174 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag Test (6/6) Regex with match anchored at beginning of Subjectpassed!
175 config-update-target-by-tag.json                  SecRuleUpdateTargetByTag Test (7/6) Exclusion by full name            passed!
176 config-xml_external_entity.json                   Testing SecXMLExternalEntity/XXE 1                                    passed!
177 config-xml_external_entity.json                   Testing SecXMLExternalEntity/XXE 2                                    passed!
178 config-xml_external_entity.json                   Testing SecXMLExternalEntity/XXE 3                                    passed!
179 debug_log.json                                    Debug log                                                             passed!
180 directive-sec_rule_script.json                    Testing action :: SecRuleScript (1/4)                                 skipped!
181 directive-sec_rule_script.json                    Testing action :: SecRuleScript (2/4)                                 skipped!
182 directive-sec_rule_script.json                    Testing action :: SecRuleScript (3/4)                                 skipped!
183 directive-sec_rule_script.json                    Testing action :: SecRuleScript (4/4)                                 skipped!
184 fn-setHostname.json                               Testing function :: setRequestHostName                                passed!
185 issue-1152.json                                   Should libmodsec pass action clear m_actions?                         passed!
186 issue-1152.json                                   Should libmodsec pass action clear m_actions?                         passed!
187 issue-1152.json                                   Should libmodsec pass action clear m_actions?                         passed!
188 issue-1152.json                                   Should libmodsec pass action clear m_actions?                         passed!
189 issue-1528.json                                   Macro expansion inside regex does not work                            passed!
190 issue-1565.json                                   Problem with OWASP CRS rule 920160 when msc_process_request_headers called (1/2)passed!
191 issue-1565.json                                   Problem with OWASP CRS rule 920160 when msc_process_request_headers called (2/2)passed!
192 issue-1576.json                                   JSON array should be handled even without a key (1)                   passed!
193 issue-1576.json                                   JSON array should be handled even without a key (2)                   passed!
194 issue-1576.json                                   JSON array should be handled even without a key (3)                   passed!
195 issue-1591.json                                   Regular expressions in rule targets not respected (1/3)               passed!
196 issue-1591.json                                   Regular expressions in rule targets not respected (2/3)               passed!
197 issue-1591.json                                   Regular expressions in rule targets not respected (3/3)               passed!
198 issue-1725.json                                   Macro expansion on msg and logdata does not work for DURATION         passed!
199 issue-1743.json                                   Regex match does not work when arg ends with unescaped equal char (1/2)passed!
200 issue-1743.json                                   Regex match does not work when arg ends with unescaped equal char (2/2)passed!
201 issue-1785.json                                   Should libmodsec pass action clear m_actions?                         passed!
202 issue-1812.json                                   Converting £ (%C2%A3) from query string                              passed!
203 issue-1825.json                                   multipart Content-Disposition should allow filename* field (1/7)      passed!
204 issue-1825.json                                   multipart Content-Disposition should allow filename* field (2/7)      passed!
205 issue-1825.json                                   multipart Content-Disposition should allow filename* field (3/7)      passed!
206 issue-1825.json                                   multipart Content-Disposition should allow filename* field (4/7)      passed!
207 issue-1825.json                                   multipart Content-Disposition should allow filename* field (5/7)      passed!
208 issue-1825.json                                   multipart Content-Disposition should allow filename* field (6/7)      passed!
209 issue-1825.json                                   multipart Content-Disposition should allow filename* field (7/7)      passed!
210 issue-1831.json                                   Invalid actions break CRS 3.1 on rule 912160 - 1                      passed!
211 issue-1831.json                                   Invalid actions break CRS 3.1 on rule 912160 - 2                      passed!
212 issue-1831.json                                   Invalid actions break CRS 3.1 on rule 912160 - 3                      passed!
213 issue-1831.json                                   Invalid actions break CRS 3.1 on rule 912160 - 4                      passed!
214 issue-1844.json                                   m_lineNumber ... mapping ... correct line number in file (1/n)        passed!
215 issue-1844.json                                   m_lineNumber ... mapping ... correct line number in file (2/n)        passed!
216 issue-1844.json                                   m_lineNumber ... mapping ... correct line number in file (3/n)        passed!
217 issue-1844.json                                   m_lineNumber ... mapping ... correct line number in file (4/n)        passed!
218 issue-1844.json                                   m_lineNumber ... mapping ... correct line number in file (5/n)        passed!
219 issue-1844.json                                   m_lineNumber ... mapping ... correct line number in file (6/n)        passed!
220 issue-1850.json                                   Override the default status code if not suitable to redirect action   passed!
221 issue-1941.json                                   Failed to load locate the unicode map file from: ... 1/n              passed!
222 issue-1941.json                                   Failed to load locate the unicode map file from: ... 2/n              passed!
223 issue-1941.json                                   Failed to load locate the unicode map file from: ... 3/n              passed!
224 issue-1941.json                                   Failed to load locate the unicode map file from: ... 4/n              passed!
225 issue-1941.json                                   Failed to load locate the unicode map file from: ... 5/n              passed!
226 issue-1943.json                                   double macros bug 1/n                                                 passed!
227 issue-1943.json                                   double macros bug 2/n                                                 passed!
228 issue-1956.json                                   ctl:ruleRemoveById doesn't handle all ranges equally 1                passed!
229 issue-1956.json                                   ctl:ruleRemoveById doesn't handle all ranges equally 2                passed!
230 issue-1956.json                                   ctl:ruleRemoveById doesn't handle all ranges equally 3                passed!
231 issue-1956.json                                   ctl:ruleRemoveById doesn't handle all ranges equally 4                passed!
232 issue-1956.json                                   ctl:ruleRemoveById doesn't handle all ranges equally 5                passed!
233 issue-1960.json                                   SecRuleEngine DetectionOnly with disruptive SecDefaultAction          passed!
234 issue-2000.json                                   Testing audit log part H should output when deny - issue-2000         passed!
235 issue-2099.json                                   Testing ctl:ruleRemoveById - issue 2099                               passed!
236 issue-2099.json                                   Testing ctl:ruleRemoveById against - issue 2099                       passed!
237 issue-2099.json                                   Testing ctl:ruleRemoveByTag - issue 2099                              passed!
238 issue-2099.json                                   Testing ctl:ruleRemoveByTag against - issue 2099                      passed!
239 issue-2099.json                                   Testing ctl:ruleRemoveTargetByTag - issue 2099                        passed!
240 issue-2099.json                                   Testing ctl:ruleRemoveTargetByTag against - issue 2099                passed!
241 issue-2111.json                                   Testing ctl:ruleRemoveById with range - issue 1444                    passed!
242 issue-2196.json                                   Testing audit log not written when nolog - issue-2196                 passed!
243 issue-2296.json                                   Variable key selection using a regular expression (1/n)               passed!
244 issue-2296.json                                   Variable key selection using a regular expression (2/n)               passed!
245 issue-2296.json                                   Variable key selection using a regular expression - TX (6/n)          passed!
246 issue-2296.json                                   Variable key selection using a regular expression - TX (7/n)          passed!
247 issue-2296.json                                   Variable key selection using a regular expression - exclusion (8/n)   passed!
248 issue-2296.json                                   Variable key selection using a regular expression - exclusion/ARGS (9/n)passed!
249 issue-2296.json                                   Variable key selection using a regular expression - exclusion/TX (10/n)passed!
250 issue-2296.json                                   Variable key selection using a regular expression - matched_vars (4/n)passed!
251 issue-2296.json                                   Variable key selection using a regular expression - msg (3/n)         passed!
252 issue-2296.json                                   Variable key selection using a regular expression - rule (5/n)        passed!
253 issue-2423-msg-in-chain.json                      Test match variable (1/n)                                             passed!
254 issue-2423-msg-in-chain.json                      Test match variable (2/n)                                             passed!
255 issue-2423-msg-in-chain.json                      Test match variable (3/n)                                             passed!
256 issue-2423-msg-in-chain.json                      Test match variable (4/n)                                             passed!
257 issue-2427.json                                   Tmp file retained for @inspectFile (1/2)                              skipped!
258 issue-2427.json                                   Tmp file retained for @inspectFile (2/2)                              skipped!
259 issue-394.json                                    Segmentation fault when uploading file with SecStreamInBodyInspection enabledpassed!
260 issue-849.json                                    @ipMatch "Could not add entry" on slash/32 notation in 2.9.0 (1/2)    passed!
261 issue-849.json                                    @ipMatch "Could not add entry" on slash/32 notation in 2.9.0 (2/2)    passed!
262 issue-960.json                                    !@within appears to fail (1/3)                                        passed!
263 issue-960.json                                    !@within appears to fail (2/3)                                        passed!
264 issue-960.json                                    !@within appears to fail (3/3)                                        passed!
265 misc-variable-under-quotes.json                   Testing Variables (quoted) :: REQUEST_LINE - contains (1/2)           passed!
266 misc-variable-under-quotes.json                   Testing Variables (quoted) :: REQUEST_LINE - regex (2/2)              passed!
267 misc.json                                         Testing action :: SecRule directives should be case insensitive       passed!
268 offset-variable.json                              Testing Variables :: ARGS/Multipart 1                                 passed!
269 offset-variable.json                              Testing Variables :: ARGS/Multipart 2                                 passed!
270 offset-variable.json                              Testing Variables :: REMOTE_USER                                      passed!
271 offset-variable.json                              Testing Variables :: REQUEST_BODY                                     passed!
272 offset-variable.json                              Testing Variables :: REQUEST_BODY                                     passed!
273 offset-variable.json                              Testing Variables :: REQUEST_BODY_LENGTH                              passed!
274 offset-variable.json                              Testing Variables :: REQUEST_FILENAME 1                               passed!
275 offset-variable.json                              Testing Variables :: REQUEST_FILENAME 2                               passed!
276 offset-variable.json                              Testing Variables :: REQUEST_FILENAME 3                               passed!
277 offset-variable.json                              Variable offset - ARGS                                                passed!
278 offset-variable.json                              Variable offset - ARGS n                                              passed!
279 offset-variable.json                              Variable offset - ARGS_COMBINED_SIZE 1                                passed!
280 offset-variable.json                              Variable offset - ARGS_COMBINED_SIZE 2                                passed!
281 offset-variable.json                              Variable offset - ARGS_GET                                            passed!
282 offset-variable.json                              Variable offset - ARGS_GET_NAMES 1                                    passed!
283 offset-variable.json                              Variable offset - ARGS_GET_NAMES 2                                    passed!
284 offset-variable.json                              Variable offset - ARGS_GET_NAMES 3                                    passed!
285 offset-variable.json                              Variable offset - ARGS_GET_NAMES 4                                    passed!
286 offset-variable.json                              Variable offset - ARGS_NAMES                                          passed!
287 offset-variable.json                              Variable offset - ARGS_NAMES n                                        passed!
288 offset-variable.json                              Variable offset - ARGS_POST 1                                         passed!
289 offset-variable.json                              Variable offset - ARGS_POST 2                                         passed!
290 offset-variable.json                              Variable offset - ARGS_POST_NAMES                                     passed!
291 offset-variable.json                              Variable offset - AUTH_TYPE 1                                         passed!
292 offset-variable.json                              Variable offset - AUTH_TYPE 2                                         passed!
293 offset-variable.json                              Variable offset - FILES                                               passed!
294 offset-variable.json                              Variable offset - FILES                                               passed!
295 offset-variable.json                              Variable offset - FILES_COMBINED_SIZE                                 passed!
296 offset-variable.json                              Variable offset - FILES_NAMES                                         passed!
297 offset-variable.json                              Variable offset - FILES_SIZES 1                                       passed!
298 offset-variable.json                              Variable offset - FILES_SIZES 2                                       passed!
299 offset-variable.json                              Variable offset - FILES_TMP_CONTENT 1                                 passed!
300 offset-variable.json                              Variable offset - FILES_TMP_CONTENT 2                                 passed!
301 offset-variable.json                              Variable offset - MULTIPART_FILENAME                                  passed!
302 offset-variable.json                              Variable offset - MULTIPART_NAME                                      passed!
303 offset-variable.json                              Variable offset - PATH_INFO                                           passed!
304 offset-variable.json                              Variable offset - PATH_INFO                                           passed!
305 offset-variable.json                              Variable offset - QUERY_STRING                                        passed!
306 offset-variable.json                              Variable offset - REQUEST_BASENAME                                    passed!
307 offset-variable.json                              Variable offset - REQUEST_COOKIES 1                                   passed!
308 offset-variable.json                              Variable offset - REQUEST_COOKIES 2                                   passed!
309 offset-variable.json                              Variable offset - REQUEST_COOKIES 3                                   passed!
310 offset-variable.json                              Variable offset - REQUEST_COOKIES_NAMES                               passed!
311 offset-variable.json                              Variable offset - REQUEST_HEADERS                                     passed!
312 offset-variable.json                              Variable offset - REQUEST_HEADERS:content-type                        passed!
313 offset-variable.json                              Variable offset - REQUEST_HEADERS_NAMES                               passed!
314 offset-variable.json                              Variable offset - REQUEST_LINE                                        passed!
315 offset-variable.json                              Variable offset - REQUEST_METHOD                                      passed!
316 offset-variable.json                              Variable offset - REQUEST_PROTOCOL                                    passed!
317 offset-variable.json                              Variable offset - REQUEST_URI                                         passed!
318 offset-variable.json                              Variable offset - REQUEST_URI_RAW                                     passed!
319 operator-UnconditionalMatch.json                  Testing Operator :: @UnconditionalMatch                               passed!
320 operator-detectsqli.json                          Testing Operator :: @detectSQLi                                       passed!
321 operator-detectxss.json                           Testing Operator :: @detectXSS                                        passed!
322 operator-fuzzyhash.json                           Testing Operator :: @fuzzyHash (1/2)                                  skipped!
323 operator-fuzzyhash.json                           Testing Operator :: @fuzzyHash (2/2)                                  skipped!
324 operator-inpectFile.json                          Testing Operator :: @inspectFile (1/3)                                passed!
325 operator-inpectFile.json                          Testing Operator :: @inspectFile (2/3)                                passed!
326 operator-inpectFile.json                          Testing Operator :: @inspectFile (3/3)                                passed!
327 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (1/7)                          skipped!
328 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (2/7)                          skipped!
329 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (3/7)                          skipped!
330 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (4/7)                          skipped!
331 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (5/7)                          skipped!
332 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (6/7)                          skipped!
333 operator-inpectFile.json                          Testing Operator :: @inspectFile - lua (7/7)                          skipped!
334 operator-ipMatchFromFile.json                     Testing Operator :: @ipMatchFromFile                                  passed!
335 operator-ipMatchFromFile.json                     Testing Operator :: @ipMatchFromFile - file not found                 passed!
336 operator-ipMatchFromFile.json                     Testing Operator :: @ipMatchFromFile - https                          skipped!
337 operator-pm.json                                  pm operater test 2/4                                                  passed!
338 operator-pm.json                                  pm operater test 3/6                                                  passed!
339 operator-pm.json                                  pm operater test 4/6                                                  passed!
340 operator-pm.json                                  pm operater test 5/6                                                  passed!
341 operator-pm.json                                  pm operater test 6/6                                                  passed!
342 operator-pm.json                                  pm operator test 1/6                                                  passed!
343 operator-rx.json                                  Testing Operator :: @rx                                               passed!
344 operator-rx.json                                  Testing Operator :: @rx in implicit form with negation ('!')          passed!
345 operator-rx.json                                  Testing Operator :: @rx with PCRE error                               passed!
346 operator-rx.json                                  Testing Operator :: @rx with PCRE match limits exceeded               passed!
347 operator-rx.json                                  Testing Operator :: @rx with PCRE match limits exceeded               passed!
348 operator-rx.json                                  Testing Operator :: @rx with non-compiling pattern                    passed!
349 operator-rxGlobal.json                            Testing Operator :: @rxGlobal                                         passed!
350 operator-validate-byte-range.json                 Testing Operator :: @validateByteRange with bytes > 127               passed!
351 operator-verifycc.json                            Testing Operator :: @verifycc                                         passed!
352 operator-verifycpf.json                           Testing Operator :: @verifycpf (1/2)                                  passed!
353 operator-verifyssn.json                           Testing Operator :: @verifycpf (1/2)                                  passed!
354 operator-verifysvnr.json                          Testing Operator :: @verifysvnr (1/1)                                 passed!
355 request-body-parser-json.json                     Testing JSON request body parser - depth not over limit               passed!
356 request-body-parser-json.json                     Testing JSON request body parser - depth over limit                   passed!
357 request-body-parser-json.json                     Testing JSON request body parser - issue #1822 (1/2)                  passed!
358 request-body-parser-json.json                     Testing JSON request body parser - issue #1822 (2/2)                  passed!
359 request-body-parser-json.json                     Testing JSON request body parser 1/2                                  passed!
360 request-body-parser-json.json                     Testing JSON request body parser 2/2                                  passed!
361 request-body-parser-multipart-crlf.json           multipart parser (final CRLF)                                         passed!
362 request-body-parser-multipart.json                multipart parser (C-D uses single quotes)                             passed!
363 request-body-parser-multipart.json                multipart parser (C-T parm after boundary -- invalid but tolerated)   passed!
364 request-body-parser-multipart.json                multipart parser (boundary contains "bOuNdArY")                       passed!
365 request-body-parser-multipart.json                multipart parser (boundary contains "boundary")                       passed!
366 request-body-parser-multipart.json                multipart parser (boundary special char - trailing exclamation+token) passed!
367 request-body-parser-multipart.json                multipart parser (boundary special char - trailing whitespace+token)  passed!
368 request-body-parser-multipart.json                multipart parser (boundary whitespace in C-T - after name)            passed!
369 request-body-parser-multipart.json                multipart parser (boundary whitespace in C-T - after value) - apache removes the whitespace, not the case for us... TODOpassed!
370 request-body-parser-multipart.json                multipart parser (boundary whitespace in C-T - before value)          passed!
371 request-body-parser-multipart.json                multipart parser (contains foreign bound., all valid, permissive mode)passed!
372 request-body-parser-multipart.json                multipart parser (contains foreign bound., all valid, strict mode)    passed!
373 request-body-parser-multipart.json                multipart parser (contains foreign bound., no UNMATCH rule)           passed!
374 request-body-parser-multipart.json                multipart parser (contains foreign bound., one part, wrong final)     passed!
375 request-body-parser-multipart.json                multipart parser (contains foreign bound., one part, wrong lead)      passed!
376 request-body-parser-multipart.json                multipart parser (contains foreign bound., permissive mode)           passed!
377 request-body-parser-multipart.json                multipart parser (contains foreign bound., strict mode)               passed!
378 request-body-parser-multipart.json                multipart parser (contains foreign bound., wrong final bound.)        passed!
379 request-body-parser-multipart.json                multipart parser (contains foreign bound., wrong lead bound., permissive mode)passed!
380 request-body-parser-multipart.json                multipart parser (contains foreign bound., wrong lead bound., strict mode)passed!
381 request-body-parser-multipart.json                multipart parser (contains foreign bound., wrong sep. bound., permissive mode)passed!
382 request-body-parser-multipart.json                multipart parser (contains foreign bound., wrong sep. bound., strict mode)passed!
383 request-body-parser-multipart.json                multipart parser (data after final boundary)                          passed!
384 request-body-parser-multipart.json                multipart parser (data contains "--")                                 passed!
385 request-body-parser-multipart.json                multipart parser (final CRLF)                                         passed!
386 request-body-parser-multipart.json                multipart parser (invalid C-T boundary parameter name - case)         passed!
387 request-body-parser-multipart.json                multipart parser (invalid C-T boundary parameter name - trailing chars)passed!
388 request-body-parser-multipart.json                multipart parser (invalid C-T boundary separator - comma)             passed!
389 request-body-parser-multipart.json                multipart parser (invalid C-T boundary separator - space)             passed!
390 request-body-parser-multipart.json                multipart parser (invalid part header - contains invalid character)   passed!
391 request-body-parser-multipart.json                multipart parser (multipart mixed - missing disposition)              passed!
392 request-body-parser-multipart.json                multipart parser (multipart mixed - normal)                           passed!
393 request-body-parser-multipart.json                multipart parser (multiple C-T boundaries - comma separated)          passed!
394 request-body-parser-multipart.json                multipart parser (multiple C-T boundaries - first quoted)             passed!
395 request-body-parser-multipart.json                multipart parser (no final CRLF) - FIXME: test suit cannot work without the ending \npassed!
396 request-body-parser-multipart.json                multipart parser (normal)                                             passed!
397 request-body-parser-multipart.json                multipart parser (normal)                                             passed!
398 request-body-parser-multipart.json                multipart parser (part header folding - invalid)                      passed!
399 request-body-parser-multipart.json                multipart parser (part header folding - mixed invalid)                passed!
400 request-body-parser-multipart.json                multipart parser (part header folding - mixed)                        passed!
401 request-body-parser-multipart.json                multipart parser (part header folding - space)                        passed!
402 request-body-parser-multipart.json                multipart parser (part header folding - tab)                          passed!
403 request-body-parser-multipart.json                multipart parser (partial quoted boundary value - only end quote)     passed!
404 request-body-parser-multipart.json                multipart parser (partial quoted boundary value - only start quote)   passed!
405 request-body-parser-multipart.json                multipart parser (quoted boundary - normal)                           passed!
406 request-body-parser-multipart.json                multipart parser (quoted boundary value - contained quote)            passed!
407 request-body-parser-multipart.json                multipart parser (quoted boundary value - two quoted values)          passed!
408 request-body-parser-multipart.json                multipart parser (quoted boundary value - whitespace after)           passed!
409 request-body-parser-multipart.json                multipart parser (quoted boundary value - whitespace after)           passed!
410 request-body-parser-multipart.json                multipart parser (quoted boundary value - whitespace before)          passed!
411 request-body-parser-multipart.json                multipart parser (quoted boundary value - whitespace between)         passed!
412 request-body-parser-multipart.json                multipart parser error (bad disposition)                              passed!
413 request-body-parser-multipart.json                multipart parser error (no disposition name)                          passed!
414 request-body-parser-multipart.json                multipart parser error (no disposition name)                          passed!
415 request-body-parser-multipart.json                multipart parser error (no disposition)                               passed!
416 request-body-parser-multipart.json                multipart parser error (no final boundary)                            passed!
417 request-body-parser-xml-validade-dtd.json         Testing XML request body parser - validateDTD (bad DTD)               passed!
418 request-body-parser-xml-validade-dtd.json         Testing XML request body parser - validateDTD (bad XML)               passed!
419 request-body-parser-xml-validade-dtd.json         Testing XML request body parser - validateDTD (validate ok)           passed!
420 request-body-parser-xml-validade-dtd.json         Testing XML request body parser - validateDTD (validation failed)     passed!
421 request-body-parser-xml.json                      Testing XML request body parser (bad XML)                             passed!
422 request-body-parser-xml.json                      Testing XML request body parser (bad schema)                          passed!
423 request-body-parser-xml.json                      Testing XML request body parser (validate attribute value failed)     passed!
424 request-body-parser-xml.json                      Testing XML request body parser (validate failed)                     passed!
425 request-body-parser-xml.json                      Testing XML request body parser (validate ok)                         passed!
426 rule-920120.json                                  Testing Variables :: OWASP CRS id:920120                              passed!
427 rule-920200.json                                  Testing Byte ranges :: OWASP CRS id:920200                            passed!
428 rule-920274.json                                  Testing Byte ranges :: OWASP CRS id:920274                            passed!
429 sec_component_signature.json                      SecComponentSignature                                                 passed!
430 secaction.json                                    sec action                                                            passed!
431 secargumentslimit.json                            Testing SecArgumentLimit not over limit (1/1)                         passed!
432 secargumentslimit.json                            Testing SecArgumentLimit over limit (2/2)                             passed!
433 secmarker.json                                    SecMarker 1                                                           passed!
434 secmarker.json                                    SecMarker 2                                                           passed!
435 secruleengine.json                                Testing Disruptive actions (1/n)                                      passed!
436 secruleengine.json                                Testing Disruptive actions (2/n)                                      passed!
437 secruleengine.json                                Testing Disruptive actions (3/n)                                      passed!
438 secruleengine.json                                Testing Disruptive actions (4/n)                                      passed!
439 secruleengine.json                                Testing Disruptive actions (5/n)                                      passed!
440 transformation-none.json                          Testing transformations :: t:none                                     passed!
441 transformation-none.json                          Testing transformations :: t:none                                     passed!
442 transformations.json                              Testing transformations :: pass,t:trim                                passed!
443 transformations.json                              Testing transformations :: pass,t:trim,t:lowercase                    passed!
444 variable-ARGS.json                                Testing Variables :: ARGS - GET (1/7)                                 passed!
445 variable-ARGS.json                                Testing Variables :: ARGS - GET (2/7)                                 passed!
446 variable-ARGS.json                                Testing Variables :: ARGS - POST (3/7)                                passed!
447 variable-ARGS.json                                Testing Variables :: ARGS - POST (4/7)                                passed!
448 variable-ARGS.json                                Testing Variables :: ARGS - POST (5/7)                                passed!
449 variable-ARGS.json                                Testing Variables :: ARGS - POST (6/7)                                passed!
450 variable-ARGS.json                                Testing Variables :: ARGS - POST (7/7)                                passed!
451 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - GET (1/7)                   passed!
452 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - GET (2/7)                   passed!
453 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - GET (6/7)                   passed!
454 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - GET (7/7)                   passed!
455 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - POST (3/7)                  passed!
456 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - POST (4/7)                  passed!
457 variable-ARGS_COMBINED_SIZE.json                  Testing Variables :: ARGS_COMBINED_SIZE - POST (5/7)                  passed!
458 variable-ARGS_GET.json                            Testing Variables :: ARGS_GET (1/6)                                   passed!
459 variable-ARGS_GET.json                            Testing Variables :: ARGS_GET (2/6)                                   passed!
460 variable-ARGS_GET.json                            Testing Variables :: ARGS_GET (3/6)                                   passed!
461 variable-ARGS_GET.json                            Testing Variables :: ARGS_GET (4/6)                                   passed!
462 variable-ARGS_GET.json                            Testing Variables :: ARGS_GET (5/6)                                   passed!
463 variable-ARGS_GET.json                            Testing Variables :: ARGS_GET (6/6)                                   passed!
464 variable-ARGS_GET_NAMES.json                      Testing Variables :: ARGS_GET_NAMES (1/2)                             passed!
465 variable-ARGS_GET_NAMES.json                      Testing Variables :: ARGS_GET_NAMES (2/2)                             passed!
466 variable-ARGS_NAMES.json                          Testing Variables :: ARGS_NAMES - GET (1/4)                           passed!
467 variable-ARGS_NAMES.json                          Testing Variables :: ARGS_NAMES - GET (2/4)                           passed!
468 variable-ARGS_NAMES.json                          Testing Variables :: ARGS_NAMES - POST (3/4)                          passed!
469 variable-ARGS_NAMES.json                          Testing Variables :: ARGS_NAMES - POST (4/4)                          passed!
470 variable-ARGS_NAMES.json                          Testing Variables :: ARGS_POST_NAMES (3/x)                            passed!
471 variable-ARGS_POST.json                           Testing Variables :: ARGS_POST (1/3)                                  passed!
472 variable-ARGS_POST.json                           Testing Variables :: ARGS_POST (2/3)                                  passed!
473 variable-ARGS_POST.json                           Testing Variables :: ARGS_POST (3/3)                                  passed!
474 variable-ARGS_POST_NAMES.json                     Testing Variables :: ARGS_POST_NAMES (1/x)                            passed!
475 variable-ARGS_POST_NAMES.json                     Testing Variables :: ARGS_POST_NAMES (2/x)                            passed!
476 variable-ARGS_POST_NAMES.json                     Testing Variables :: ARGS_POST_NAMES (3/x)                            passed!
477 variable-ARGS_POST_NAMES.json                     Testing Variables :: ARGS_POST_NAMES (3/x)                            passed!
478 variable-AUTH_TYPE.json                           Testing Variables :: AUTH_TYPE                                        passed!
479 variable-AUTH_TYPE.json                           Testing Variables :: AUTH_TYPE                                        passed!
480 variable-DURATION.json                            Testing Variables :: AUTH_TYPE                                        passed!
481 variable-ENV.json                                 Testing Variables :: ENV (1/4)                                        passed!
482 variable-ENV.json                                 Testing Variables :: ENV (2/4)                                        passed!
483 variable-ENV.json                                 Testing Variables :: ENV (3/4)                                        passed!
484 variable-ENV.json                                 Testing Variables :: ENV (4/4)                                        passed!
485 variable-FILES.json                               Testing Variables :: FILES (1/2)                                      passed!
486 variable-FILES.json                               Testing Variables :: FILES (2/2)                                      passed!
487 variable-FILES_COMBINED_SIZE.json                 Testing Variables :: FILES_NAMES (1/1)                                passed!
488 variable-FILES_NAMES.json                         Testing Variables :: FILES_NAMES (1/1)                                passed!
489 variable-FILES_SIZES.json                         Testing Variables :: FILES_NAMES (1/1)                                passed!
490 variable-FULL_REQUEST.json                        Testing Variables :: FULL_REQUEST (1/1)                               passed!
491 variable-FULL_REQUEST_LENGTH.json                 Testing Variables :: FULL_REQUEST_LENGTH (1/1)                        passed!
492 variable-GEO.json                                 Testing Variables :: GEO:AREA_CODE [GeoIP]                            skipped!
493 variable-GEO.json                                 Testing Variables :: GEO:CITY [GeoIP]                                 skipped!
494 variable-GEO.json                                 Testing Variables :: GEO:CITY [maxmind]                               skipped!
495 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_CODE [GeoIP]                         skipped!
496 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_CODE [maxmind]                       skipped!
497 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_CODE3 [GeoIP]                        skipped!
498 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_CONTINENT [GeoIP]                    skipped!
499 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_CONTINENT [maxmind]                  skipped!
500 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_NAME [maxmind]                       skipped!
501 variable-GEO.json                                 Testing Variables :: GEO:COUNTRY_NAME [maxmind]                       skipped!
502 variable-GEO.json                                 Testing Variables :: GEO:DMA_CODE [GeoIP]                             skipped!
503 variable-GEO.json                                 Testing Variables :: GEO:LATITUDE [GeoIP]                             skipped!
504 variable-GEO.json                                 Testing Variables :: GEO:LATITUDE [maxmind]                           skipped!
505 variable-GEO.json                                 Testing Variables :: GEO:LONGITUDE [GeoIP]                            skipped!
506 variable-GEO.json                                 Testing Variables :: GEO:LONGITUDE [GeoIP]                            skipped!
507 variable-GEO.json                                 Testing Variables :: GEO:POSTAL_CODE [GeoIP]                          skipped!
508 variable-GEO.json                                 Testing Variables :: GEO:POSTAL_CODE [maxmind]                        skipped!
509 variable-GEO.json                                 Testing Variables :: GEO:REGION [GeoIP]                               skipped!
510 variable-HIGHEST_SEVERITY.json                    Testing Variables :: HIGHEST_SEVERITY (1/2)                           passed!
511 variable-HIGHEST_SEVERITY.json                    Testing Variables :: HIGHEST_SEVERITY (2/2)                           passed!
512 variable-INBOUND_DATA_ERROR.json                  Testing Variables :: INBOUND_DATA_ERROR (1/1)                         passed!
513 variable-INBOUND_DATA_ERROR.json                  Testing Variables :: INBOUND_DATA_ERROR (1/2)                         passed!
514 variable-MATCHED_VAR.json                         Testing Variables :: MATCHED_VAR (1/2)                                passed!
515 variable-MATCHED_VAR.json                         Testing Variables :: MATCHED_VAR (2/2)                                passed!
516 variable-MATCHED_VARS.json                        Testing Variables :: MATCHED_VARS (1/2)                               passed!
517 variable-MATCHED_VARS.json                        Testing Variables :: MATCHED_VARS (2/2)                               passed!
518 variable-MATCHED_VARS_NAMES.json                  Testing Variables :: MATCHED_VARS_NAMES (1/2)                         passed!
519 variable-MATCHED_VARS_NAMES.json                  Testing Variables :: MATCHED_VARS_NAMES (2/2)                         passed!
520 variable-MATCHED_VAR_NAME.json                    Testing Variables :: MATCHED_VAR_NAME (1/3)                           passed!
521 variable-MATCHED_VAR_NAME.json                    Testing Variables :: MATCHED_VAR_NAME (2/3)                           passed!
522 variable-MATCHED_VAR_NAME.json                    Testing Variables :: MATCHED_VAR_NAME (3/3)                           passed!
523 variable-MODSEC_BUILD.json                        Testing Variables :: MODSEC_BUILD (1/1)                               passed!
524 variable-MULTIPART_CRLF_LF_LINES.json             Testing Variables :: FILES (1/1)                                      passed!
525 variable-MULTIPART_CRLF_LF_LINES.json             Testing Variables :: FILES (1/1)                                      passed!
526 variable-MULTIPART_FILENAME.json                  Testing Variables :: MULTIPART_FILENAME                               passed!
527 variable-MULTIPART_FILENAME.json                  Testing Variables :: MULTIPART_FILENAME                               passed!
528 variable-MULTIPART_INVALID_HEADER_FOLDING.json    Testing Variables :: MULTIPART_INVALID_HEADER_FOLDING                 passed!
529 variable-MULTIPART_NAME.json                      Testing Variables :: MULTIPART_FILENAME                               passed!
530 variable-MULTIPART_NAME.json                      Testing Variables :: MULTIPART_FILENAME                               passed!
531 variable-MULTIPART_PART_HEADERS.json              Testing Variables :: MULTIPART_PART_HEADERS (all headers)             passed!
532 variable-MULTIPART_PART_HEADERS.json              Testing Variables :: MULTIPART_PART_HEADERS (check EOL)               passed!
533 variable-MULTIPART_PART_HEADERS.json              Testing Variables :: MULTIPART_PART_HEADERS (specific header - match) passed!
534 variable-MULTIPART_PART_HEADERS.json              Testing Variables :: MULTIPART_PART_HEADERS (specific header - no match)passed!
535 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR                           passed!
536 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR                           passed!
537 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR                           passed!
538 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR                           passed!
539 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR                           passed!
540 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR - IQ                      passed!
541 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR - IQ                      passed!
542 variable-MULTIPART_STRICT_ERROR.json              Testing Variables :: MULTIPART_STRICT_ERROR - RFC2046                 passed!
543 variable-MULTIPART_UNMATCHED_BOUNDARY.json        Testing Variables :: MULTIPART_UNMATCHED_BOUNDARY                     passed!
544 variable-OUTBOUND_DATA_ERROR.json                 Testing Variables :: OUTBOUND_DATA_ERROR (1/2)                        passed!
545 variable-OUTBOUND_DATA_ERROR.json                 Testing Variables :: OUTBOUND_DATA_ERROR (2/2)                        passed!
546 variable-PATH_INFO.json                           Testing Variables :: PATH_INFO (1/4)                                  passed!
547 variable-PATH_INFO.json                           Testing Variables :: PATH_INFO (2/4)                                  passed!
548 variable-PATH_INFO.json                           Testing Variables :: PATH_INFO (3/4)                                  passed!
549 variable-PATH_INFO.json                           Testing Variables :: PATH_INFO (4/4)                                  passed!
550 variable-QUERY_STRING.json                        Testing Variables :: QUERY_STRING                                     passed!
551 variable-QUERY_STRING.json                        Testing Variables :: QUERY_STRING (URI contains fragment)             passed!
552 variable-QUERY_STRING.json                        Testing Variables :: QUERY_STRING (URI contains fragment)             passed!
553 variable-REMOTE_ADDR.json                         Testing Variables :: REMOTE_ADDR                                      passed!
554 variable-REMOTE_ADDR.json                         Testing Variables :: REMOTE_ADDR                                      passed!
555 variable-REMOTE_HOST.json                         Testing Variables :: REMOTE_HOST                                      passed!
556 variable-REMOTE_HOST.json                         Testing Variables :: REMOTE_HOST                                      passed!
557 variable-REMOTE_PORT.json                         Testing Variables :: REMOTE_PORT                                      passed!
558 variable-REMOTE_PORT.json                         Testing Variables :: REMOTE_PORT                                      passed!
559 variable-REMOTE_USER.json                         Testing Variables :: REMOTE_USER                                      passed!
560 variable-REQBODY_PROCESSOR.json                   Testing Variables :: REQBODY_PROCESSOR (1/3)                          passed!
561 variable-REQBODY_PROCESSOR.json                   Testing Variables :: REQBODY_PROCESSOR (2/3)                          passed!
562 variable-REQBODY_PROCESSOR.json                   Testing Variables :: REQBODY_PROCESSOR (3/3)                          passed!
563 variable-REQBODY_PROCESSOR_ERROR.json             Testing Variables :: REQBODY_PROCESSOR_ERROR_MSG (1/2)                passed!
564 variable-REQBODY_PROCESSOR_ERROR.json             Testing Variables :: REQBODY_PROCESSOR_ERROR_MSG (2/2)                passed!
565 variable-REQUEST_BASENAME.json                    Testing Variables :: REQUEST_BASENAME                                 passed!
566 variable-REQUEST_BASENAME.json                    Testing Variables :: REQUEST_BASENAME                                 passed!
567 variable-REQUEST_BODY.json                        Testing Variables :: REQUEST_BODY                                     passed!
568 variable-REQUEST_BODY_LENGTH.json                 Testing Variables :: REQUEST_BODY_LENGTH                              passed!
569 variable-REQUEST_COOKIES.json                     Testing Variables :: REQUEST_COOKIES (1/6)                            passed!
570 variable-REQUEST_COOKIES.json                     Testing Variables :: REQUEST_COOKIES (2/6)                            passed!
571 variable-REQUEST_COOKIES.json                     Testing Variables :: REQUEST_COOKIES (3/6)                            passed!
572 variable-REQUEST_COOKIES.json                     Testing Variables :: REQUEST_COOKIES (4/6)                            passed!
573 variable-REQUEST_COOKIES.json                     Testing Variables :: REQUEST_COOKIES (5/6)                            passed!
574 variable-REQUEST_COOKIES.json                     Testing Variables :: REQUEST_COOKIES (6/6)                            passed!
575 variable-REQUEST_COOKIES_NAMES.json               Testing Variables :: REQUEST_COOKIES_NAMES (1/4)                      passed!
576 variable-REQUEST_COOKIES_NAMES.json               Testing Variables :: REQUEST_COOKIES_NAMES (2/4)                      passed!
577 variable-REQUEST_COOKIES_NAMES.json               Testing Variables :: REQUEST_COOKIES_NAMES (3/4)                      passed!
578 variable-REQUEST_COOKIES_NAMES.json               Testing Variables :: REQUEST_COOKIES_NAMES (4/4)                      passed!
579 variable-REQUEST_FILENAME.json                    Testing Variables :: REQUEST_FILENAME                                 passed!
580 variable-REQUEST_HEADERS.json                     Testing Variables :: REQUEST_HEADERS                                  passed!
581 variable-REQUEST_HEADERS_NAMES.json               Testing Variables :: REQUEST_HEADERS_NAMES                            passed!
582 variable-REQUEST_HEADERS_NAMES.json               Testing Variables :: REQUEST_HEADERS_NAMES                            passed!
583 variable-REQUEST_HEADERS_NAMES.json               Testing Variables :: REQUEST_HEADERS_NAMES                            passed!
584 variable-REQUEST_HEADERS_NAMES.json               Testing Variables :: REQUEST_HEADERS_NAMES                            passed!
585 variable-REQUEST_HEADERS_NAMES.json               Testing Variables :: REQUEST_HEADERS_NAMES                            passed!
586 variable-REQUEST_HEADERS_NAMES.json               Testing Variables :: REQUEST_HEADERS_NAMES                            passed!
587 variable-REQUEST_LINE.json                        Testing Variables :: REQUEST_LINE                                     passed!
588 variable-REQUEST_LINE.json                        Testing Variables :: REQUEST_LINE (with URI fragment)                 passed!
589 variable-REQUEST_LINE.json                        Testing Variables :: REQUEST_URI_RAW (with URI fragment)              passed!
590 variable-REQUEST_METHOD.json                      Testing Variables :: REQUEST_METHOD                                   passed!
591 variable-REQUEST_PROTOCOL.json                    Testing Variables :: REQUEST_PROTOCOL                                 passed!
592 variable-REQUEST_URI.json                         Testing Variables :: REQUEST_URI                                      passed!
593 variable-REQUEST_URI.json                         Testing Variables :: REQUEST_URI (with URI fragment)                  passed!
594 variable-REQUEST_URI.json                         Testing Variables :: REQUEST_URI (with URI fragment)                  passed!
595 variable-REQUEST_URI_RAW.json                     Testing Variables :: REQUEST_URI_RAW                                  passed!
596 variable-REQUEST_URI_RAW.json                     Testing Variables :: REQUEST_URI_RAW (with URI fragment)              passed!
597 variable-REQUEST_URI_RAW.json                     Testing Variables :: REQUEST_URI_RAW (with URI fragment)              passed!
598 variable-RESPONSE_BODY.json                       Testing Variables :: RESPONSE_BODY                                    passed!
599 variable-RESPONSE_CONTENT_LENGTH.json             Testing Variables :: RESPONSE_CONTENT_LENGTH                          passed!
600 variable-RESPONSE_CONTENT_TYPE.json               Testing Variables :: RESPONSE_CONTENT_TYPE                            passed!
601 variable-RESPONSE_HEADERS.json                    Testing Variables :: RESPONSE_HEADERS                                 passed!
602 variable-RESPONSE_HEADERS_NAMES.json              Testing Variables :: RESPONSE_HEADERS_NAMES                           passed!
603 variable-RESPONSE_HEADERS_NAMES.json              Testing Variables :: RESPONSE_HEADERS_NAMES                           passed!
604 variable-RESPONSE_HEADERS_NAMES.json              Testing Variables :: RESPONSE_HEADERS_NAMES                           passed!
605 variable-RESPONSE_PROTOCOL.json                   Testing Variables :: RESPONSE_PROTOCOL                                passed!
606 variable-RULE.json                                Testing Variables :: RULE (1/7)                                       passed!
607 variable-RULE.json                                Testing Variables :: RULE (2/7)                                       passed!
608 variable-RULE.json                                Testing Variables :: RULE (3/7)                                       passed!
609 variable-RULE.json                                Testing Variables :: RULE (4/7)                                       passed!
610 variable-RULE.json                                Testing Variables :: RULE (5/7)                                       passed!
611 variable-RULE.json                                Testing Variables :: RULE (6/7)                                       passed!
612 variable-RULE.json                                Testing Variables :: RULE (7/7)                                       passed!
613 variable-SERVER_ADDR.json                         Testing Variables :: SERVER_ADDR                                      passed!
614 variable-SERVER_ADDR.json                         Testing Variables :: SERVER_ADDR                                      passed!
615 variable-SERVER_NAME.json                         Testing Variables :: SERVER_NAME (1/2)                                passed!
616 variable-SERVER_NAME.json                         Testing Variables :: SERVER_NAME (2/2)                                passed!
617 variable-SERVER_PORT.json                         Testing Variables :: SERVER_PORT                                      passed!
618 variable-SERVER_PORT.json                         Testing Variables :: SERVER_PORT                                      passed!
619 variable-SESSIONID.json                           Testing SESSIONID variable (1/2)                                      passed!
620 variable-SESSIONID.json                           Testing SESSIONID variable (2/2)                                      passed!
621 variable-STATUS.json                              Testing Variables :: STATUS (1/2)                                     passed!
622 variable-STATUS.json                              Testing Variables :: STATUS (2/2)                                     passed!
623 variable-TIME.json                                Testing Variables :: TIME                                             passed!
624 variable-TIME_DAY.json                            Testing Variables :: TIME_DAY                                         passed!
625 variable-TIME_EPOCH.json                          Testing Variables :: TIME_EPOCH                                       passed!
626 variable-TIME_HOUR.json                           Testing Variables :: TIME_HOUR                                        passed!
627 variable-TIME_MIN.json                            Testing Variables :: TIME_MIN                                         passed!
628 variable-TIME_MON.json                            Testing Variables :: TIME_MON                                         passed!
629 variable-TIME_SEC.json                            Testing Variables :: TIME_SEC                                         passed!
630 variable-TIME_WDAY.json                           Testing Variables :: TIME_WDAY                                        passed!
631 variable-TIME_YEAR.json                           Testing Variables :: TIME_YEAR                                        passed!
632 variable-TX.json                                  Testing Variables :: TX:0 (1/2)                                       passed!
633 variable-TX.json                                  Testing Variables :: TX:0 (2/2)                                       passed!
634 variable-TX.json                                  Testing Variables :: capture group match after unused group           passed!
635 variable-TX.json                                  Testing Variables :: empty capture group match followed by nonempty capture grouppassed!
636 variable-TX.json                                  Testing Variables :: repeating capture group -- alternates            passed!
637 variable-TX.json                                  Testing Variables :: repeating capture group -- same (nested)         passed!
638 variable-UNIQUE_ID.json                           Testing Variables :: UNIQUE_ID                                        passed!
639 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - GET (1/7)                     passed!
640 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - GET (2/7)                     passed!
641 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - GET (6/7)                     passed!
642 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - GET (7/7)                     passed!
643 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - POST (3/7)                    passed!
644 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - POST (4/7)                    passed!
645 variable-URLENCODED_ERROR.json                    Testing Variables :: URLENCODED_ERROR - POST (5/7)                    passed!
646 variable-USERID.json                              Testing USERID variable (1/2)                                         passed!
647 variable-USERID.json                              Testing USERID variable (2/2)                                         passed!
648 variable-WEBAPPID.json                            Testing Variables :: WEBAPPID (1)                                     passed!
649 variable-WEBAPPID.json                            Testing Variables :: WEBAPPID (2)                                     passed!
650 variable-WEBSERVER_ERROR_LOG.json                 Testing Variables :: WEBSERVER_ERROR_LOG (1/1)                        passed!
651 variable-XML.json                                 Testing XPath expression with equals sign                             passed!
652 variable-variation-count.json                     Testing variable variations :: count (1/3)                            passed!
653 variable-variation-count.json                     Testing variable variations :: count (2/3)                            passed!
654 variable-variation-count.json                     Testing variable variations :: count (3/3)                            passed!
655 variable-variation-exclusion.json                 Testing variable variations :: exclusion (1/2)                        passed!
656 variable-variation-exclusion.json                 Testing variable variations :: exclusion (2/2)                        passed!

Ran a total of: 609 regression tests - All tests passed. 47 skipped test(s). 0 disabled test(s).

And ...

ModSecurity 3.0.13 - tests
(options are not available -- missing GetOpt)

  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	0 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	0 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	1 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	1 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	1 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	1 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	1 tests failed.
  test-cases/secrules-language-tests/transformations/phpArgsNames.json:phpArgsNames...	1 tests failed.
  
< snip to stay inside 65536 char limit for GH issue comment />

  test-cases/secrules-language-tests/transformations/cmdLine.json:cmd_line...	0 tests failed.
  test-cases/secrules-language-tests/transformations/cmdLine.json:cmd_line...	0 tests failed.
  test-cases/secrules-language-tests/transformations/cmdLine.json:cmd_line...	0 tests failed.
  test-cases/secrules-language-tests/transformations/sha1.json:sha1...	0 tests failed.
  test-cases/secrules-language-tests/transformations/sha1.json:sha1...	0 tests failed.
  test-cases/secrules-language-tests/transformations/sha1.json:sha1...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/normalisePath.json:normalisePath...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeCommentsChar.json:removeCommentsChar...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/transformations/trim.json:trim...	0 tests failed.
  test-cases/secrules-language-tests/operators/unconditionalMatch.json:unconditionalMatch...	0 tests failed.
  test-cases/secrules-language-tests/operators/unconditionalMatch.json:unconditionalMatch...	0 tests failed.
  test-cases/secrules-language-tests/operators/unconditionalMatch.json:unconditionalMatch...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
  test-cases/secrules-language-tests/transformations/removeNulls.json:removeNulls...	0 tests failed.
Total >> 4326
Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "a_b.c"
  "param": ""
  "output": "a_b_c"
}
Expecting: "a_b_c" - returned: "a_b.c"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "a[_b c."
  "param": ""
  "output": "a__b c."
}
Expecting: "a__b c." - returned: "a[_b c."

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": ". a_b]c"
  "param": ""
  "output": "__a_b]c"
}
Expecting: "__a_b]c" - returned: ". a_b]c"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "a_b c d_"
  "param": ""
  "output": "a_b_c_d_"
}
Expecting: "a_b_c_d_" - returned: "a_b c d_"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "[a_[b][]c d_"
  "param": ""
  "output": ""
}
Expecting: "" - returned: "[a_[b][]c d_"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "a_[b][ ]c d_"
  "param": ""
  "output": "a_[b][]"
}
Expecting: "a_[b][]" - returned: "a_[b][ ]c d_"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "][ "
  "param": ""
  "output": "]_ "
}
Expecting: "]_ " - returned: "][ "

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "][ a."
  "param": ""
  "output": "]_ a."
}
Expecting: "]_ a." - returned: "][ a."

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "   ] [a][c][f. _ ]"
  "param": ""
  "output": "]_[a][c][f. _ ]"
}
Expecting: "]_[a][c][f. _ ]" - returned: "   ] [a][c][f. _ ]"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "a[]b"
  "param": ""
  "output": "a[]"
}
Expecting: "a[]" - returned: "a[]b"

Test failed. From: test-cases/secrules-language-tests/transformations/phpArgsNames.json
{
  "ret": "1"
  "type": "tfn"
  "name": "phpArgsNames"
  "input": "sc ript._[a[_xss]"
  "param": ""
  "output": "sc_ript__[a[_xss]"
}
Expecting: "sc_ript__[a[_xss]" - returned: "sc ript._[a[_xss]"

Test failed. From: test-cases/secrules-language-tests/operators/geoLookup.json
{
  "ret": "0"
  "type": "op"
  "name": "geoLookup"
  "input": ""
  "param": ""
  "output": ""
}

Test failed. From: test-cases/secrules-language-tests/operators/geoLookup.json
{
  "ret": "0"
  "type": "op"
  "name": "geoLookup"
  "input": ""
  "param": "TestCase"
  "output": ""
}

Test failed. From: test-cases/secrules-language-tests/operators/geoLookup.json
{
  "ret": "0"
  "type": "op"
  "name": "geoLookup"
  "input": "127.0.0.1"
  "param": ""
  "output": ""
}

Test failed. From: test-cases/secrules-language-tests/operators/geoLookup.json
{
  "ret": "0"
  "type": "op"
  "name": "geoLookup"
  "input": "216.75.21.122"
  "param": ""
  "output": ""
}

Test failed. From: test-cases/secrules-language-tests/operators/geoLookup.json
{
  "ret": "0"
  "type": "op"
  "name": "geoLookup"
  "input": "www.modsecurity.org"
  "param": ""
  "output": ""
}


Ran a total of: 4326 unit tests - 11 failed.

@airween
Copy link
Member

airween commented Jan 14, 2025

Ah, thanks - now I see, your regression tests are passed (all of them), but you have 11 failed unit tests.

Unfortunately that's an "old" issue, I don't remember when did it brake. But you don't need to run that - if you want to check the library, it's enough to run

make check

in source root directory after the build process.

@paul-hammant
Copy link
Author

That does indeed run the tests, and they pass for me.

Should the readme lose:

$ cd test
$ ./regression-tests
$ ./unit-test

And gain instead:

make check

Thanks for you advice here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.x Related to ModSecurity version 3.x
Projects
None yet
Development

No branches or pull requests

2 participants