- simcall_comm_test__set__comm(&state->internal_req, state->internal_comm.get_buffer());
- simcall_comm_test__set__result(&state->internal_req, state->transition.argument);
- break;
-
- case SIMCALL_COMM_WAIT:
- mc_model_checker->process().read_bytes(&state->internal_comm, sizeof(state->internal_comm),
- remote(simcall_comm_wait__getraw__comm(req)));
- simcall_comm_wait__set__comm(&state->executed_req, state->internal_comm.get_buffer());
- simcall_comm_wait__set__comm(&state->internal_req, state->internal_comm.get_buffer());
- break;
-
- case SIMCALL_COMM_TEST:
- mc_model_checker->process().read_bytes(&state->internal_comm, sizeof(state->internal_comm),
- remote(simcall_comm_test__getraw__comm(req)));
- simcall_comm_test__set__comm(&state->executed_req, state->internal_comm.get_buffer());
- simcall_comm_test__set__comm(&state->internal_req, state->internal_comm.get_buffer());
- break;
-
- default:
- /* No translation needed */
- break;
+ case SIMCALL_COMM_TESTANY:
+ state->internal_req.call_ = SIMCALL_COMM_TEST;
+
+ if (state->transition_.argument_ > 0) {
+ simgrid::kernel::activity::CommImpl* remote_comm = mc_model_checker->process().read(
+ remote(simcall_comm_testany__get__comms(req) + state->transition_.argument_));
+ mc_model_checker->process().read(state->internal_comm, remote(remote_comm));
+ }
+
+ simcall_comm_test__set__comm(&state->internal_req, state->internal_comm.get_buffer());
+ simcall_comm_test__set__result(&state->internal_req, state->transition_.argument_);
+ break;
+
+ case SIMCALL_COMM_WAIT:
+ mc_model_checker->process().read_bytes(&state->internal_comm, sizeof(state->internal_comm),
+ remote(simcall_comm_wait__getraw__comm(req)));
+ simcall_comm_wait__set__comm(&state->executed_req_, state->internal_comm.get_buffer());
+ simcall_comm_wait__set__comm(&state->internal_req, state->internal_comm.get_buffer());
+ break;
+
+ case SIMCALL_COMM_TEST:
+ mc_model_checker->process().read_bytes(&state->internal_comm, sizeof(state->internal_comm),
+ remote(simcall_comm_test__getraw__comm(req)));
+ simcall_comm_test__set__comm(&state->executed_req_, state->internal_comm.get_buffer());
+ simcall_comm_test__set__comm(&state->internal_req, state->internal_comm.get_buffer());
+ break;
+
+ default:
+ /* No translation needed */
+ break;