KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_sch_downgrade_oracle.cpp File Reference
#include <boost/test/unit_test.hpp>
#include <algorithm>
#include <array>
#include <cctype>
#include <fstream>
#include <functional>
#include <iterator>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <vector>
#include <bitmap_base.h>
#include <embedded_files.h>
#include <font/font.h>
#include <base_units.h>
#include <mmh3_hash.h>
#include <schematic.h>
#include <sch_bitmap.h>
#include <sch_connection.h>
#include <sch_group.h>
#include <sch_rule_area.h>
#include <sch_screen.h>
#include <sch_sheet.h>
#include <lib_symbol.h>
#include <sch_symbol.h>
#include <sch_pin.h>
#include <sch_shape.h>
#include <sch_line.h>
#include <sch_textbox.h>
#include <connection_graph.h>
#include <eeschema_jobs_handler.h>
#include <jobs/job_sch_downgrade.h>
#include <cli/exit_codes.h>
#include <netlist_exporters/netlist_exporter_kicad.h>
#include <richio.h>
#include <downgrade/sch_downgrade.h>
#include <downgrade_scan.h>
#include <downgrade_target.h>
#include <sch_io/kicad_sexpr/sch_io_kicad_sexpr.h>
#include <project/project_file.h>
#include <settings/settings_manager.h>
#include <wx/filefn.h>
#include <wx/filename.h>
#include <wx/image.h>
#include <wx/imagpng.h>
#include <wx/mstream.h>
#include <qa_utils/downgrade_oracle_utils.h>
#include <qa_utils/downgrade_golden_utils.h>
#include <qa_utils/temporary_directory.h>
#include <qa_utils/wx_utils/unit_test_utils.h>
#include <eeschema_test_utils.h>
#include <schematic_file_util.h>

Go to the source code of this file.

Typedefs

using GOLDEN_NET_CONNECTIONS = std::map<std::pair<std::string, std::string>, std::array<std::string, 4>>
 

Functions

static void checkExportUsesOnlyKnownTokens (const DOWNGRADE_TARGET &aTarget, const std::string &aTokenFileName)
 
 BOOST_AUTO_TEST_CASE (SchToKicad9UsesOnlyKnownTokens)
 
 BOOST_AUTO_TEST_CASE (SchToKicad10UsesOnlyKnownTokens)
 
 BOOST_AUTO_TEST_CASE (SymbolLibraryFileDowngradeRoundTrips)
 
 BOOST_AUTO_TEST_CASE (SymbolLibraryV10RoundTrips)
 
 BOOST_AUTO_TEST_CASE (SymbolLibraryWritesParentBeforeChild)
 
 BOOST_AUTO_TEST_CASE (ImageScaleMigratedForV9)
 
 BOOST_AUTO_TEST_CASE (SchematicDtorLeavesProjectSettingsAlone)
 
static std::string downgradeDataPath ()
 
static int runDowngradeJob (JOB_SCH_DOWNGRADE &aJob, REPORTER &aReporter)
 
static SCH_BITMAP * addTransformFeatures (SCH_SCREEN &aScreen)
 
static void checkSchematicTransformCoverage (const COMPATIBILITY_REPORT &aReport, const DOWNGRADE_TARGET &aTarget, bool aDropInsteadOfApproximate)
 
static void checkTransformedSchematicUsesOnlyKnownTokens (const DOWNGRADE_TARGET &aTarget, const std::string &aTokenFileName)
 
 BOOST_AUTO_TEST_CASE (TransformedSchematicToKicad9UsesOnlyKnownTokens)
 
 BOOST_AUTO_TEST_CASE (TransformedSchematicToKicad10UsesOnlyKnownTokens)
 
static std::string netlistValue (const SEXPR::SEXPR &aNode, const std::string &aHead)
 
static GOLDEN_NET_CONNECTIONS netlistConnections (const std::string &aText)
 
static void checkNativeSchematicGolden (const DOWNGRADE_TARGET &aTarget, const std::string &aRelease, bool aDropInsteadOfApproximate=false)
 
static void checkNativeSymbolLibraryGolden (const DOWNGRADE_TARGET &aTarget, const std::string &aRelease)
 
 BOOST_AUTO_TEST_CASE (SymbolLibraryMatchesNativeKicad9Golden)
 
 BOOST_AUTO_TEST_CASE (SymbolLibraryMatchesNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (SchematicMatchesNativeKicad10Golden)
 
 BOOST_AUTO_TEST_CASE (BakedStylesMatchIndependentKicad9DesignAndNetlist)
 
 BOOST_AUTO_TEST_CASE (DroppedStylesKeepIndependentKicad9SupportedDesignAndNetlist)
 
 BOOST_AUTO_TEST_CASE (DropApproximationsKeepsNativeKicad10SchematicGolden)
 
 BOOST_FIXTURE_TEST_CASE (StandaloneKicad10ExportKeepsProjectBusAliasConnectivity, KI_TEST::SCHEMATIC_TEST_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (SelectedVariantPreviewMatchesExportedPositionExclusionLosses, KI_TEST::SCHEMATIC_TEST_FIXTURE)
 
 BOOST_FIXTURE_TEST_CASE (SharedSheetVariantConflictRefusesPreviewAndExportBeforeWriting, KI_TEST::SCHEMATIC_TEST_FIXTURE)
 
 BOOST_AUTO_TEST_CASE (DropApproximationsDryRunAndConsentDoNotWrite)
 
 BOOST_AUTO_TEST_CASE (PublicSchematicJobsRequireFreshOutputsBeforeAnyWrite)
 
 BOOST_AUTO_TEST_CASE (PositionFileExclusionRequiresConsent)
 
 BOOST_AUTO_TEST_CASE (IncompleteSecondaryHierarchyFailsBeforeWriting)
 
static std::vector< const SEXPR::SEXPR * > rawNodes (const SEXPR::SEXPR &aRoot, const std::string &aHead)
 
static double rawNumber (const SEXPR::SEXPR &aNode)
 
 BOOST_AUTO_TEST_CASE (NormalizedClosedPolygonsKeepClosingEdgeInEveryWriterPath)
 
 BOOST_AUTO_TEST_CASE (ExplicitBoldStrokeThicknessUsesLegacyMeaningWithoutMutatingSource)
 
 BOOST_AUTO_TEST_CASE (DerivedSymbolKeywordsPreserveRawOverridesInsteadOfInheritedValues)
 
 BOOST_AUTO_TEST_CASE (EmbeddedAttachmentsUseLegacyChecksumsInSchematicCacheAndLibraryFiles)
 

Variables

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

Typedef Documentation

◆ GOLDEN_NET_CONNECTIONS

using GOLDEN_NET_CONNECTIONS = std::map<std::pair<std::string, std::string>, std::array<std::string, 4>>

Definition at line 562 of file test_sch_downgrade_oracle.cpp.

Function Documentation

◆ addTransformFeatures()

◆ BOOST_AUTO_TEST_CASE() [1/23]

BOOST_AUTO_TEST_CASE ( BakedStylesMatchIndependentKicad9DesignAndNetlist )

Definition at line 800 of file test_sch_downgrade_oracle.cpp.

References checkNativeSchematicGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [2/23]

◆ BOOST_AUTO_TEST_CASE() [3/23]

◆ BOOST_AUTO_TEST_CASE() [4/23]

BOOST_AUTO_TEST_CASE ( DropApproximationsKeepsNativeKicad10SchematicGolden )

Definition at line 812 of file test_sch_downgrade_oracle.cpp.

References checkNativeSchematicGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [5/23]

BOOST_AUTO_TEST_CASE ( DroppedStylesKeepIndependentKicad9SupportedDesignAndNetlist )

Definition at line 806 of file test_sch_downgrade_oracle.cpp.

References checkNativeSchematicGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [6/23]

◆ BOOST_AUTO_TEST_CASE() [7/23]

◆ BOOST_AUTO_TEST_CASE() [8/23]

◆ BOOST_AUTO_TEST_CASE() [9/23]

◆ BOOST_AUTO_TEST_CASE() [10/23]

◆ BOOST_AUTO_TEST_CASE() [11/23]

◆ BOOST_AUTO_TEST_CASE() [12/23]

◆ BOOST_AUTO_TEST_CASE() [13/23]

BOOST_AUTO_TEST_CASE ( SchematicDtorLeavesProjectSettingsAlone )

◆ BOOST_AUTO_TEST_CASE() [14/23]

BOOST_AUTO_TEST_CASE ( SchematicMatchesNativeKicad10Golden )

Definition at line 794 of file test_sch_downgrade_oracle.cpp.

References checkNativeSchematicGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [15/23]

BOOST_AUTO_TEST_CASE ( SchToKicad10UsesOnlyKnownTokens )

Definition at line 141 of file test_sch_downgrade_oracle.cpp.

References checkExportUsesOnlyKnownTokens(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [16/23]

BOOST_AUTO_TEST_CASE ( SchToKicad9UsesOnlyKnownTokens )

Definition at line 135 of file test_sch_downgrade_oracle.cpp.

References checkExportUsesOnlyKnownTokens(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [17/23]

◆ BOOST_AUTO_TEST_CASE() [18/23]

BOOST_AUTO_TEST_CASE ( SymbolLibraryMatchesNativeKicad10Golden )

Definition at line 788 of file test_sch_downgrade_oracle.cpp.

References checkNativeSymbolLibraryGolden(), and kicad10.

◆ BOOST_AUTO_TEST_CASE() [19/23]

BOOST_AUTO_TEST_CASE ( SymbolLibraryMatchesNativeKicad9Golden )

Definition at line 782 of file test_sch_downgrade_oracle.cpp.

References checkNativeSymbolLibraryGolden(), and kicad9.

◆ BOOST_AUTO_TEST_CASE() [20/23]

◆ BOOST_AUTO_TEST_CASE() [21/23]

◆ BOOST_AUTO_TEST_CASE() [22/23]

BOOST_AUTO_TEST_CASE ( TransformedSchematicToKicad10UsesOnlyKnownTokens )

◆ BOOST_AUTO_TEST_CASE() [23/23]

BOOST_AUTO_TEST_CASE ( TransformedSchematicToKicad9UsesOnlyKnownTokens )

◆ BOOST_FIXTURE_TEST_CASE() [1/3]

◆ BOOST_FIXTURE_TEST_CASE() [2/3]

◆ BOOST_FIXTURE_TEST_CASE() [3/3]

◆ checkExportUsesOnlyKnownTokens()

◆ checkNativeSchematicGolden()

◆ checkNativeSymbolLibraryGolden()

◆ checkSchematicTransformCoverage()

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

◆ checkTransformedSchematicUsesOnlyKnownTokens()

◆ downgradeDataPath()

◆ netlistConnections()

static GOLDEN_NET_CONNECTIONS netlistConnections ( const std::string & aText)
static

◆ netlistValue()

static std::string netlistValue ( const SEXPR::SEXPR & aNode,
const std::string & aHead )
static

◆ rawNodes()

static std::vector< const SEXPR::SEXPR * > rawNodes ( const SEXPR::SEXPR & aRoot,
const std::string & aHead )
static

◆ rawNumber()

static double rawNumber ( const SEXPR::SEXPR & aNode)
static

◆ runDowngradeJob()

Variable Documentation

◆ kicad10

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

Definition at line 85 of file test_sch_downgrade_oracle.cpp.

◆ kicad9

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

Definition at line 84 of file test_sch_downgrade_oracle.cpp.