KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_downgrade_oracle.cpp File Reference
#include <boost/test/unit_test.hpp>
#include <cctype>
#include <fstream>
#include <iterator>
#include <memory>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include <base_units.h>
#include <board.h>
#include <board_design_settings.h>
#include <board_stackup_manager/board_stackup.h>
#include <footprint.h>
#include <constraints/pcb_constraint.h>
#include <generators/pcb_via_stack.h>
#include <generators/pcb_via_stitch.h>
#include <io/kicad/legacy_format.h>
#include <mmh3_hash.h>
#include <netinfo.h>
#include <pad.h>
#include <pcb_barcode.h>
#include <pcb_group.h>
#include <pcb_grid_item.h>
#include <pcb_drill_chart.h>
#include <pcb_drill_map.h>
#include <pcb_point.h>
#include <pcb_reference_image.h>
#include <pcb_shape.h>
#include <pcb_table.h>
#include <pcb_tablecell.h>
#include <pcb_textbox.h>
#include <pcb_track.h>
#include <pcb_io/kicad_sexpr/pcb_io_kicad_sexpr.h>
#include <zone.h>
#include <downgrade/board_downgrade.h>
#include <downgrade_scan.h>
#include <downgrade_target.h>
#include <settings/settings_manager.h>
#include <pcbnew_utils/board_file_utils.h>
#include <pcbnew_utils/board_test_utils.h>
#include <qa_utils/downgrade_oracle_utils.h>
#include <qa_utils/downgrade_golden_utils.h>

Go to the source code of this file.

Functions

static void checkExportUsesOnlyKnownTokens (const DOWNGRADE_TARGET &aTarget, const std::string &aTokenFileName)
 
 BOOST_AUTO_TEST_CASE (BoardToKicad9UsesOnlyKnownTokens)
 
 BOOST_AUTO_TEST_CASE (BoardToKicad10UsesOnlyKnownTokens)
 
static PCB_REFERENCE_IMAGE * addTransformFeatures (BOARD &aBoard)
 
static void checkBoardTransformCoverage (const COMPATIBILITY_REPORT &aReport, const DOWNGRADE_TARGET &aTarget, bool aDropInsteadOfApproximate)
 
static void checkTransformedBoardUsesOnlyKnownTokens (const DOWNGRADE_TARGET &aTarget, const std::string &aTokenFileName)
 
 BOOST_AUTO_TEST_CASE (TransformedBoardToKicad9UsesOnlyKnownTokens)
 
 BOOST_AUTO_TEST_CASE (TransformedBoardToKicad10UsesOnlyKnownTokens)
 
static void checkNativeBoardGolden (const DOWNGRADE_TARGET &aTarget, const std::string &aRelease, const std::string &aBoard, const std::string &aReference, size_t aExpectedDrops, size_t aExpectedLowerings, bool aDropInsteadOfApproximate=false)
 
 BOOST_AUTO_TEST_CASE (BoardMatchesNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (BoardMatchesNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (LoweredGraphicsMatchNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (GraphicsMatchNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (DroppedGraphicsMatchNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (DropApproximationsKeepsNativeKicad10GraphicsGolden)
 
static void checkNativeFootprintGolden (const DOWNGRADE_TARGET &aTarget, const std::string &aRelease, const std::string &aReference, bool aDropInsteadOfApproximate=false)
 
static void checkCustomPadArcSurvives (const DOWNGRADE_TARGET &aTarget)
 
 BOOST_AUTO_TEST_CASE (CustomPadArcSurvivesExportToKicad9)
 
 BOOST_AUTO_TEST_CASE (CustomPadArcSurvivesExportToKicad10)
 
 BOOST_AUTO_TEST_CASE (ModernBoardMetadataMatchesNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (ModernBoardMetadataMatchesNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (BoardMetadataMatchesNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (BoardMetadataMatchesNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (FootprintMatchesNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (FootprintMatchesNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (RequiredReleaseLookupFailsForMissingId)
 
 BOOST_AUTO_TEST_CASE (GoldenComparisonDetectsDesignAndSettingsChanges)
 
 BOOST_AUTO_TEST_CASE (HistoricalPlotSettingsDoNotUseCurrentFormatters)
 
 BOOST_AUTO_TEST_CASE (HistoricalCustomPaperUsesReleasePrecision)
 
 BOOST_AUTO_TEST_CASE (UnsupportedPlotSelectionIsReportedAndReset)
 
static std::string historicalTextEffects (const EDA_TEXT &aText, bool aV9, int aControlBits=0)
 
 BOOST_AUTO_TEST_CASE (HistoricalTextEffectsKeepReleaseHideAndAttributes)
 
 BOOST_AUTO_TEST_CASE (HistoricalTextThicknessKeepsAutomaticZeroAndExplicitWidths)
 
 BOOST_AUTO_TEST_CASE (HistoricalDefaultTextFormattingKeepsNative10AutomaticWidthPredicate)
 
 BOOST_AUTO_TEST_CASE (HistoricalTitleAndStrokeKeepPinnedCommonGrammar)
 
 BOOST_AUTO_TEST_CASE (HistoricalEmbeddedFilesKeepEmptyReleasePolicy)
 
 BOOST_AUTO_TEST_CASE (HistoricalEmbeddedFilesKeepValidDataAndNativeChunkDelimiters)
 
static std::string historicalEmbeddedFiles (const EMBEDDED_FILES &aFiles, bool aV9, bool aWriteData)
 
static std::string releaseEmbeddedChecksum (const std::vector< char > &aPayload)
 
 BOOST_AUTO_TEST_CASE (HistoricalEmbeddedFilesRestoreReleaseChecksumsForAllTailLengths)
 
 BOOST_AUTO_TEST_CASE (HistoricalEmbeddedFilesDecodeEncodedOnlyAttachmentsWithoutMutatingSource)
 
 BOOST_AUTO_TEST_CASE (HistoricalEmbeddedFilesRejectMalformedEncodedOnlyAttachments)
 
 BOOST_AUTO_TEST_CASE (HistoricalEmbeddedFilesRestoreCommittedWorksheetChecksums)
 

Variables

static const DOWNGRADE_TARGET & kicad9 = KI_TEST::RequireDowngradeTarget( wxT( "9.0" ) )
 
static const DOWNGRADE_TARGET & kicad10 = KI_TEST::RequireDowngradeTarget( wxT( "10.0" ) )
 

Function Documentation

◆ addTransformFeatures()

static PCB_REFERENCE_IMAGE * addTransformFeatures ( BOARD & aBoard)
static

Definition at line 121 of file test_downgrade_oracle.cpp.

References BOARD::Add(), FOOTPRINT::Add(), PCB_CONSTRAINT::AddMember(), PAD::AddPrimitive(), FOOTPRINT::AddVariant(), PADSTACK::ALL_LAYERS, ANGLE_0, ANGLE_90, ZONE::AppendCorner(), ARROW, BOOST_REQUIRE(), BS_ITEM_TYPE_DIELECTRIC, BURIED, COUNTERBORE, CUSTOM, DJORDJEVIC_SARKAR, BOARD::Drawings(), PADSTACK::Drill(), Dwgs_User, ELLIPSE, ELLIPSE_ARC, FOOTPRINT::EnsureExtrudedBody(), F_Cu, F_SilkS, FILLED_SHAPE, FOOTPRINT, BOARD::GetDesignSettings(), BOARD_DESIGN_SETTINGS::GetDrillSymbolProfile(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), group, HATCH, ZONE_LAYER_PROPERTIES::hatching_offset, HORIZONTAL, image, In1_Cu, In2_Cu, PADSTACK::DRILL_PROPS::is_capped, ZONE::LayerProperties(), EXTRUDED_3D_BODY::m_height, EDA_ITEM::m_Uuid, BOARD_DESIGN_SETTINGS::m_ZoneLayerProperties, KI_TEST::MakePngWithFractionalPixelsPerCm(), PAD, pad, PCB_VIA::Padstack(), PCB_DRILL_CHART_T, pcbIUScale, PRESSFIT, RECTANGLE, SEGMENT, PCB_SHAPE::SetCornerRadius(), EDA_ITEM::SetCustomProperty(), FOOTPRINT_VARIANT::SetDNP(), PCB_VIA::SetDrill(), FOOTPRINT::SetDuplicatePadNumbersAreJumpers(), PCB_SHAPE::SetEllipseCenter(), PCB_SHAPE::SetEllipseEndAngle(), PCB_SHAPE::SetEllipseMajorRadius(), PCB_SHAPE::SetEllipseMinorRadius(), PCB_SHAPE::SetEllipseStartAngle(), PCB_SHAPE::SetEnd(), EDA_SHAPE::SetEndEndingStyle(), FOOTPRINT::SetExcludedFromSim(), EDA_SHAPE::SetFillMode(), PCB_BARCODE::SetHeight(), BOARD_ITEM::SetIsKnockout(), BOARD_ITEM::SetLayer(), PCB_BARCODE::SetLayer(), PCB_SHAPE::SetLayer(), PCB_TABLE::SetLayer(), ZONE::SetLayer(), PCB_VIA::SetLayerPair(), DRILL_SYMBOL_PROFILE::SetName(), NETINFO_ITEM::SetNetChain(), PAD::SetNumber(), PAD::SetShape(), PCB_SHAPE::SetStart(), EDA_TEXT::SetText(), PCB_BARCODE::SetText(), PADSTACK::SetUnconnectedLayerMode(), FOOTPRINT::SetUnitInfo(), BOARD::SetVariantNames(), PCB_VIA::SetViaType(), PCB_BARCODE::SetWidth(), PCB_SHAPE::SetWidth(), PCB_VIA::SetWidth(), SOURCE, START_END_ONLY, table, and via.

Referenced by checkTransformedBoardUsesOnlyKnownTokens().

◆ BOOST_AUTO_TEST_CASE() [1/33]

BOOST_AUTO_TEST_CASE ( BoardMatchesNativeKicad10Golden )

Definition at line 494 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [2/33]

BOOST_AUTO_TEST_CASE ( BoardMatchesNativeKicad9Golden )

Definition at line 487 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [3/33]

BOOST_AUTO_TEST_CASE ( BoardMetadataMatchesNativeKicad10Golden )

Definition at line 617 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [4/33]

BOOST_AUTO_TEST_CASE ( BoardMetadataMatchesNativeKicad9Golden )

Definition at line 611 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [5/33]

BOOST_AUTO_TEST_CASE ( BoardToKicad10UsesOnlyKnownTokens )

Definition at line 115 of file test_downgrade_oracle.cpp.

References checkExportUsesOnlyKnownTokens(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [6/33]

BOOST_AUTO_TEST_CASE ( BoardToKicad9UsesOnlyKnownTokens )

Definition at line 109 of file test_downgrade_oracle.cpp.

References checkExportUsesOnlyKnownTokens(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [7/33]

BOOST_AUTO_TEST_CASE ( CustomPadArcSurvivesExportToKicad10 )

Definition at line 593 of file test_downgrade_oracle.cpp.

References checkCustomPadArcSurvives(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [8/33]

BOOST_AUTO_TEST_CASE ( CustomPadArcSurvivesExportToKicad9 )

Definition at line 587 of file test_downgrade_oracle.cpp.

References checkCustomPadArcSurvives(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [9/33]

BOOST_AUTO_TEST_CASE ( DropApproximationsKeepsNativeKicad10GraphicsGolden )

Definition at line 518 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [10/33]

BOOST_AUTO_TEST_CASE ( DroppedGraphicsMatchNativeKicad9Golden )

Definition at line 512 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [11/33]

BOOST_AUTO_TEST_CASE ( FootprintMatchesNativeKicad10Golden )

Definition at line 629 of file test_downgrade_oracle.cpp.

References checkNativeFootprintGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [12/33]

BOOST_AUTO_TEST_CASE ( FootprintMatchesNativeKicad9Golden )

Definition at line 623 of file test_downgrade_oracle.cpp.

References checkNativeFootprintGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [13/33]

BOOST_AUTO_TEST_CASE ( GoldenComparisonDetectsDesignAndSettingsChanges )

◆ BOOST_AUTO_TEST_CASE() [14/33]

BOOST_AUTO_TEST_CASE ( GraphicsMatchNativeKicad10Golden )

Definition at line 506 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [15/33]

BOOST_AUTO_TEST_CASE ( HistoricalCustomPaperUsesReleasePrecision )

◆ BOOST_AUTO_TEST_CASE() [16/33]

BOOST_AUTO_TEST_CASE ( HistoricalDefaultTextFormattingKeepsNative10AutomaticWidthPredicate )

◆ BOOST_AUTO_TEST_CASE() [17/33]

BOOST_AUTO_TEST_CASE ( HistoricalEmbeddedFilesDecodeEncodedOnlyAttachmentsWithoutMutatingSource )

◆ BOOST_AUTO_TEST_CASE() [18/33]

◆ BOOST_AUTO_TEST_CASE() [19/33]

◆ BOOST_AUTO_TEST_CASE() [20/33]

BOOST_AUTO_TEST_CASE ( HistoricalEmbeddedFilesRejectMalformedEncodedOnlyAttachments )

◆ BOOST_AUTO_TEST_CASE() [21/33]

BOOST_AUTO_TEST_CASE ( HistoricalEmbeddedFilesRestoreCommittedWorksheetChecksums )

◆ BOOST_AUTO_TEST_CASE() [22/33]

BOOST_AUTO_TEST_CASE ( HistoricalEmbeddedFilesRestoreReleaseChecksumsForAllTailLengths )

◆ BOOST_AUTO_TEST_CASE() [23/33]

BOOST_AUTO_TEST_CASE ( HistoricalPlotSettingsDoNotUseCurrentFormatters )

◆ BOOST_AUTO_TEST_CASE() [24/33]

BOOST_AUTO_TEST_CASE ( HistoricalTextEffectsKeepReleaseHideAndAttributes )

◆ BOOST_AUTO_TEST_CASE() [25/33]

BOOST_AUTO_TEST_CASE ( HistoricalTextThicknessKeepsAutomaticZeroAndExplicitWidths )

◆ BOOST_AUTO_TEST_CASE() [26/33]

◆ BOOST_AUTO_TEST_CASE() [27/33]

BOOST_AUTO_TEST_CASE ( LoweredGraphicsMatchNativeKicad9Golden )

Definition at line 500 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [28/33]

BOOST_AUTO_TEST_CASE ( ModernBoardMetadataMatchesNativeKicad10Golden )

Definition at line 605 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [29/33]

BOOST_AUTO_TEST_CASE ( ModernBoardMetadataMatchesNativeKicad9Golden )

Definition at line 599 of file test_downgrade_oracle.cpp.

References checkNativeBoardGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [30/33]

BOOST_AUTO_TEST_CASE ( RequiredReleaseLookupFailsForMissingId )

Definition at line 635 of file test_downgrade_oracle.cpp.

References KI_TEST::RequireDowngradeTarget().

◆ BOOST_AUTO_TEST_CASE() [31/33]

BOOST_AUTO_TEST_CASE ( TransformedBoardToKicad10UsesOnlyKnownTokens )

◆ BOOST_AUTO_TEST_CASE() [32/33]

BOOST_AUTO_TEST_CASE ( TransformedBoardToKicad9UsesOnlyKnownTokens )

◆ BOOST_AUTO_TEST_CASE() [33/33]

◆ checkBoardTransformCoverage()

static void checkBoardTransformCoverage ( const COMPATIBILITY_REPORT & aReport,
const DOWNGRADE_TARGET & aTarget,
bool aDropInsteadOfApproximate )
static

◆ checkCustomPadArcSurvives()

◆ checkExportUsesOnlyKnownTokens()

static void checkExportUsesOnlyKnownTokens ( const DOWNGRADE_TARGET & aTarget,
const std::string & aTokenFileName )
static

◆ checkNativeBoardGolden()

static void checkNativeBoardGolden ( const DOWNGRADE_TARGET & aTarget,
const std::string & aRelease,
const std::string & aBoard,
const std::string & aReference,
size_t aExpectedDrops,
size_t aExpectedLowerings,
bool aDropInsteadOfApproximate = false )
static

◆ checkNativeFootprintGolden()

static void checkNativeFootprintGolden ( const DOWNGRADE_TARGET & aTarget,
const std::string & aRelease,
const std::string & aReference,
bool aDropInsteadOfApproximate = false )
static

◆ checkTransformedBoardUsesOnlyKnownTokens()

◆ historicalEmbeddedFiles()

static std::string historicalEmbeddedFiles ( const EMBEDDED_FILES & aFiles,
bool aV9,
bool aWriteData )
static

◆ historicalTextEffects()

static std::string historicalTextEffects ( const EDA_TEXT & aText,
bool aV9,
int aControlBits = 0 )
static

◆ releaseEmbeddedChecksum()

static std::string releaseEmbeddedChecksum ( const std::vector< char > & aPayload)
static

Variable Documentation

◆ kicad10

const DOWNGRADE_TARGET& kicad10 = KI_TEST::RequireDowngradeTarget( wxT( "10.0" ) )
static

Definition at line 73 of file test_downgrade_oracle.cpp.

◆ kicad9

const DOWNGRADE_TARGET& kicad9 = KI_TEST::RequireDowngradeTarget( wxT( "9.0" ) )
static

Definition at line 72 of file test_downgrade_oracle.cpp.