43#include <wx/filename.h>
52 +
"plugins/eagle/issue18515_managed_lib.brd";
54 BOOST_REQUIRE_MESSAGE( wxFileName::FileExists( dataPath ),
55 "Test board file not found: " + dataPath );
59 wxFileName rulesFn( dataPath );
60 rulesFn.SetExt( wxT(
"kicad_dru" ) );
62 BOOST_REQUIRE_MESSAGE( !rulesFn.FileExists(),
63 "Stale rules sidecar present before load: "
64 + rulesFn.GetFullPath().ToStdString() );
67 BOARD* rawBoard =
nullptr;
71 rawBoard = eaglePlugin.
LoadBoard( dataPath,
nullptr,
nullptr );
75 BOOST_FAIL(
"IO_ERROR loading Eagle board: " + e.
What().ToStdString() );
77 catch(
const std::exception& e )
79 BOOST_FAIL( std::string(
"Exception loading Eagle board: " ) + e.
what() );
82 std::unique_ptr<BOARD> board( rawBoard );
87 BOOST_REQUIRE_EQUAL( board->Footprints().size(), 2 );
92 for(
FOOTPRINT* fp : board->Footprints() )
94 const wxString itemName = fp->GetFPID().GetUniStringLibItemName();
99 !itemName.Contains( wxT(
"_38243636" ) ),
100 "Footprint name '" + itemName.ToStdString()
101 +
"' should not carry the Eagle library URN ordinal." );
103 if( itemName == wxT(
"LED-0603" ) )
105 else if( itemName == wxT(
"R0603" ) )
114 if( rulesFn.FileExists() )
116 wxRemoveFile( rulesFn.GetFullPath() );
117 BOOST_ERROR(
"Importer wrote an empty rules sidecar: "
118 + rulesFn.GetFullPath().ToStdString() );
General utilities for PCB file IO for QA programs.
Information pertinent to a Pcbnew printed circuit board.
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
virtual const wxString What() const
A composite of Problem() and Where()
virtual const char * what() const override
std::exception interface, returned as UTF-8
Works with Eagle 6.x XML board files and footprints to implement the Pcbnew #PLUGIN API or a portion ...
BOARD * LoadBoard(const wxString &aFileName, BOARD *aAppendToMe, const std::map< std::string, UTF8 > *aProperties=nullptr, PROJECT *aProject=nullptr) override
Load information from some input file format that this PCB_IO implementation knows about into either ...
std::string GetPcbnewTestDataDir()
Utility which returns a path to the data directory where the test board files are stored.
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
BOOST_REQUIRE(intersection.has_value()==c.ExpectedIntersection.has_value())
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK_MESSAGE(totalMismatches==0, std::to_string(totalMismatches)+" board(s) with strategy disagreements")