59 wxS(
"issue24409/issue24409.kicad_sch" );
69 BOOST_REQUIRE_EQUAL( sheets.size(), 4u );
74 BOOST_REQUIRE_EQUAL( refs.
GetCount(), 6u );
76 std::set<wxString> seenRefs;
78 for(
size_t i = 0; i < refs.
GetCount(); ++i )
79 seenRefs.insert( refs[i].GetRef() );
81 BOOST_CHECK( seenRefs.count( wxS(
"R1" ) ) );
82 BOOST_CHECK( seenRefs.count( wxS(
"R2" ) ) );
83 BOOST_CHECK( seenRefs.count( wxS(
"R3" ) ) );
84 BOOST_CHECK( seenRefs.count( wxS(
"R4" ) ) );
85 BOOST_CHECK( seenRefs.count( wxS(
"R5" ) ) );
86 BOOST_CHECK( seenRefs.count( wxS(
"R6" ) ) );
97 sch->ConnectionGraph()->RunERC();
100 int unconnectedMarkers = 0;
101 std::set<wxString> markedRefs;
103 std::set<const SCH_SCREEN*> visitedScreens;
110 if( !visitedScreens.insert( screen ).second )
116 std::shared_ptr<ERC_ITEM> ercItem =
117 std::dynamic_pointer_cast<ERC_ITEM>( marker->
GetRCItem() );
122 ++unconnectedMarkers;
125 ? ercItem->GetSpecificSheetPath()
127 EDA_ITEM* erred = sch->ResolveItem( ercItem->GetMainItemID(),
nullptr,
true );
132 markedRefs.insert( parent->GetRef( &markerSheet ) );
141 "Expected 4 deduplicated pin_not_connected markers, got "
142 << unconnectedMarkers );
148 for(
const wxString& ref : { wxS(
"R1" ), wxS(
"R2" ) } )
151 "Missing pin_not_connected marker for " << ref
152 <<
" on the first sheet instance" );
155 for(
const wxString& ref : { wxS(
"R3" ), wxS(
"R4" ), wxS(
"R5" ), wxS(
"R6" ) } )
158 "Unexpected pin_not_connected marker for " << ref
159 <<
"; dedup should keep only the first instance" );
166 std::shared_ptr<SHEETLIST_ERC_ITEMS_PROVIDER> markersProvider =
167 std::make_shared<SHEETLIST_ERC_ITEMS_PROVIDER>( sch.get() );
173 for(
const wxString& ref : { wxS(
"R1" ), wxS(
"R2" ) } )
176 "ERC text report missing pin_not_connected for "
177 << ref <<
"\n" << report );
180 for(
const wxString& ref : { wxS(
"R3" ), wxS(
"R4" ), wxS(
"R5" ), wxS(
"R6" ) } )
183 "ERC text report unexpectedly mentions "
184 << ref <<
"\n" << report );
void GetSymbols(SCH_REFERENCE_LIST &aReferences, SYMBOL_FILTER aSymbolFilter, bool aForceIncludeOrphanSymbols=false) const
Add a SCH_REFERENCE object to aReferences for each symbol in the list of sheets.