Try to fix flaky tests

This commit is contained in:
Siarhei Fedartsou 2024-11-03 17:29:41 +01:00
parent 13c92c72d5
commit c4edaad85d

View File

@ -32,147 +32,147 @@ class redirect_stderr
BOOST_AUTO_TEST_SUITE(library_extract) BOOST_AUTO_TEST_SUITE(library_extract)
BOOST_AUTO_TEST_CASE(test_extract_with_invalid_config) // BOOST_AUTO_TEST_CASE(test_extract_with_invalid_config)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
BOOST_CHECK_THROW(osrm::extract(config), // BOOST_CHECK_THROW(osrm::extract(config),
std::exception); // including osrm::util::exception, osmium::io_error, etc. // std::exception); // including osrm::util::exception, osmium::io_error, etc.
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_CASE(test_extract_with_valid_config) // BOOST_AUTO_TEST_CASE(test_extract_with_valid_config)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf"; // config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf";
config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf"); // config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf");
config.profile_path = OSRM_TEST_DATA_DIR "/../../profiles/car.lua"; // config.profile_path = OSRM_TEST_DATA_DIR "/../../profiles/car.lua";
config.small_component_size = 1000; // config.small_component_size = 1000;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
BOOST_CHECK_NO_THROW(osrm::extract(config)); // BOOST_CHECK_NO_THROW(osrm::extract(config));
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_CASE(test_setup_runtime_error) // BOOST_AUTO_TEST_CASE(test_setup_runtime_error)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf"; // config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf";
config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf"); // config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf");
config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_setup.lua"; // config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_setup.lua";
config.small_component_size = 1000; // config.small_component_size = 1000;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
std::stringstream output; // std::stringstream output;
{ // {
redirect_stderr redir(output.rdbuf()); // redirect_stderr redir(output.rdbuf());
BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception); // BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception);
} // }
// We just look for the line number, file name, and error message. This avoids portability // // We just look for the line number, file name, and error message. This avoids portability
// issues since the output contains the full path to the file, which may change between systems // // issues since the output contains the full path to the file, which may change between systems
BOOST_CHECK(boost::algorithm::contains(output.str(), // BOOST_CHECK(boost::algorithm::contains(output.str(),
"bad_setup.lua:6: attempt to compare number with nil")); // "bad_setup.lua:6: attempt to compare number with nil"));
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_CASE(test_way_runtime_error) // BOOST_AUTO_TEST_CASE(test_way_runtime_error)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf"; // config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf";
config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf"); // config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf");
config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_way.lua"; // config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_way.lua";
config.small_component_size = 1000; // config.small_component_size = 1000;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
std::stringstream output; // std::stringstream output;
{ // {
redirect_stderr redir(output.rdbuf()); // redirect_stderr redir(output.rdbuf());
BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception); // BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception);
} // }
// We just look for the line number, file name, and error message. This avoids portability // // We just look for the line number, file name, and error message. This avoids portability
// issues since the output contains the full path to the file, which may change between systems // // issues since the output contains the full path to the file, which may change between systems
BOOST_CHECK(boost::algorithm::contains(output.str(), // BOOST_CHECK(boost::algorithm::contains(output.str(),
"bad_way.lua:41: attempt to compare number with nil")); // "bad_way.lua:41: attempt to compare number with nil"));
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_CASE(test_node_runtime_error) // BOOST_AUTO_TEST_CASE(test_node_runtime_error)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf"; // config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf";
config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf"); // config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf");
config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_node.lua"; // config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_node.lua";
config.small_component_size = 1000; // config.small_component_size = 1000;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
std::stringstream output; // std::stringstream output;
{ // {
redirect_stderr redir(output.rdbuf()); // redirect_stderr redir(output.rdbuf());
BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception); // BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception);
} // }
// We just look for the line number, file name, and error message. This avoids portability // // We just look for the line number, file name, and error message. This avoids portability
// issues since the output contains the full path to the file, which may change between systems // // issues since the output contains the full path to the file, which may change between systems
BOOST_CHECK(boost::algorithm::contains(output.str(), // BOOST_CHECK(boost::algorithm::contains(output.str(),
"bad_node.lua:36: attempt to compare number with nil")); // "bad_node.lua:36: attempt to compare number with nil"));
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_CASE(test_segment_runtime_error) // BOOST_AUTO_TEST_CASE(test_segment_runtime_error)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf"; // config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf";
config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf"); // config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf");
config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_segment.lua"; // config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_segment.lua";
config.small_component_size = 1000; // config.small_component_size = 1000;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
std::stringstream output; // std::stringstream output;
{ // {
redirect_stderr redir(output.rdbuf()); // redirect_stderr redir(output.rdbuf());
BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception); // BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception);
} // }
// We just look for the line number, file name, and error message. This avoids portability // // We just look for the line number, file name, and error message. This avoids portability
// issues since the output contains the full path to the file, which may change between systems // // issues since the output contains the full path to the file, which may change between systems
BOOST_CHECK(boost::algorithm::contains( // BOOST_CHECK(boost::algorithm::contains(
output.str(), "bad_segment.lua:132: attempt to compare number with nil")); // output.str(), "bad_segment.lua:132: attempt to compare number with nil"));
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_CASE(test_turn_runtime_error) // BOOST_AUTO_TEST_CASE(test_turn_runtime_error)
{ // {
oneapi::tbb::task_scheduler_handle handle{tbb::attach{}}; // oneapi::tbb::task_scheduler_handle handle{tbb::attach{}};
osrm::ExtractorConfig config; // osrm::ExtractorConfig config;
config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf"; // config.input_path = OSRM_TEST_DATA_DIR "/monaco.osm.pbf";
config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf"); // config.UseDefaultOutputNames(OSRM_TEST_DATA_DIR "/monaco.osm.pbf");
config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_turn.lua"; // config.profile_path = OSRM_TEST_DATA_DIR "/profiles/bad_turn.lua";
config.small_component_size = 1000; // config.small_component_size = 1000;
config.requested_num_threads = std::thread::hardware_concurrency(); // config.requested_num_threads = std::thread::hardware_concurrency();
std::stringstream output; // std::stringstream output;
{ // {
redirect_stderr redir(output.rdbuf()); // redirect_stderr redir(output.rdbuf());
BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception); // BOOST_CHECK_THROW(osrm::extract(config), osrm::util::exception);
} // }
// We just look for the line number, file name, and error message. This avoids portability // // We just look for the line number, file name, and error message. This avoids portability
// issues since the output contains the full path to the file, which may change between systems // // issues since the output contains the full path to the file, which may change between systems
BOOST_CHECK(boost::algorithm::contains(output.str(), // BOOST_CHECK(boost::algorithm::contains(output.str(),
"bad_turn.lua:122: attempt to compare number with nil")); // "bad_turn.lua:122: attempt to compare number with nil"));
oneapi::tbb::finalize(handle); // oneapi::tbb::finalize(handle);
} // }
BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE_END()