ocelab / ocelot

OCELOT is a testing tool employing genetic algorithms to automatically generate tests for C functions
https://ocelot.science/
3 stars 1 forks source link

New instrumentation workflow proposal #6

Open intersimone999 opened 7 years ago

intersimone999 commented 7 years ago

At the moment, we just instrument and compile a single function/file at a time. Actually, as far as I know, most of the state-of-the-art tools do not go much further than this (see Austin and CAVM). Therefore, making it work in the context of a whole system could be hard. We could adapt our current instrumentation workflow to make OCELOT work also with functions that call other functions, but it would require building the entire project every time we change the function we want to test, and it may take hours for big projects. Anyway, I would like to propose a slightly different instrumentation workflow that would not require a full build of the project each time we change function.

For a project P:

For each function F to test:

tl;dr: OCELOT should work in three steps:

java -jar ocelot.jar --instrument projects/gimp
java -jar ocelot.jar --configure --target projects/gimp/gimp.so -Dtarget_function=gimp_color_gradient -Darrays_max_size=100 [...]
java -jar ocelot.jar --run
intersimone999 commented 7 years ago

Modify the instrumentation