Lines Matching +full:tcs +full:- +full:wait

152             if (iter->name != "." && iter->name != "..")
153 names.insert(iter->name);
201 /// Test program-specific execution interface.
238 /// \param interface_ Test program-specific execution interface.
248 const model::test_case& test_case = test_program->find(test_case_name);
356 0, absolute.length() - relative.length());
374 /// User-provided configuration variables.
382 /// \param user_config User-provided configuration variables.
399 _interface->exec_list(_test_program, vars);
415 /// User-provided configuration variables.
423 /// spawn/wait abstraction of the scheduler; and, second, we parallelize the
466 /// \param user_config User-provided configuration variables.
495 _interface->exec_test(_test_program, _test_case_name, vars,
512 /// User-provided configuration variables.
521 /// \param user_config User-provided configuration variables.
543 _interface->exec_cleanup(_test_program, _test_case_name, vars,
578 e->cleanup();
670 _pimpl->_scheduler_handle.check_interrupt();
672 if (!_pimpl->_loaded) {
673 const model::test_cases_map tcs = _pimpl->_scheduler_handle.list_tests(
674 this, _pimpl->_user_config);
679 const_cast< scheduler::lazy_test_program* >(this)->set_test_cases(tcs);
681 _pimpl->_loaded = true;
683 _pimpl->_scheduler_handle.check_interrupt();
686 INV(_pimpl->_loaded);
749 _pbimpl->generic.cleanup();
759 return _pbimpl->generic.original_pid();
769 return _pbimpl->generic.start_time();
779 return _pbimpl->generic.end_time();
783 /// Returns the path to the test-specific work directory.
791 return _pbimpl->generic.work_directory();
801 return _pbimpl->generic.stdout_file();
811 return _pbimpl->generic.stderr_file();
865 return _pimpl->test_program;
875 return _pimpl->test_case_name;
885 return _pimpl->test_result;
922 % test_data->test_program->relative_path()
923 % test_data->test_case_name);
938 % test_data->test_program->relative_path()
939 % test_data->test_case_name);
960 if (test_data->needs_cleanup) {
962 test_data->needs_cleanup = false;
963 if (!test_data->exit_handle)
964 test_data->exit_handle = generic.reap(test_data->pid);
991 if (test_data->needs_execenv_cleanup) {
993 test_data->needs_execenv_cleanup = false;
994 if (!test_data->exit_handle)
995 test_data->exit_handle = generic.reap(test_data->pid);
1019 test_data->test_program, test_data->test_case_name,
1020 test_data->user_config, test_data->exit_handle.get(),
1022 generic.wait(cleanup_handle);
1029 /// \param user_config User-provided configuration variables.
1046 find_interface(test_program->interface_name());
1048 LI(F("Spawning %s:%s (cleanup)") % test_program->absolute_path() %
1081 test_data->test_program, test_data->test_case_name,
1082 test_data->exit_handle.get(), result);
1083 generic.wait(cleanup_handle);
1105 % test_program->absolute_path() % test_case_name);
1142 return _pimpl->generic.root_work_directory();
1156 _pimpl->generic.cleanup();
1224 /// \param user_config User-provided configuration variables.
1232 _pimpl->generic.check_interrupt();
1235 test_program->interface_name());
1238 const executor::exec_handle exec_handle = _pimpl->generic.spawn(
1241 executor::exit_handle exit_handle = _pimpl->generic.wait(exec_handle);
1243 const model::test_cases_map test_cases = interface->parse_list(
1256 // cannot report failures at the test-program level.
1277 /// \param user_config User-provided configuration variables.
1287 _pimpl->generic.check_interrupt();
1290 test_program->interface_name());
1292 LI(F("Spawning %s:%s") % test_program->absolute_path() % test_case_name);
1294 const model::test_case& test_case = test_program->find(test_case_name);
1303 const executor::exec_handle handle = _pimpl->generic.spawn(
1313 _pimpl->all_exec_data.find(handle.pid()) == _pimpl->all_exec_data.end(),
1316 _pimpl->all_exec_data.insert(exec_data_map::value_type(handle.pid(), data));
1329 /// types and, at wait time, we don't know upfront what we are going to get.
1333 _pimpl->generic.check_interrupt();
1335 executor::exit_handle handle = _pimpl->generic.wait_any();
1337 const exec_data_map::iterator iter = _pimpl->all_exec_data.find(
1341 utils::dump_stacktrace_if_available(data->test_program->absolute_path(),
1342 _pimpl->generic, handle);
1352 test_data->exit_handle = handle;
1354 const model::test_case& test_case = test_data->test_program->find(
1355 test_data->test_case_name);
1381 test_data->needs_cleanup = false;
1382 test_data->needs_execenv_cleanup = false;
1386 result = test_data->interface->compute_result(
1399 if (test_data->needs_cleanup) {
1402 // is a cleanup routine, trigger it now and wait for any other test
1404 _pimpl->spawn_cleanup(test_data->test_program,
1405 test_data->test_case_name,
1406 test_data->user_config, handle, result.get());
1416 if (test_data->needs_execenv_cleanup) {
1418 _pimpl->spawn_execenv_cleanup(test_data->test_program,
1419 test_data->test_case_name,
1421 test_data->needs_execenv_cleanup = false;
1440 const model::test_result& body_result = cleanup_data->body_result;
1461 // one in charge of doing so in the regular (non-cleanup) case.
1464 % cleanup_data->body_exit_handle.original_pid());
1465 _pimpl->all_exec_data.erase(handle.original_pid());
1467 handle = cleanup_data->body_exit_handle;
1469 const exec_data_map::iterator it = _pimpl->all_exec_data.find(
1471 if (it != _pimpl->all_exec_data.end()) {
1476 cleanup_data->test_program->find(cleanup_data->test_case_name);
1477 test_data->needs_cleanup = false;
1479 if (test_data->needs_execenv_cleanup) {
1481 _pimpl->spawn_execenv_cleanup(cleanup_data->test_program,
1482 cleanup_data->test_case_name,
1484 test_data->needs_execenv_cleanup = false;
1498 const model::test_result& body_result = execenv_data->body_result;
1519 % execenv_data->body_exit_handle.original_pid());
1520 _pimpl->all_exec_data.erase(handle.original_pid());
1522 handle = execenv_data->body_exit_handle;
1530 new result_handle::bimpl(handle, _pimpl->all_exec_data));
1533 data->test_program, data->test_case_name, result.get()));
1545 /// \param user_config User-provided configuration variables.
1572 *output << utils::read_file(result_handle->stdout_file());
1577 *output << utils::read_file(result_handle->stderr_file());
1580 INV(result_handle->original_pid() == exec_handle);
1597 _pimpl->generic.check_interrupt();
1635 props["unprivileged-user"] = user.name;