Networking Programs Suitable For Symbolic Testing
- by Milen
Symbolic execution has been successfully used to test programs and automatically generate test cases. I've been working on my master's thesis that allows the testing of arbitrary networked programs (i.e., those communicating via sockets).
Now that we have a working symbolic execution engine that has support for sockets, we're looking for real-world pieces of software to test. Our engine has an important restriction (at the moment): it cannot execute multi-threaded programs. So, we're looking for programs that satisfy the criteria outlined below:
Written in C
Communicates via sockets (TCP / UDP are supported)
Does not rely on the filesystem to get the "job" done
Runs on Linux
Does not use multi-threading
Source is available (so that we can compile them to LLVM bytecode)
Most programs that would fall under the criteria would probably be implementations of distributed protocols solving a particular problem (e.g., consensus).
Any suggestions are greatly appreciated.