Stefan Profanter 000b2a95c7 ci(fuzz): Error if tcp fuzzing can not be started | vor 5 Jahren | |
---|---|---|
.. | ||
fuzz_binary_message_corpus | vor 5 Jahren | |
fuzz_json | vor 6 Jahren | |
CMakeLists.txt | vor 5 Jahren | |
README.md | vor 5 Jahren | |
check_build.sh | vor 5 Jahren | |
corpus_generator.c | vor 5 Jahren | |
custom_memory_manager.c | vor 5 Jahren | |
custom_memory_manager.h | vor 5 Jahren | |
fuzz_base64_decode.cc | vor 5 Jahren | |
fuzz_base64_encode.cc | vor 5 Jahren | |
fuzz_binary_decode.cc | vor 5 Jahren | |
fuzz_binary_message.cc | vor 5 Jahren | |
fuzz_binary_message.options | vor 6 Jahren | |
fuzz_binary_message_header.dict | vor 6 Jahren | |
fuzz_json_decode.cc | vor 5 Jahren | |
fuzz_json_decode_encode.cc | vor 5 Jahren | |
fuzz_src_ua_util.cc | vor 5 Jahren | |
fuzz_src_ua_util.options | vor 6 Jahren | |
fuzz_src_ua_util_endpoints.dict | vor 6 Jahren | |
fuzz_tcp_message.cc | vor 5 Jahren | |
generate_corpus.sh | vor 5 Jahren | |
oss-fuzz-copy.sh | vor 5 Jahren | |
ua_debug_dump_pkgs_file.c | vor 5 Jahren |
open62541 is continuously tested with the awesome oss-fuzz project from Google: https://github.com/google/oss-fuzz
Currently tested is processing of binary messages and encoding/decoding of binary encoded data.
You can just execute the script under tests/fuzz/check_build.sh
, which does the following:
# clone oss-fuzz repo
cd oss-fuzz
# Change $OPEN62541_DIR to your local checkout of open62541
python infra/helper.py build_fuzzers --sanitizer address open62541 $OPEN62541_DIR && python infra/helper.py check_build --sanitizer address open62541
Download the testcase file and store it e.g. in your Download folder.
# clone oss-fuzz repo
cd oss-fuzz
# Change $OPEN62541_DIR to your local checkout of open62541
# And change $DOWNLOADS to your download location
python infra/helper.py build_fuzzers --sanitizer address open62541 $OPEN62541_DIR && python infra/helper.py reproduce open62541 fuzz_binary_decode $DOWNLOADS/clusterfuzz-testcase-minimized-fuzz_binary_decode-5686300273803264
To update the current corpus used for fuzzing you need to follow these steps. It will execute all the unit tests, dump the received data packages to a directory and then update and merge the corpus.
The script will create two directories: open62541/build_fuzz
and open62541/build_corpus
.
Make sure that these directories are not existing or do not contain any important data.
Run the generate script:
open62541/tests/fuzz/generate_corpus.sh
This script will build all the unit tests, dump the packages and then merge the current corpus with the new packages.
open62541/fuzz/fuzz_binary_message_corpus/generated
Commit the new files and then you can delete the build directories created in step 1.