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>
#include <lib_id.h>
#include <atomic>

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)
 
RULE_AREAfindRuleAreaByPlacementGroup (MULTICHANNEL_TOOL *aTool, const wxString &aGroupName)
 
int countZonesByNameInRuleArea (BOARD *aBoard, const wxString &aZoneName, const RULE_AREA &aRuleArea)
 
 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).
 
 BOOST_FIXTURE_TEST_CASE (RepeatLayoutRespectsZoneLayerSetsForOtherItems, MULTICHANNEL_TEST_FIXTURE)
 Test that "copy other items" only copies zones whose full layer sets are inside both source and target rule area layer sets (issue 22983).
 
 BOOST_FIXTURE_TEST_CASE (TopologyMatchDottedRefDes, MULTICHANNEL_TEST_FIXTURE)
 Test that topology matching works correctly with dotted reference designators used in multi-channel designs (issue 20058).
 
 BOOST_FIXTURE_TEST_CASE (GenerateRuleAreasIncludesChildSheets, MULTICHANNEL_TEST_FIXTURE)
 Test that GeneratePotentialRuleAreas includes components from child sheets when generating rule areas for a parent sheet (issue 20016).
 
 BOOST_FIXTURE_TEST_CASE (FindIsomorphismCancellation, MULTICHANNEL_TEST_FIXTURE)
 Test that FindIsomorphism respects cancellation and reports progress through the ISOMORPHISM_PARAMS interface.
 

Function Documentation

◆ BOOST_FIXTURE_TEST_CASE() [1/7]

◆ BOOST_FIXTURE_TEST_CASE() [2/7]

BOOST_FIXTURE_TEST_CASE ( GenerateRuleAreasIncludesChildSheets ,
MULTICHANNEL_TEST_FIXTURE  )

Test that GeneratePotentialRuleAreas includes components from child sheets when generating rule areas for a parent sheet (issue 20016).

The vme-wren board has hierarchical sheets like /io_drivers_fp/bank0/ which contains child sheets /io_drivers_fp/bank0/io01/ through io78/. The parent sheet's rule area should include all components from child sheets.

Definition at line 620 of file test_multichannel.cpp.

References BOOST_CHECK_EQUAL(), BOOST_REQUIRE(), BOOST_TEST_MESSAGE(), MULTICHANNEL_TOOL::GeneratePotentialRuleAreas(), MULTICHANNEL_TOOL::GetData(), KI_TEST::LoadBoard(), RULE_AREA::m_components, RULE_AREA::m_sheetPath, TOOL_MANAGER::RegisterTool(), and TOOL_MANAGER::SetEnvironment().

◆ BOOST_FIXTURE_TEST_CASE() [3/7]

◆ BOOST_FIXTURE_TEST_CASE() [4/7]

◆ BOOST_FIXTURE_TEST_CASE() [5/7]

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 373 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.

◆ BOOST_FIXTURE_TEST_CASE() [6/7]

◆ BOOST_FIXTURE_TEST_CASE() [7/7]

BOOST_FIXTURE_TEST_CASE ( TopologyMatchDottedRefDes ,
MULTICHANNEL_TEST_FIXTURE  )

Test that topology matching works correctly with dotted reference designators used in multi-channel designs (issue 20058).

Reference designators like TRIM_1.1 and TRIM_2.1 should be considered the same kind because they share the base prefix "TRIM_".

Definition at line 526 of file test_multichannel.cpp.

References FOOTPRINT::Add(), BOOST_CHECK_EQUAL(), BOOST_TEST_MESSAGE(), FOOTPRINT::Pads(), result, FOOTPRINT::SetFPID(), BOARD_CONNECTED_ITEM::SetNetCode(), PAD::SetNumber(), and FOOTPRINT::SetReference().

◆ countZonesByNameInRuleArea()

int countZonesByNameInRuleArea ( BOARD * aBoard,
const wxString & aZoneName,
const RULE_AREA & aRuleArea )

◆ findRuleAreaByPartialName()

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

◆ findRuleAreaByPlacementGroup()

RULE_AREA * findRuleAreaByPlacementGroup ( MULTICHANNEL_TOOL * aTool,
const wxString & aGroupName )