4e94dfc7e0
The library can now be installed using CMake v3.0+. Below is an example configuration. 1. Generate configuation cmake -H. -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release // The default profile. -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_SHARED_LIBS=ON -DOLM_TESTS=1 -DOLM_FUZZERS=1 2. Build & install the targets cmake --build build --config Release --target install 3. Run the tests cd build/test && ctest . The library can also be used as a dependency with CMake using find_package(Olm::Olm REQUIRED) target_link_libraries(my_exe Olm::Olm) Signed-off-by: Konstantinos Sideris <sideris.konstantin@gmail.com> |
||
---|---|---|
.. | ||
include | ||
CMakeLists.txt | ||
fuzz_decode_message.cpp | ||
fuzz_decrypt.cpp | ||
fuzz_group_decrypt.cpp | ||
fuzz_unpickle_account.cpp | ||
fuzz_unpickle_session.cpp | ||
README.rst |
Fuzzers ======= This directory contains a collection of fuzzing tools. Each tests a different entry point to the code. Usage notes: 1. Install AFL: .. code:: apt-get install afl 2. Build the fuzzers: .. code:: make fuzzers 3. Some of the tests (eg ``fuzz_decrypt`` and ``fuzz_group_decrypt``) require a session file. You can use the ones generated by the python test script (``python/test.sh``). 4. Make some work directories: .. code:: mkdir -p fuzzing/in fuzzing/out 5. Generate starting input: .. code:: echo "Test" > fuzzing/in/test 6. Run the test under ``afl-fuzz``: .. code:: afl-fuzz -i fuzzing/in -o fuzzing/out -- \ ./build/fuzzers/fuzz_<fuzzing_tool> [<test args>] 7. To resume with the data produced by an earlier run: .. code:: afl-fuzz -i- -o existing_output_dir [...etc...] 8. If it shows failures, pipe the failure case into ``./build/fuzzers/debug_<fuzzing_tool>``, fix, and repeat.