Moved fuzz dir to test/fuzz
Extended contributing document to testing and licensing
This commit is contained in:
parent
edbbb43e1f
commit
8ede8a87b2
29 changed files with 62 additions and 1053 deletions
61
test/fuzz/cli/README.md
Normal file
61
test/fuzz/cli/README.md
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
# Clixon fuzzing
|
||||
|
||||
This dir contains code for fuzzing clixon cli.
|
||||
|
||||
## Prereqs
|
||||
|
||||
Install AFL, see [..](..)
|
||||
|
||||
Build and install a clixon system (in particular the backend, the CLI will be replaced)
|
||||
|
||||
Build and install CLIgen statically:
|
||||
```
|
||||
./configure LINKAGE=static INSTALLFLAGS="" CC=/usr/bin/afl-clang-fast
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
Build clixon cli statically with the afl-clang compiler:
|
||||
|
||||
```
|
||||
CC=/usr/bin/afl-clang-fast LINKAGE=static INSTALLFLAGS="" ./configure # Dont care about restconf
|
||||
make clean
|
||||
cd apps/cli
|
||||
make clixon_cli
|
||||
sudo make install
|
||||
```
|
||||
|
||||
To link an example plugin properly it gets a little more complex::
|
||||
|
||||
- First, you need to identify which example plugins you want to link. Add these to `EXTRAS` variable
|
||||
- Configure and compile those plugins, where the `clixon_plugin_init()` function is removed.
|
||||
- Configure and compile the cli WITH the `EXTRAS` variable set.
|
||||
|
||||
Below is an example of how to do this for the main example. You can replace the main example plugins with another application:
|
||||
```
|
||||
CC=/usr/bin/afl-clang-fast CFLAGS="-O2 -Wall -DCLIXON_STATIC_PLUGINS" LINKAGE=static INSTALLFLAGS="" ./configure
|
||||
|
||||
make clean
|
||||
make
|
||||
sudo make install
|
||||
|
||||
cd example # Compile and install application plugins (here main example)
|
||||
make clean
|
||||
make
|
||||
sudo make install
|
||||
cd ..
|
||||
|
||||
cd apps/cli # Compile and install clixon_cli with pre-compiled plugins
|
||||
rm clixon_cli
|
||||
EXTRAS="../../example/main/example_cli.o" make clixon_cli
|
||||
sudo make install
|
||||
```
|
||||
|
||||
## Run tests
|
||||
|
||||
Run the script `runfuzz.sh` to run one test with a cli spec and an input string, eg:
|
||||
```
|
||||
./runfuzz.sh
|
||||
```
|
||||
|
||||
After (or during) the test, investigate results in the output dir.
|
||||
Loading…
Add table
Add a link
Reference in a new issue