From 347b6edf047cb8ba08da6ef21c7a06623d19e82e Mon Sep 17 00:00:00 2001 From: Erik Boasson Date: Wed, 29 Apr 2020 19:49:59 +0200 Subject: [PATCH] Default to doing expensive checks in rhc_torture The entire point of this test program is to exercise the RHC while checking its internal state. The likelihood of (at least some) forgetting to enable the "expensive" checks has been proven to be significant. Signed-off-by: Erik Boasson --- src/core/xtests/rhc_torture/rhc_torture.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/core/xtests/rhc_torture/rhc_torture.c b/src/core/xtests/rhc_torture/rhc_torture.c index 132fbc6..b08fa4f 100644 --- a/src/core/xtests/rhc_torture/rhc_torture.c +++ b/src/core/xtests/rhc_torture/rhc_torture.c @@ -894,6 +894,7 @@ int main (int argc, char **argv) uint32_t states_seen[2 * 2 * 3][2] = {{ 0 }}; unsigned seed = 0; bool print = false; + int xchecks = 1; int first = 0, count = 10000; ddsrt_mutex_init (&wait_gc_cycle_lock); @@ -909,10 +910,21 @@ int main (int argc, char **argv) count = atoi (argv[3]); if (argc > 4) print = (atoi (argv[4]) != 0); + if (argc > 5) + xchecks = atoi (argv[4]); - printf ("prng seed %u first %d count %d print %d\n", seed, first, count, print); + printf ("prng seed %u first %d count %d print %d xchecks %d\n", seed, first, count, print, xchecks); ddsrt_prng_init_simple (&prng, seed); + if (xchecks != 0) + { + struct ddsi_domaingv *gv = get_gv (pp); + if (xchecks > 0) + gv->config.enabled_xchecks = ~0u; + else + gv->config.enabled_xchecks = 0u; + } + memset (rres_mseq, 0, sizeof (rres_mseq)); for (size_t i = 0; i < sizeof (rres_iseq) / sizeof(rres_iseq[0]); i++) rres_ptrs[i] = &rres_mseq[i];