Skip to content

richiejp/fuzzy-sync

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

Fuzzy Sync

This is a standalone version of the Linux Test Project's Fuzzy Sync C library. The original was developed to reliably and quickly reproduce data races within the Linux kernel from an unprivileged user land test process.

This version was manually extracted from the LTP. The original can be found at the following link. The original is stable now, but still receives updates https://github.com/linux-test-project/ltp/blob/master/include/tst_fuzzy_sync.h

Usage

The entire library is contained within a single header, either copy it into your project or fork this project and extend it with more executables.

To build this project and run the example test do.

$ mkdir build && cd build
$ cmake ..
$ ctest -V					# or make test

You may then continue by copying test/a_rare_data_race.c and the relevant part of CMakeLists.txt to add new tests. E.g

$ cp test/a_rare_data_race.c test/a_new_test.c
$ echo "fzsync_test(a_new_test)" >> CMakeLists.txt
$ cd build
$ cmake ..
$ make
$ ctest -V

Further info

The test is derived from the example given in the following article https://richiejp.com/a-rare-data-race

About

Standalone Fuzzy Sync library, extracted from the Linux Test Project

Resources

License

Stars

Watchers

Forks