Contents
Part I Running tests with
litmus
1 A tour of
litmus
1.1 A simple run
1.2 Cross compilation
1.3 Running several tests at once
2 Controlling test parameters
2.1 Architecture of tests
2.2 Affinity
2.2.1 Introduction to affinity
2.2.2 Study of affinity
2.2.3 Advanced control
2.3 Controlling executable files
3 Usage of
litmus
Part II Generating tests
4 Preamble
4.1 Relaxation of Sequential Consistency
4.2 Introduction to candidate relaxations
4.3 More candidate relaxations
4.4 Summary of simple candidate relaxations
4.4.1 Communication candidate relaxations
4.4.2 Program order candidate relaxations
4.4.3 Fence candidate relaxations
5 Testing candidate relaxations with
diy
5.1 Principle
5.2 Testing x86
6 Additional relaxations
6.1 Intra-processor dependencies
6.2 Composite relaxations and cumulativity
7 Test variations with
diycross
8 Identifying coherence orders with observers
8.1 Simple observers
8.2 More observers
8.3 Three stores or more
9 Command usage
9.1 Usage of
diyone
9.2 Usage of
diycross
9.3 Usage of
diy
9.4 Usage of
readRelax
Part III Automating the testing process
10 Preamble
11 A tour of
dont
11.1 Checking conformance
11.2 Checking non-conformance
11.3 Automatically exploring the memory model exhibited by a machine
12 Usage of
dont
12.1 Command-line options
12.2 Configuration files