KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_drc_via_stack.cpp File Reference
#include <fstream>
#include <memory>
#include <wx/filename.h>
#include <qa_utils/file_utils.h>
#include <qa_utils/wx_utils/unit_test_utils.h>
#include <pcbnew_utils/board_file_utils.h>
#include <board.h>
#include <board_design_settings.h>
#include <board_stackup_manager/board_stackup.h>
#include <board_stackup_manager/stackup_predefined_prms.h>
#include <common.h>
#include <lset.h>
#include <padstack.h>
#include <pcb_track.h>
#include <generators/pcb_via_stack.h>
#include <drc/drc_engine.h>
#include <drc/drc_item.h>
#include <drc/drc_rule_parser.h>
#include <pcbnew_utils/board_test_utils.h>
#include <reporter.h>
#include <settings/settings_manager.h>
#include <widgets/report_severity.h>

Go to the source code of this file.

Classes

struct  VIA_STACK_DRC_FIXTURE
 

Functions

static PCB_VIAmakeMicrovia (BOARD *aBoard, const VECTOR2I &aPos, PCB_LAYER_ID aTop, PCB_LAYER_ID aBottom, bool aFilled)
 
static PCB_VIA_STACKmakeStack (BOARD *aBoard, PCB_LAYER_ID aStart, PCB_LAYER_ID aEnd)
 
 BOOST_FIXTURE_TEST_CASE (GoodStackNoViolations, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (StackNotTilingItsSpanReported, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (UnfilledInnerHopReported, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (StackTooDeepReported, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (LooseStackedMicroviasReportNotFilled, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (LooseStackedMicroviasReportDepth, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (CoaxialButSeparatedMicroviasAreNotOneStack, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (GeneratorStackIsNotReportedTwice, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (OverlappingButOffsetMicroviasAreOneStructure, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (ClearOfTheViaBelowIsAStaggerNotAStack, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (EveryHopOfAStackMustBeFilled, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (ALoneMicroviaMayBeUnfilled, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (MicroviaTooDeepForItsDiameterIsReported, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AspectRatioIsSilentWithoutALimit, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AspectRatioSurvivesTheOtherChecksBeingIgnored, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AspectRatioNeedsStackupThicknesses, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (MicroviaStackDepthRuleIsHonoured, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (ZeroSpanMicroviasDoNotMultiplyViolations, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AspectRatioCountsEveryDielectricSublayer, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AspectRatioUsesTheFoilTheLaserEnters, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (FillFromBoardHonoursTheBoardDefault, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AViaCarriedTwiceIsReportedOnce, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (TouchingHolesFormAColumn, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (MicroviaThroughCoreIsReported, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (ASecondHopSharingALandingViaIsStillChecked, VIA_STACK_DRC_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (AnIgnoredAspectRatioDoesNotStopTheCoreCheck, VIA_STACK_DRC_FIXTURE)
 

Function Documentation

◆ BOOST_FIXTURE_TEST_CASE() [1/26]

BOOST_FIXTURE_TEST_CASE ( ALoneMicroviaMayBeUnfilled ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 333 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [2/26]

◆ BOOST_FIXTURE_TEST_CASE() [3/26]

BOOST_FIXTURE_TEST_CASE ( ASecondHopSharingALandingViaIsStillChecked ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 665 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [4/26]

◆ BOOST_FIXTURE_TEST_CASE() [5/26]

◆ BOOST_FIXTURE_TEST_CASE() [6/26]

◆ BOOST_FIXTURE_TEST_CASE() [7/26]

◆ BOOST_FIXTURE_TEST_CASE() [8/26]

◆ BOOST_FIXTURE_TEST_CASE() [9/26]

BOOST_FIXTURE_TEST_CASE ( AViaCarriedTwiceIsReportedOnce ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 573 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [10/26]

BOOST_FIXTURE_TEST_CASE ( ClearOfTheViaBelowIsAStaggerNotAStack ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 309 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [11/26]

BOOST_FIXTURE_TEST_CASE ( CoaxialButSeparatedMicroviasAreNotOneStack ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 272 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [12/26]

BOOST_FIXTURE_TEST_CASE ( EveryHopOfAStackMustBeFilled ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 322 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [13/26]

BOOST_FIXTURE_TEST_CASE ( FillFromBoardHonoursTheBoardDefault ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 561 of file test_drc_via_stack.cpp.

◆ BOOST_FIXTURE_TEST_CASE() [14/26]

BOOST_FIXTURE_TEST_CASE ( GeneratorStackIsNotReportedTwice ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 286 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [15/26]

◆ BOOST_FIXTURE_TEST_CASE() [16/26]

BOOST_FIXTURE_TEST_CASE ( LooseStackedMicroviasReportDepth ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 259 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [17/26]

BOOST_FIXTURE_TEST_CASE ( LooseStackedMicroviasReportNotFilled ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 249 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [18/26]

BOOST_FIXTURE_TEST_CASE ( MicroviaStackDepthRuleIsHonoured ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 442 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [19/26]

◆ BOOST_FIXTURE_TEST_CASE() [20/26]

◆ BOOST_FIXTURE_TEST_CASE() [21/26]

BOOST_FIXTURE_TEST_CASE ( OverlappingButOffsetMicroviasAreOneStructure ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 298 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [22/26]

BOOST_FIXTURE_TEST_CASE ( StackNotTilingItsSpanReported ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 215 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [23/26]

BOOST_FIXTURE_TEST_CASE ( StackTooDeepReported ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 236 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [24/26]

BOOST_FIXTURE_TEST_CASE ( TouchingHolesFormAColumn ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 584 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [25/26]

BOOST_FIXTURE_TEST_CASE ( UnfilledInnerHopReported ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 225 of file test_drc_via_stack.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_FIXTURE_TEST_CASE() [26/26]

BOOST_FIXTURE_TEST_CASE ( ZeroSpanMicroviasDoNotMultiplyViolations ,
VIA_STACK_DRC_FIXTURE  )

Definition at line 469 of file test_drc_via_stack.cpp.

◆ makeMicrovia()

◆ makeStack()

static PCB_VIA_STACK * makeStack ( BOARD * aBoard,
PCB_LAYER_ID aStart,
PCB_LAYER_ID aEnd )
static