Add automatic telegram fuzz seed generation from existing test case simulations.

pull/324/head
Fredrik Öhrström 2021-08-09 11:28:39 +02:00
rodzic 838f89d576
commit e39bfca44e
2 zmienionych plików z 11 dodań i 4 usunięć

3
.gitignore vendored
Wyświetl plik

@ -7,4 +7,5 @@ testoutput/
tests_tmp/
*~
config.log
autom4te.cache/
autom4te.cache/
fuzz_testcases/telegrams/

Wyświetl plik

@ -349,10 +349,16 @@ build_fuzz: afl_prepared
$(MAKE) AFL_HARDEN=1 CXX=$(AFL_HOME)/afl-g++-fast FUZZFLAGS=-DFUZZING=true $(BUILD)/wmbusmeters
run_fuzz_difvifparser:
${AFL_HOME}/afl-fuzz -i fuzz_testcases/difvifparser -o fuzz_findings/ build/fuzz
${AFL_HOME}/afl-fuzz -i fuzz_testcases/difvifparser -o fuzz_findings_difvifparser/ build/fuzz
run_fuzz_telegrams:
${AFL_HOME}/afl-fuzz -i fuzz_testcases/telegrams -o fuzz_findings/ build/wmbusmeters --listento=any stdin
run_fuzz_telegrams: extract_fuzz_telegram_seeds
${AFL_HOME}/afl-fuzz -i fuzz_testcases/telegrams -o fuzz_findings_telegrams/ build/wmbusmeters --listento=any stdin
extract_fuzz_telegram_seeds:
@cat simulations/simulation_* | grep "^telegram=" | tr -d '|' | sed 's/^telegram=//' > $(BUILD)/seeds
@mkdir -p fuzz_testcases/telegrams
@rm -f fuzz_testcases/telegrams/seed_*
@SEED=1; while read -r line; do echo "$${line}" | xxd -r -p - > "fuzz_testcases/telegrams/seed_$${SEED}"; SEED=$$((SEED + 1)); done < $(BUILD)/seeds; echo "Extracted $${SEED} seeds from simulations."
# Include dependency information generated by gcc in a previous compile.
include $(wildcard $(patsubst %.o,%.d,$(METER_OBJS)))