You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
proxysql/test/afl_digest_test
Javier Jaramago Fernández e10b2ff225
Added 'AFL++' stability test for 'mysql_query_digests' impl
4 years ago
..
inputs Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
Makefile Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
README.md Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
afl_mysql_query_digest.cpp Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
c_tokenizer.c Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
c_tokenizer.h Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
launch_tests.sh Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago
stop_tests.sh Added 'AFL++' stability test for 'mysql_query_digests' impl 4 years ago

README.md

Description

This folder provides a AFL++ stability test for fuzzy testing 'mysql_query_digest_and_first_comment_2' implementation.

Usage

For compiling test it's enough to run the following commands in ProxySQL main WORKSPACE folder:

docker run -tid -v $(pwd):/src aflplusplus/aflplusplus
docker exec -it $(CONTAINER_ID) /bin/bash
cd /src/test/afl_digest_test/
make

Then for launching an individual instance of afl-fuzz it's enough to run:

mkdir output
afl-fuzz -M main-$HOSTNAME -i inputs/ -o output/ -- ./afl_test -d 1 -l 1 -n 1 -s 50 -g 0 -G 0

Where the options that can be specified for the fuzzing test are:

AFL fuzz testing for digest parsing

USAGE: afl_test [OPTIONS]

OPTIONS:

-d, --replace-digits ARG          Query digest 'NoDigits'
-G, --groups-grouping-limit ARG   Query digest 'GroupsGroupingLimit'
-g, --grouping-limit ARG          Query digest 'GroupingLimit'
-h, -help, --help, --usage        Display usage instructions.
-l, --lowercase ARG               Query digest 'LowerCase'
-n, --replace-null ARG            Query digest 'ReplaceNULL'
-s, --digest-size ARG             Query digest 'MaxLength'

They can be optioned also by running ./afl_test -h.

Parallel testing

1. For launching multiple instances of afl-fuzz the launch_tests.sh and stop_tests.sh scripts could be used. 2. For checking the overall progress of the parallel testing the following command can be used:

afl-whatsup -s output