Possible projects using SibylFS

(Based on an email from dsheets)

There are a number of interesting projects which could be done with SibylFS and combined in powerful ways. Among them are:

  • Test case reduction

    You would use SibylFS's checked trace model to reduce the number of state transitions required to exhibit the "same" model deviation through repeated application of the model.

  • Test case translation

    You would translate the transition system of the model into a C program (or programs) which would either produce the same output as the present script interpreter or would provide a predicate command that would exit 0 on a 'correct' system and 1 on a deviant system. The simple cases for this are trivial and the complicated cases involve managing users and processes. It would be nice for the test cases to stand-alone without requiring linking to a runtime system (but that may be too hard/annoying/unwieldy or simply including the relevant bits of the runtime in the test case).

  • Race test generation without instrumentation

    You would translate transitions which have overlapping call/return pairs into one or more C programs which include multi-thread/multi-process races that have an interference distribution which gives "good" coverage. Feedback into further race generation and instrumentation to validate the interference distribution would be useful. Combined with 1 and 2, this could lead to a very powerful file system race reproduction case generator.

  • Test case generation

    You would use the specification model or develop a property-based model to generate test cases for transitions that have already been specified but may not have been tested adequately. The difficulty here is understanding which non-model properties may be relevant to test case generation and ensuring that the number of generated test cases does not explode (or somehow culling them).

  • Specification parameterization

    You would work with Tom to parameterize at run-time the Lem specification against filesystems, libcs, and features. Currently, we only parameterize across operating system VFS layers at run-time. We would really like to be able to indicate that we want to model ext4 on Linux or unknown filesystem without symlinks (and instead a consistent errno) on OS X. Combined with 1 and 2, this could lead to interesting file system fingerprinting tools.

  • Specify a new class of syscalls like the *at commands (linkat, mkdirat, etc)

    You would make a major specification coverage contribution and help find file system bugs in obscure but important implementations

There are surely other interesting projects in this area but nothing else that I can recall at the moment. Do feel free to reach out if you have any questions or want to discuss these further.

results matching ""

    No results matching ""