Fix testcase crash when progressReporter was null.
(And it helps if the DRC tester you're trying to test is actually in the make file.)
This commit is contained in:
parent
6a7266d589
commit
b4229d9a3e
|
@ -238,6 +238,7 @@ set( PCBNEW_DRC_SRCS
|
||||||
drc/drc_test_provider_disallow.cpp
|
drc/drc_test_provider_disallow.cpp
|
||||||
drc/drc_test_provider_connectivity.cpp
|
drc/drc_test_provider_connectivity.cpp
|
||||||
drc/drc_test_provider_copper_clearance.cpp
|
drc/drc_test_provider_copper_clearance.cpp
|
||||||
|
drc/drc_test_provider_courtyard_clearance.cpp
|
||||||
drc/drc_test_provider_edge_clearance.cpp
|
drc/drc_test_provider_edge_clearance.cpp
|
||||||
drc/drc_test_provider_hole_clearance.cpp
|
drc/drc_test_provider_hole_clearance.cpp
|
||||||
drc/drc_test_provider_hole_size.cpp
|
drc/drc_test_provider_hole_size.cpp
|
||||||
|
|
|
@ -405,13 +405,15 @@ void DRC_ENGINE::RunTests( EDA_UNITS aUnits, bool aTestTracksAgainstZones,
|
||||||
m_reportAllTrackErrors = aReportAllTrackErrors;
|
m_reportAllTrackErrors = aReportAllTrackErrors;
|
||||||
m_testFootprints = aTestFootprints;
|
m_testFootprints = aTestFootprints;
|
||||||
|
|
||||||
|
if( m_progressReporter )
|
||||||
|
{
|
||||||
int phases = 0;
|
int phases = 0;
|
||||||
|
|
||||||
for( DRC_TEST_PROVIDER* provider : m_testProviders )
|
for( DRC_TEST_PROVIDER* provider : m_testProviders )
|
||||||
phases += provider->GetNumPhases();
|
phases += provider->GetNumPhases();
|
||||||
|
|
||||||
if( m_progressReporter )
|
|
||||||
m_progressReporter->AddPhases( phases );
|
m_progressReporter->AddPhases( phases );
|
||||||
|
}
|
||||||
|
|
||||||
for( int ii = DRCE_FIRST; ii < DRCE_LAST; ++ii )
|
for( int ii = DRCE_FIRST; ii < DRCE_LAST; ++ii )
|
||||||
{
|
{
|
||||||
|
|
|
@ -302,6 +302,7 @@ void DoCourtyardInvalidTest( const COURTYARD_INVALID_CASE& aCase,
|
||||||
[&]( const std::shared_ptr<DRC_ITEM>& aItem, wxPoint aPos )
|
[&]( const std::shared_ptr<DRC_ITEM>& aItem, wxPoint aPos )
|
||||||
{
|
{
|
||||||
if( aItem->GetErrorCode() == DRCE_OVERLAPPING_FOOTPRINTS
|
if( aItem->GetErrorCode() == DRCE_OVERLAPPING_FOOTPRINTS
|
||||||
|
|| aItem->GetErrorCode() == DRCE_MALFORMED_COURTYARD
|
||||||
|| aItem->GetErrorCode() == DRCE_MISSING_COURTYARD )
|
|| aItem->GetErrorCode() == DRCE_MISSING_COURTYARD )
|
||||||
{
|
{
|
||||||
markers.push_back( std::make_unique<MARKER_PCB>( aItem, aPos ) );
|
markers.push_back( std::make_unique<MARKER_PCB>( aItem, aPos ) );
|
||||||
|
|
|
@ -471,6 +471,7 @@ static void DoCourtyardOverlapTest( const COURTYARD_OVERLAP_TEST_CASE& aCase,
|
||||||
[&]( const std::shared_ptr<DRC_ITEM>& aItem, wxPoint aPos )
|
[&]( const std::shared_ptr<DRC_ITEM>& aItem, wxPoint aPos )
|
||||||
{
|
{
|
||||||
if( aItem->GetErrorCode() == DRCE_OVERLAPPING_FOOTPRINTS
|
if( aItem->GetErrorCode() == DRCE_OVERLAPPING_FOOTPRINTS
|
||||||
|
|| aItem->GetErrorCode() == DRCE_MALFORMED_COURTYARD
|
||||||
|| aItem->GetErrorCode() == DRCE_MISSING_COURTYARD )
|
|| aItem->GetErrorCode() == DRCE_MISSING_COURTYARD )
|
||||||
{
|
{
|
||||||
markers.push_back( std::make_unique<MARKER_PCB>( aItem, aPos ) );
|
markers.push_back( std::make_unique<MARKER_PCB>( aItem, aPos ) );
|
||||||
|
|
Loading…
Reference in New Issue