mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-13 18:18:58 +08:00
Added profiling test for TriangleMesh, non-profiled mode passes.
This commit is contained in:
parent
c94c40e5c4
commit
7d08cd1ea4
@ -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 <algorithm>
|
||||
#include <future>
|
||||
@ -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<void> 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<bool> 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
|
||||
|
@ -234,7 +234,7 @@ shared_Print init_print(std::initializer_list<TestMesh> meshes, Slic3r::Model& m
|
||||
|
||||
return print;
|
||||
}
|
||||
shared_Print init_print(std::initializer_list<TriangleMesh>& meshes, Slic3r::Model& model, config_ptr _config, bool comments) {
|
||||
shared_Print init_print(std::initializer_list<TriangleMesh> meshes, Slic3r::Model& model, config_ptr _config, bool comments) {
|
||||
auto config {Slic3r::Config::new_from_defaults()};
|
||||
config->apply(_config);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user