| 
    KiCad PCB EDA Suite
    
   | 
 
#include <qa_utils/wx_utils/unit_test_utils.h>#include <pcbnew_utils/board_construction_utils.h>#include <pcbnew_utils/board_file_utils.h>#include <board.h>#include <board_design_settings.h>#include <footprint.h>#include <pcb_marker.h>#include <drc/drc_item.h>#include <drc/drc_engine.h>#include <widgets/ui_common.h>#include <pcbnew_utils/board_test_utils.h>#include "drc_test_utils.h"Go to the source code of this file.
Classes | |
| struct | RECT_DEFINITION | 
| Simple definition of a rectangle, can be rounded.  More... | |
| struct | COURTYARD_TEST_FP | 
| struct | COURTYARD_COLLISION | 
| struct | COURTYARD_OVERLAP_TEST_CASE | 
| A complete courtyard overlap test case: a name, the board footprint list and the expected collisions.  More... | |
| struct | COURTYARD_TEST_FIXTURE | 
Functions | |
| std::ostream & | operator<< (std::ostream &os, const COURTYARD_COLLISION &aColl) | 
| void | AddRectCourtyard (FOOTPRINT &aFootprint, const RECT_DEFINITION &aRect) | 
| Add a rectangular courtyard outline to a footprint.   | |
| std::unique_ptr< FOOTPRINT > | MakeCourtyardTestFP (BOARD &aBoard, const COURTYARD_TEST_FP &aFPDef) | 
| Construct a FOOTPRINT to use in a courtyard test from a COURTYARD_TEST_FP definition.   | |
| std::unique_ptr< BOARD > | MakeBoard (const std::vector< COURTYARD_TEST_FP > &aFPDefs) | 
| Make a board for courtyard testing.   | |
| static bool | CollisionMatchesExpected (BOARD &aBoard, const PCB_MARKER &aMarker, const COURTYARD_COLLISION &aCollision) | 
| Check if a PCB_MARKER is described by a particular COURTYARD_COLLISION object.   | |
| static void | CheckCollisionsMatchExpected (BOARD &aBoard, const std::vector< std::unique_ptr< PCB_MARKER > > &aMarkers, const std::vector< COURTYARD_COLLISION > &aExpCollisions) | 
| Check that the produced markers match the expected.   | |
| static void | DoCourtyardOverlapTest (const COURTYARD_OVERLAP_TEST_CASE &aCase, const KI_TEST::BOARD_DUMPER &aDumper) | 
| Run a single courtyard overlap testcase.   | |
| BOOST_AUTO_TEST_CASE (OverlapCases) | |
Variables | |
| static std::vector< COURTYARD_OVERLAP_TEST_CASE > | courtyard_cases | 
| void AddRectCourtyard | ( | FOOTPRINT & | aFootprint, | 
| const RECT_DEFINITION & | aRect ) | 
Add a rectangular courtyard outline to a footprint.
Definition at line 97 of file test_drc_courtyard_overlap.cpp.
References B_CrtYd, KI_TEST::DrawRect(), F_CrtYd, RECT_DEFINITION::m_centre, RECT_DEFINITION::m_corner_rad, RECT_DEFINITION::m_front, RECT_DEFINITION::m_size, and pcbIUScale.
Referenced by MakeCourtyardTestFP().
| BOOST_AUTO_TEST_CASE | ( | OverlapCases | ) | 
Definition at line 480 of file test_drc_courtyard_overlap.cpp.
References BOOST_TEST_CONTEXT(), courtyard_cases, and DoCourtyardOverlapTest().
      
  | 
  static | 
Check that the produced markers match the expected.
This does NOT check ordering, as that is not part of the contract of the DRC function.
| aMarkers | list of markers produced by the DRC | 
| aCollisions | list of expected collisions | 
Definition at line 418 of file test_drc_courtyard_overlap.cpp.
References BOOST_CHECK_PREDICATE(), KI_TEST::CheckUnorderedMatches(), CollisionMatchesExpected(), DRCE_OVERLAPPING_FOOTPRINTS, and KI_TEST::IsDrcMarkerOfType().
Referenced by DoCourtyardOverlapTest().
      
  | 
  static | 
Check if a PCB_MARKER is described by a particular COURTYARD_COLLISION object.
Definition at line 388 of file test_drc_courtyard_overlap.cpp.
References MARKER_BASE::GetRCItem(), FOOTPRINT::GetReference(), COURTYARD_COLLISION::m_refdes_a, COURTYARD_COLLISION::m_refdes_b, and BOARD::ResolveItem().
Referenced by CheckCollisionsMatchExpected().
      
  | 
  static | 
Run a single courtyard overlap testcase.
| aCase | The testcase to run. | 
Definition at line 440 of file test_drc_courtyard_overlap.cpp.
References CheckCollisionsMatchExpected(), DRCE_MALFORMED_COURTYARD, DRCE_MISSING_COURTYARD, DRCE_OVERLAPPING_FOOTPRINTS, KI_TEST::BOARD_DUMPER::DumpBoardToFile(), DRC_ENGINE::InitEngine(), COURTYARD_OVERLAP_TEST_CASE::m_case_name, COURTYARD_OVERLAP_TEST_CASE::m_collisions, BOARD_DESIGN_SETTINGS::m_DRCSeverities, COURTYARD_OVERLAP_TEST_CASE::m_fpDefs, MakeBoard(), MM, RPT_SEVERITY_ERROR, RPT_SEVERITY_IGNORE, DRC_ENGINE::RunTests(), and DRC_ENGINE::SetViolationHandler().
Referenced by BOOST_AUTO_TEST_CASE().
| std::unique_ptr< BOARD > MakeBoard | ( | const std::vector< COURTYARD_TEST_FP > & | aFPDefs | ) | 
Make a board for courtyard testing.
| aFPDefs | the list of footprint definitions to add to the board | 
Definition at line 130 of file test_drc_courtyard_overlap.cpp.
References MakeCourtyardTestFP().
Referenced by DoCourtyardOverlapTest().
| std::unique_ptr< FOOTPRINT > MakeCourtyardTestFP | ( | BOARD & | aBoard, | 
| const COURTYARD_TEST_FP & | aFPDef ) | 
Construct a FOOTPRINT to use in a courtyard test from a COURTYARD_TEST_FP definition.
Definition at line 110 of file test_drc_courtyard_overlap.cpp.
References AddRectCourtyard(), COURTYARD_TEST_FP::m_pos, COURTYARD_TEST_FP::m_rects, and COURTYARD_TEST_FP::m_refdes.
Referenced by MakeBoard().
| std::ostream & operator<< | ( | std::ostream & | os, | 
| const COURTYARD_COLLISION & | aColl ) | 
Definition at line 75 of file test_drc_courtyard_overlap.cpp.
References COURTYARD_COLLISION::m_refdes_a, and COURTYARD_COLLISION::m_refdes_b.
      
  | 
  static | 
Definition at line 154 of file test_drc_courtyard_overlap.cpp.
Referenced by BOOST_AUTO_TEST_CASE().