This allows us to execute only the first <some number> SQL invocations. The first non-executed one is dumped, instead, by having get_psql_command print a rune involving ./mg-debug-fail (which the caller will then execute).
The locking makes things work roughly-correctly if get_psql_cmd is run in multiple processes at once: it is not defined exactly which invocations get which counter values, but they will all work properly and get exactly one counter value each. If set -x is in force, turn it off for get_psql_cmd: our perl rune is uninteresting to see repeated ad infinitum in debugging output. Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com> --- cri-getconfig | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cri-getconfig b/cri-getconfig index 48528b5..a357d86 100644 --- a/cri-getconfig +++ b/cri-getconfig @@ -41,6 +41,22 @@ getrepos() { } get_psql_cmd () { + # To use this: + # on each test run, rm -f t.psql-counter + # and set OSSTEST_PSQL_ONLY_DO to an integer + if [ "x$OSSTEST_PSQL_ONLY_DO" != x ]; then + local f=t.psql-counter + psql_counter=$( with-lock-ex -w $f.lock bash -ec ' + psql_counter=$(cat '$f' || echo 0) + echo $(( $psql_counter + 1 )) >'$f'.tmp + mv -f '$f'.tmp '$f' + echo $psql_counter' ) + if ! [ $psql_counter -lt $OSSTEST_PSQL_ONLY_DO ]; then + printf './mg-debug-fail ' + fi + fi + + set +x perl -we ' use Osstest; use Osstest::Executive; -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel