return parse_version(output)
return None
-def test_configuration(path, rule_filename=None):
+def test_configuration(suricata_path, suricata_conf=None, rule_filename=None):
"""Test the Suricata configuration with -T."""
test_command = [
- path,
+ suricata_path,
"-T",
"-l", "/tmp",
]
+ if suricata_conf:
+ test_command += ["-c", suricata_conf]
if rule_filename:
test_command += ["-S", rule_filename]
"ASAN_OPTIONS": "detect_leaks=0",
}
+ logger.debug("Running %s; env=%s", " ".join(test_command), str(env))
rc = subprocess.Popen(test_command, env=env).wait()
if rc == 0:
return True
return False
else:
logger.info("Testing with suricata -T.")
+ suricata_conf = config.get("suricata-conf")
if not config.get("no-merge"):
if not suricata.update.engine.test_configuration(
- suricata_path, os.path.join(
+ suricata_path, suricata_conf,
+ os.path.join(
config.get_output_dir(), DEFAULT_OUTPUT_RULE_FILENAME)):
return False
else:
if not suricata.update.engine.test_configuration(
- suricata_path):
+ suricata_path, suricata_conf):
return False
return True