|
KiCad PCB EDA Suite
|
Regression test for https://gitlab.com/kicad/code/kicad/-/issues/24249. More...
Public Member Functions | |
| SCH_IO_DATABASE_CYCLE_DETECTION_FIXTURE ()=default | |
| std::unique_ptr< LIB_SYMBOL > | InvokeWithCycle (SCH_IO_DATABASE &aPlugin, const wxString &aSymbolName, const DATABASE_LIB_TABLE &aTable, const DATABASE_CONNECTION::ROW &aRow, const wxString &aInProgressKey) |
| Drive loadSymbolFromRow with aInProgressKey already marked in-progress, simulating the second entry of a recursive load. | |
| std::unique_ptr< LIB_SYMBOL > | Invoke (SCH_IO_DATABASE &aPlugin, const wxString &aSymbolName, const DATABASE_LIB_TABLE &aTable, const DATABASE_CONNECTION::ROW &aRow) |
| Drive loadSymbolFromRow without pre-seeding the in-progress set; the plugin inserts and (via its RAII guard) removes its own entry. | |
| bool | IsInProgressEmpty (const SCH_IO_DATABASE &aPlugin) const |
| std::size_t | InProgressSize (const SCH_IO_DATABASE &aPlugin) const |
Regression test for https://gitlab.com/kicad/code/kicad/-/issues/24249.
When a database row's Symbols column references the database library itself, SCH_IO_DATABASE::loadSymbolFromRow used to recurse through the adapter back into its own LoadSymbol entry point and blow the stack. We drive loadSymbolFromRow directly through a friend fixture; an end-to-end test would need a live Pgm()/project loader and a SQLite ODBC driver, neither of which the unit harness provides.
Definition at line 39 of file test_sch_io_database_cycle.cpp.
|
default |
|
inline |
Definition at line 71 of file test_sch_io_database_cycle.cpp.
References SCH_IO_DATABASE::m_inProgressLoads.
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Drive loadSymbolFromRow without pre-seeding the in-progress set; the plugin inserts and (via its RAII guard) removes its own entry.
Definition at line 58 of file test_sch_io_database_cycle.cpp.
References SCH_IO_DATABASE::loadSymbolFromRow().
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Drive loadSymbolFromRow with aInProgressKey already marked in-progress, simulating the second entry of a recursive load.
Definition at line 46 of file test_sch_io_database_cycle.cpp.
References SCH_IO_DATABASE::loadSymbolFromRow(), and SCH_IO_DATABASE::m_inProgressLoads.
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 66 of file test_sch_io_database_cycle.cpp.
References SCH_IO_DATABASE::m_inProgressLoads.
Referenced by BOOST_AUTO_TEST_CASE().