diff --git a/src/test/libslic3r/test_trianglemesh.cpp b/src/test/libslic3r/test_trianglemesh.cpp index 28d12cb65..6e76ba21e 100644 --- a/src/test/libslic3r/test_trianglemesh.cpp +++ b/src/test/libslic3r/test_trianglemesh.cpp @@ -4,6 +4,11 @@ #include "libslic3r.h" #include "Point.hpp" #include "test_options.hpp" +#include "Config.hpp" +#include "Model.hpp" +#include "test_data.hpp" + +#include "Log.hpp" #include #include @@ -377,7 +382,31 @@ TEST_CASE("Regression test for issue #4486 - files take forever to slice") { auto config {Slic3r::Config::new_from_defaults()}; mesh.ReadSTLFile(std::string(testfile_dir) + "test_trianglemesh/4486/100_000.stl"); mesh.repair(); - mesh.scale(0.1); + + config->set("layer_height", 500); + config->set("first_layer_height", 250); + config->set("nozzle_diameter", 500); + + Slic3r::Model model; + auto print {Slic3r::Test::init_print({mesh}, model, config)}; + + print->status_cb = [] (int ln, const std::string& msg) { Slic3r::Log::info("Print") << ln << " " << msg << "\n";}; + + std::future fut = std::async([&print] () { print->process(); }); + std::chrono::milliseconds span {120000}; + bool timedout {false}; + if(fut.wait_for(span) == std::future_status::timeout) { + timedout = true; + } + REQUIRE(timedout == false); + +} + +#ifdef BUILD_PROFILE +TEST_CASE("Profile test for issue #4486 - files take forever to slice") { + TriangleMesh mesh; + auto config {Slic3r::Config::new_from_defaults()}; + mesh.ReadSTLFile(std::string(testfile_dir) + "test_trianglemesh/4486/100_000.stl"); mesh.repair(); config->set("layer_height", 500); @@ -387,12 +416,11 @@ TEST_CASE("Regression test for issue #4486 - files take forever to slice") { Slic3r::Model model; auto print {Slic3r::Test::init_print({mesh}, model, config)}; - std::future fut = std::async(print->process); - std::chrono::milliseconds span {60000}; - bool timedout {false}; - if(fut.wait_for(span) == std::future_status::timeout) { - timedout = true; - } + print->status_cb = [] (int ln, const std::string& msg) { Slic3r::Log::info("Print") << ln << " " << msg << "\n";}; + + print->process(); + + REQUIRE(true); - REQUIRE(timedout == false); } +#endif //BUILD_PROFILE diff --git a/src/test/test_data.cpp b/src/test/test_data.cpp index 1dcdd03af..96b892273 100644 --- a/src/test/test_data.cpp +++ b/src/test/test_data.cpp @@ -234,7 +234,7 @@ shared_Print init_print(std::initializer_list meshes, Slic3r::Model& m return print; } -shared_Print init_print(std::initializer_list& meshes, Slic3r::Model& model, config_ptr _config, bool comments) { +shared_Print init_print(std::initializer_list meshes, Slic3r::Model& model, config_ptr _config, bool comments) { auto config {Slic3r::Config::new_from_defaults()}; config->apply(_config);