libqb/tests
Jan Pokorný 2aefe53188
tests: ipc: check deadlock-like situation due to mixing priorities
Compared to the outer world, libqb brings rather unintuitive approach
to priorities within a native event loop (qbloop.h) -- it doesn't do
an exhaustive high-to-low priorities in a batched (clean-the-level)
manner, but rather linearly adds a possibility to pick the handling
task from the higher priority level as opposed to lower priority ones.

This has the advantage of limiting the chances of starvation and
deadlock opportunities in the incorrectly constructed SW, on the other
hand, it means that libqb is not fulfilling the architected intentions
regarding what deserves a priority truthfully, so these priorities are
worth just a hint rather than urgency-based separation.

And consequently, a discovery of these deadlocks etc. is deferred to
the (as Murphy's laws have it) least convenient moment, e.g., when
said native event loop is exchanged for other (this time priority
trully abiding, like GLib) implementation, while retaining the same
basic notion and high-level handling of priorities on libqb
side, in IPC server (service handling) context.

Hence, demonstration of such a degenerate blocking is not trivial,
and we must defer such other event loop implementation.  After this
hassle, we are rewarded with a practical proof said "high-level
handling [...] in IPC server (service handling) context" contains
a bug (which we are going to subsequently fix) -- this is contrasted
with libqb's native loop implementation that works just fine even
prior that fix.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2019-06-12 16:30:50 +02:00
..
functional maint: fix "make maintainer-clean" not working in tests/functional 2017-12-21 13:42:19 +01:00
_failure_injection.c tests: start stdlib failures injection effort with unlink{,at} + test 2016-11-04 19:06:08 +01:00
_failure_injection.h tests: start stdlib failures injection effort with unlink{,at} + test 2016-11-04 19:06:08 +01:00
_syslog_override.c Feature: allow changing the identifier for syslog (+tests) 2016-02-18 11:30:14 +01:00
_syslog_override.h Feature: allow changing the identifier for syslog (+tests) 2016-02-18 11:30:14 +01:00
.gitignore API: introduce alternative, header-based versioning 2016-04-01 23:19:40 +02:00
bench-log.c By default don't build in the slow benchlog 2011-11-25 11:12:27 +11:00
blackbox-segfault.sh Low: tests: Verify reading valid blackbox file works 2013-06-27 19:47:04 -05:00
bmc.c Deprecate qb_util_set_log_function() 2012-01-24 16:00:05 +11:00
bmcpt.c Low: sanitize import of <qb/qbarray.h> symbols 2016-10-17 17:25:50 +02:00
bms.c Low: sanitize import of <qb/qbarray.h> symbols 2016-10-17 17:25:50 +02:00
check_array.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
check_common.h tests: refactor test case defs using versatile add_tcase macro 2016-03-01 15:11:38 +01:00
check_ipc.c tests: ipc: check deadlock-like situation due to mixing priorities 2019-06-12 16:30:50 +02:00
check_log.c warnings cleanup: Wformat: sign-correct PRIu32 specifiers as appropriate 2017-12-21 01:50:15 +01:00
check_loop.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
check_map.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
check_rb.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
check_util.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
crash_test_dummy.c Deal better with corrupt blackbox files. 2013-04-02 13:52:57 +11:00
file_change_bytes.c Low: tests: Fixes compile time issue with make check 2014-01-20 16:59:52 -06:00
format_compare_speed.c warnings cleanup: Wformat: sign-correct PRIu32 specifiers as appropriate 2017-12-21 01:50:15 +01:00
loop.c Deprecate qb_util_set_log_function() 2012-01-24 16:00:05 +11:00
make-log-test.sh TEST: change the script to .sh and generated c file to auto_ 2012-01-16 22:18:39 +11:00
Makefile.am tests: ipc: check deadlock-like situation due to mixing priorities 2019-06-12 16:30:50 +02:00
print_ver.c API: header-based versioning: s/PATCH/MICRO 2016-04-18 19:08:28 +02:00
rbreader.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
rbwriter.c tests: make qb logging under check always dispose the memory 2017-09-18 10:30:40 +01:00
resources.test tests: start stdlib failures injection effort with unlink{,at} + test 2016-11-04 19:06:08 +01:00
run-coverity test: add helper script for running coverity 2015-09-09 15:54:26 -05:00
test.conf.in Deal better with corrupt blackbox files. 2013-04-02 13:52:57 +11:00