KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_multichannel.cpp File Reference
#include <qa_utils/wx_utils/unit_test_utils.h>
#include <pcbnew_utils/board_test_utils.h>
#include <board.h>
#include <board_design_settings.h>
#include <pad.h>
#include <pcb_track.h>
#include <pcb_text.h>
#include <pcb_field.h>
#include <footprint.h>
#include <zone.h>
#include <drc/drc_item.h>
#include <settings/settings_manager.h>
#include <tools/multichannel_tool.h>
#include <connectivity/topo_match.h>

Go to the source code of this file.

Classes

struct  MULTICHANNEL_TEST_FIXTURE
 
class  MOCK_TOOLS_HOLDER
 

Functions

RULE_AREAfindRuleAreaByPartialName (MULTICHANNEL_TOOL *aTool, const wxString &aName)
 
 BOOST_FIXTURE_TEST_CASE (MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (RepeatLayoutCopiesFootprintProperties, MULTICHANNEL_TEST_FIXTURE)
 Test that repeat layout copies footprint properties including field visibility, text positions, and 3D models (issue 22548).
 
 BOOST_FIXTURE_TEST_CASE (RepeatLayoutDoesNotRemoveReferenceVias, MULTICHANNEL_TEST_FIXTURE)
 Test that repeat layout does not remove vias from the reference area when a copper zone has the same name as one of the rule areas (issue 21184).
 

Function Documentation

◆ BOOST_FIXTURE_TEST_CASE() [1/3]

◆ BOOST_FIXTURE_TEST_CASE() [2/3]

◆ BOOST_FIXTURE_TEST_CASE() [3/3]

BOOST_FIXTURE_TEST_CASE ( RepeatLayoutDoesNotRemoveReferenceVias ,
MULTICHANNEL_TEST_FIXTURE  )

Test that repeat layout does not remove vias from the reference area when a copper zone has the same name as one of the rule areas (issue 21184).

The bug occurred because enclosedByArea() matched zones by name, and when a copper fill zone shared a name with a rule area, items enclosed by either zone could be incorrectly affected.

Definition at line 341 of file test_multichannel.cpp.

References BOOST_CHECK_EQUAL(), BOOST_REQUIRE(), BOOST_TEST_MESSAGE(), MULTICHANNEL_TOOL::CheckRACompatibility(), SHAPE_POLY_SET::Contains(), MULTICHANNEL_TOOL::FindExistingRuleAreas(), MULTICHANNEL_TOOL::GetData(), KI_TEST::LoadBoard(), RULE_AREA::m_ruleName, RULE_AREA::m_zone, ZONE::Outline(), PCB_VIA_T, TOOL_MANAGER::RegisterTool(), MULTICHANNEL_TOOL::RepeatLayout(), result, TOOL_MANAGER::SetEnvironment(), and via.

◆ findRuleAreaByPartialName()

RULE_AREA * findRuleAreaByPartialName ( MULTICHANNEL_TOOL * aTool,
const wxString & aName )