From c94c40e5c4809b2738a79ea3e389dd3a518cf7d0 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Tue, 31 Jul 2018 09:57:07 -0500 Subject: [PATCH] Implemented short test to check for 60s to complete slicing for a test model --- src/test/libslic3r/test_trianglemesh.cpp | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/test/libslic3r/test_trianglemesh.cpp b/src/test/libslic3r/test_trianglemesh.cpp index 74a852093..28d12cb65 100644 --- a/src/test/libslic3r/test_trianglemesh.cpp +++ b/src/test/libslic3r/test_trianglemesh.cpp @@ -6,6 +6,8 @@ #include "test_options.hpp" #include +#include +#include using namespace Slic3r; using namespace std; @@ -370,7 +372,27 @@ SCENARIO( "TriangleMeshSlicer: Cut behavior.") { } } -TEST_CASE("Regression test for issue #4486") { +TEST_CASE("Regression test for issue #4486 - files take forever to slice") { TriangleMesh mesh; - mesh.ReadSTLFile(); + 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); + mesh.repair(); + + 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)}; + + 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; + } + + REQUIRE(timedout == false); }