diff --git a/tests/Makefile.am b/tests/Makefile.am index b1db7485d6807a0314ae47ee8363cc08906130be..9ffc798c0b65aa802c020ec5ea86b85b18445349 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -129,7 +129,9 @@ check_PROGRAMS = check_version check_init check_uuid \ simple_group_client \ simple_group_injector \ simple_interlock_client_1 \ + redundant_interlock_client_1 \ simple_interlock_client_2 \ + redundant_interlock_client_2 \ colliding_client_1 \ colliding_client_2 \ reentrant_client \ @@ -165,6 +167,16 @@ CLIENT1_OPS="DECLARE cdo1 1025\ DISPOSE cdo1 -1\ DISPOSE cdo2 -1" +R_CLIENT1_OPS="DECLARE cdo1a 11\ + SEAL cdo1a -1 \ + DECLARE cdo2 20480\ + REQUIRE cdo2 -1\ + OFFER cdo1a -1 \ + DEMAND cdo2 -1\ + WITHDRAW cdo1a -1\ + DISPOSE cdo1a -1\ + DISPOSE cdo2 -1" + CLIENT2_OPS="DECLARE cdo2 20480\ SEAL cdo2 -1 \ DECLARE cdo1 1025\ @@ -172,72 +184,83 @@ CLIENT2_OPS="DECLARE cdo2 20480\ DECLARE cdo1a 11 REQUIRE cdo1a -1 \ OFFER cdo2 -1 \ DEMAND cdo1 -1\ - RETRACT cdo1a -1 DISPOSE cdo1a -1 \ + RETRACT cdo1a -1 DISPOSE cdo1a -1 \ WITHDRAW cdo2 -1\ DISPOSE cdo2 -1\ DISPOSE cdo1 -1" - -ASYNC_CLIENT1_OPS="DECLARE cdo1 1025\ - DECLARE cdo2 1024\ - DECLARE cdo3 20480\ - WAIT cdo1 -1\ - SEAL cdo1 -1\ - WAIT cdo2 -1\ - SEAL cdo2 -1\ - WAIT cdo3 -1\ - SEAL cdo3 -1\ - WAIT cdo3 -1\ - REQUIRE cdo3 -1\ - WAIT cdo1 -1\ - WAIT cdo2 -1\ - WAIT cdo3 -1\ - OFFER cdo1 -1\ - WAIT cdo1 -1\ - DEMAND cdo3 -1\ - WAIT cdo3 -1\ - WITHDRAW cdo1 -1\ - WAIT cdo1 -1\ - DISPOSE cdo1 -1\ - DISPOSE cdo2 -1\ - DISPOSE cdo3 -1" - -ASYNC_CLIENT2_OPS="DECLARE cdo3 20480\ - DECLARE cdo2 1024\ - WAIT cdo2 -1\ - WAIT cdo3 -1\ - SEAL cdo3 -1\ +R_CLIENT2_OPS="DECLARE cdo2 20480\ + SEAL cdo2 -1 \ DECLARE cdo1 1025\ - WAIT cdo1 -1\ - SEAL cdo1 -1\ - SEAL cdo2 -1\ - WAIT cdo1 -1\ - WAIT cdo2 -1\ REQUIRE cdo1 -1\ - REQUIRE cdo2 -1\ - WAIT cdo3 -1\ - WAIT cdo1 -1\ - OFFER cdo3 -1\ - WAIT cdo3 -1\ + DECLARE cdo1a 11 REQUIRE cdo1a -1 \ + OFFER cdo2 -1 \ DEMAND cdo1 -1\ - WAIT cdo1 -1\ - WITHDRAW cdo3 -1\ - WAIT cdo2 -1\ - RETRACT cdo2 -1\ - WAIT cdo2 -1\ - WAIT cdo3 -1\ + DEMAND cdo1a -1 DISPOSE cdo1a -1 \ + WITHDRAW cdo2 -1\ DISPOSE cdo2 -1\ - DISPOSE cdo3 -1\ DISPOSE cdo1 -1" +ASYNC_CLIENT1_OPS=" DECLARE cdo1 1025\ + DECLARE cdo2 1024\ + DECLARE cdo3 20480\ + WAIT cdo1 -1\ + SEAL cdo1 -1\ + WAIT cdo2 -1\ + SEAL cdo2 -1\ + WAIT cdo3 -1\ + SEAL cdo3 -1\ + WAIT cdo3 -1\ + REQUIRE cdo3 -1\ + WAIT cdo1 -1\ + WAIT cdo2 -1\ + WAIT cdo3 -1\ + OFFER cdo1 -1\ + WAIT cdo1 -1\ + DEMAND cdo3 -1\ + WAIT cdo3 -1\ + WITHDRAW cdo1 -1\ + WAIT cdo1 -1\ + DISPOSE cdo1 -1\ + DISPOSE cdo2 -1\ + DISPOSE cdo3 -1" + +ASYNC_CLIENT2_OPS=" DECLARE cdo3 20480\ + DECLARE cdo2 1024\ + WAIT cdo2 -1\ + WAIT cdo3 -1\ + SEAL cdo3 -1\ + DECLARE cdo1 1025\ + WAIT cdo1 -1\ + SEAL cdo1 -1\ + SEAL cdo2 -1\ + WAIT cdo1 -1\ + WAIT cdo2 -1\ + REQUIRE cdo1 -1\ + REQUIRE cdo2 -1\ + WAIT cdo3 -1\ + WAIT cdo1 -1\ + OFFER cdo3 -1\ + WAIT cdo3 -1\ + DEMAND cdo1 -1\ + WAIT cdo1 -1\ + WITHDRAW cdo3 -1\ + WAIT cdo2 -1\ + RETRACT cdo2 -1\ + WAIT cdo2 -1\ + WAIT cdo3 -1\ + DISPOSE cdo2 -1\ + DISPOSE cdo3 -1\ + DISPOSE cdo1 -1" + INJECTOR_OPS="\ DECLARE cdo1 1023 SEAL cdo1 -1 OFFER cdo1 -1 \ DECLARE cdo2 1023000 SEAL cdo2 -1 OFFER cdo2 -1 \ DECLARE cdo3 102 SEAL cdo3 -1 OFFER cdo3 -1 \ DECLARE cdo1a 107 REQUIRE cdo1a -1 \ - RETRACT cdo1a -1 DISPOSE cdo1a -1 \ + RETRACT cdo1a -1 DISPOSE cdo1a -1 \ WITHDRAW cdo1 -1 WITHDRAW cdo2 -1 WITHDRAW cdo3 -1 \ - DISPOSE cdo3 -1 DISPOSE cdo2 -1 DISPOSE cdo1 -1" + DISPOSE cdo3 -1 DISPOSE cdo2 -1 DISPOSE cdo1 -1" @@ -247,6 +270,11 @@ simple_interlock_client_1_CPPFLAGS = $(AM_CPPFLAGS) -DCOMPONENT_ID=1 -DCLIENT_A simple_interlock_client_2_SOURCES = simple_interlock_client.c simple_interlock_client_2_CPPFLAGS = $(AM_CPPFLAGS) -DCOMPONENT_ID=2 -DCLIENT_ARGS=$(CLIENT2_OPS) +redundant_interlock_client_1_SOURCES = simple_interlock_client.c +redundant_interlock_client_1_CPPFLAGS = $(AM_CPPFLAGS) -DCOMPONENT_ID=1 -DCLIENT_ARGS=$(R_CLIENT1_OPS) +redundant_interlock_client_2_SOURCES = simple_interlock_client.c +redundant_interlock_client_2_CPPFLAGS = $(AM_CPPFLAGS) -DCOMPONENT_ID=2 -DCLIENT_ARGS=$(R_CLIENT2_OPS) + colliding_client_1_SOURCES = colliding_client.c colliding_client_1_CPPFLAGS = $(AM_CPPFLAGS) -DREPETITION=1 colliding_client_2_SOURCES = colliding_client.c diff --git a/tests/check_pm_redundant_interlock.sh.in b/tests/check_pm_redundant_interlock.sh.in index 6e14f68cb0df3383a9785b8498be3973dbb8c285..10d03f739d822296b0cc0bafae646a6f93deccdd 100644 --- a/tests/check_pm_redundant_interlock.sh.in +++ b/tests/check_pm_redundant_interlock.sh.in @@ -49,6 +49,8 @@ PM_CMD="@top_builddir@/tests/simple_pool_manager" # 'O' -- offer 'R' -- require -- 'D' demand -- 'W' withdraw # 'S' -- sleep CLIENT_CMD="@top_builddir@/tests/simple_interlock_client" +R_CLIENT_CMD="@top_builddir@/tests/redundant_interlock_client" + # start pool manager, connect its output to fd 3: # (we need to run in a subshell to start a new process group) @@ -95,13 +97,14 @@ export MSTRO_POOL_MANAGER_INFO (env MSTRO_COMPONENT_NAME="Client1" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C1a.yaml" MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="BLUE" ${CLIENT_CMD}_1 -n) || exit 99 & # start client 1 again (simulating redundant participants) -(env MSTRO_COMPONENT_NAME="Client1a" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C1a.yaml" MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="BLUE" ${CLIENT_CMD}_1 -n) || exit 99 & +(env MSTRO_COMPONENT_NAME="Client1a" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C1a.yaml" MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="BLUE" ${R_CLIENT_CMD}_1 -n) || exit 99 & # start client 2 -(env MSTRO_COMPONENT_NAME="Client2" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C2a.yaml" MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="CYAN" ${CLIENT_CMD}_2 -n) || exit 99 & +(env MSTRO_COMPONENT_NAME="Client2" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C2a.yaml" MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="CYAN" ${R_CLIENT_CMD}_2 -n) || exit 99 & wait %1 || exit 99 wait %2 || exit 99 +wait %3 || exit 99 # trap normal script termination: close pipe to pool manager terminate ${PM_PID} 0