mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-10 12:30:10 +00:00
* fix: initialize Print::m_isBBLPrinter
Built outside the GUI/CLI (headless tests, embedded use) the member was read
uninitialized: is_BBL_printer()/wipe_tower_type() feed it into ToolOrdering,
which then non-deterministically dropped per-feature filament assignments.
Default it to false, the value the GUI and CLI already assign for non-Bambu
printers.
* docs(test): add the fff_print testing contract
tests/fff_print/README.md codifies how the suite is organized: one file per
subsystem (each owning both in-memory and emitted-G-code assertions), flat
behavioral test names with a single [Subsystem] tag, a robust-tests guide,
the shared helpers, and an add-a-test checklist. Linked from tests/CLAUDE.md.
* test(fff_print): reorganize the suite to the contract and add coverage
Bring every subsystem into one file per the README: rename the test_data
harness to test_helpers; consolidate skirt/brim; split multi-filament and
cooling into their own files; disperse the test_printgcode grab-bag and the
end-to-end smoke scenario into focused tests; fold test_gcode into
test_gcodewriter. Standardize names and tags, align cube tests on the cube()
helper, and de-qualify the flagship files.
New coverage: multi-filament per-feature and per-object routing; a skirt/brim
behavior matrix (the #14333 rework, including brim ears, with regression
coverage for #14319 and #14366); resolved extrusion-width and config
comments; custom-G-code placeholders; fan control and speed-marker
consumption.
Re-enable three slice tests previously tagged [NotWorking]: the clipper
"Coordinate outside allowed range" error that disabled them was specific to a
past CI runner environment and no longer reproduces.
* test(fff_print): tag arm64-flaky skirt/brim tests NotWorking
Four skirt/brim slice tests intermittently throw ClipperLib's "Coordinate
outside allowed range" on the macOS and Windows arm64 CI toolchains (an FP
divergence, not a slicing bug; see PR #14207). Linux x86_64 and aarch64 are
unaffected. Tag them [NotWorking] so ctest -LE NotWorking skips them.
* test(fff_print): re-enable the arm64 skirt/brim tests
These were tagged [NotWorking] as a stopgap when myfork's daily-driver build
combined them with the cross-platform CI on a base that predated upstream's
m_origin fix (99dea01cc3). With upstream merged in, Print::m_origin is
initialized and the "Coordinate outside allowed range" throw is gone, so the
tests pass on macOS/Windows arm64. Drop the tags.
28 lines
868 B
C++
28 lines
868 B
C++
#include <catch2/catch_all.hpp>
|
|
|
|
#include "test_helpers.hpp"
|
|
|
|
#include <string>
|
|
|
|
using namespace Slic3r;
|
|
using namespace Slic3r::Test;
|
|
|
|
// The fan is held off for the first close_fan_the_first_x_layers layers, so an explicit
|
|
// fan-off command is emitted.
|
|
TEST_CASE("Fan is held off for the initial layers", "[Cooling]")
|
|
{
|
|
const std::string gcode = slice({ cube(20) }, {
|
|
{ "cooling", true },
|
|
{ "close_fan_the_first_x_layers", 5 },
|
|
});
|
|
CHECK(gcode.find("M106 S0") != std::string::npos);
|
|
}
|
|
|
|
// The cooling pass resolves and strips its internal speed placeholders; none leak into
|
|
// the final G-code.
|
|
TEST_CASE("Cooling consumes its internal speed markers", "[Cooling]")
|
|
{
|
|
const std::string gcode = slice({ cube(20) }, { { "layer_height", 0.2 } });
|
|
CHECK(gcode.find(";_EXTRUDE_SET_SPEED") == std::string::npos);
|
|
}
|