got an IPC stress tester that actually works
I had to write it in C++ to get it to actually exercise processing power
instead of disk IO. Also, I had to tweak some timeouts etc in some of
the tests to avoid random false failures.
diff --git a/aos/common/mutex_test.cpp b/aos/common/mutex_test.cpp
index d9327a1..6ab7ed6 100644
--- a/aos/common/mutex_test.cpp
+++ b/aos/common/mutex_test.cpp
@@ -110,7 +110,7 @@
#ifdef __VXWORKS__
// Without this, all of the "task ... deleted ..." messages come out at
// once, and it looks weird and triggers an socat bug (at least for
- // Squeeze's version 1.7.1.3-1).
+ // Squeeze's version 1.7.1.3-1) which locks it up and is very annoying.
taskDelay(index_);
#endif
}
@@ -138,7 +138,7 @@
#ifdef __VXWORKS__
static const int kWarmupCycles = 1000, kRunCycles = 60000, kMaxDeviation = 20;
#else
- static const int kWarmupCycles = 30000, kRunCycles = 3000000, kMaxDeviation = 10000;
+ static const int kWarmupCycles = 30000, kRunCycles = 3000000, kMaxDeviation = 20000;
#endif
int cycles[kThreads];
@@ -166,8 +166,8 @@
for (int i = 0; i < kThreads; ++i) {
variance += (cycles[i] - expected) * (cycles[i] - expected);
}
+ ASSERT_GT(variance, 0);
double deviation = sqrt(variance / kThreads);
- printf("deviation=%f\n", deviation);
ASSERT_GT(deviation, 0);
EXPECT_LT(deviation, kMaxDeviation);
}