-
Notifications
You must be signed in to change notification settings - Fork 9
Add better tests (probabilistic and math?) #14
Copy link
Copy link
Open
Description
Create a test framework, where we can synthesize different random thread interleavings and if there is an error, then at least we should be able to display the interleaving which caused the error. (relacy?)
Would be nice to come up with mathematical tests as well. E.g. for copy_update there is a nice test to check that we'd not missed any update:
void test_sum_add() {
X x{};
int sum = 0;
std::thread t2{[&x, &sum]() {
executeInLoop<1000>([&x, &sum]() {
sum = x.sum();
});
}};
std::thread t1{[&x]() {
executeInLoop<1000>([&x]() {
x.add(3);
});
}};
std::thread t3{[&x]() {
executeInLoop<1000>([&x]() {
x.add(4);
});
}};
t1.join();
t2.join();
t3.join();
std::cout << x.sum() << std::endl;
ASSERT(x.sum() == 7000);
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels