41#include <wx/filename.h>
51 +
"issue23868/issue23868.kicad_pro" );
56 BOOST_REQUIRE_MESSAGE(
project,
"Could not load project" );
63 +
"issue23868/issue23868.kicad_pcb";
90 "BOARD_LOADER did not parse the .kicad_dru file" );
97 std::vector<std::pair<wxString, wxString>> violations;
100 [&](
const std::shared_ptr<DRC_ITEM>& aItem,
const VECTOR2I&,
int,
105 if( aItem->GetViolatingRule() )
106 ruleName = aItem->GetViolatingRule()->m_Name;
108 violations.emplace_back( ruleName, aItem->GetErrorMessage(
false ) );
115 for(
const auto& [rule, msg] : violations )
117 <<
"' msg='" << msg.ToStdString() <<
"'" );
124 for(
const auto& [rule, msg] : violations )
127 "diff_propagation_delay reported a spurious violation: "
128 << msg.ToStdString() );
General utilities for PCB file IO for QA programs.
Container for design settings for a BOARD object.
std::map< int, SEVERITY > m_DRCSeverities
std::shared_ptr< DRC_ENGINE > m_DRCEngine
static std::unique_ptr< BOARD > Load(const wxString &aFileName, PCB_IO_MGR::PCB_FILE_T aFormat, PROJECT *aProject, const OPTIONS &aOptions)
void RunTests(EDA_UNITS aUnits, bool aReportAllTrackErrors, bool aTestFootprints, BOARD_COMMIT *aCommit=nullptr)
Run the DRC tests.
void SetViolationHandler(DRC_VIOLATION_HANDLER aHandler)
Set an optional DRC violation handler (receives DRC_ITEMs and positions).
@ KICAD_SEXP
S-expression Pcbnew file format.
Container for project specific data.
@ DRCE_LENGTH_OUT_OF_RANGE
std::string GetPcbnewTestDataDir()
Utility which returns a path to the data directory where the test board files are stored.
wxString boardPath() const
SETTINGS_MANAGER m_settingsManager
BOOST_FIXTURE_TEST_CASE(DRCIssue23868PropagationDelayCacheAfterLoad, DRC_ISSUE_23868_FIXTURE)
BOOST_REQUIRE(intersection.has_value()==c.ExpectedIntersection.has_value())
BOOST_CHECK_MESSAGE(totalMismatches==0, std::to_string(totalMismatches)+" board(s) with strategy disagreements")
BOOST_TEST_MESSAGE("\n=== Real-World Polygon PIP Benchmark ===\n"<< formatTable(table))
VECTOR2< int32_t > VECTOR2I