KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_legacy_power_symbols.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.TXT for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 3
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#include <
qa_utils/wx_utils/unit_test_utils.h
>
21
#include <
schematic_utils/schematic_file_util.h
>
22
23
#include <
connection_graph.h
>
24
#include <
schematic.h
>
25
#include <
sch_screen.h
>
26
#include <
settings/settings_manager.h
>
27
#include <
locale_io.h
>
28
29
struct
LEGACY_POWER_SYMBOLS_TEST_FIXTURE
30
{
31
LEGACY_POWER_SYMBOLS_TEST_FIXTURE
()
32
{ }
33
34
void
CheckSymbols
()
35
{
36
for
(
SCH_ITEM
* item :
m_schematic
->RootScreen()->Items().OfType(
SCH_SYMBOL_T
) )
37
{
38
SCH_SYMBOL
* symbol =
static_cast<
SCH_SYMBOL
*
>
( item );
39
40
// Fix pre-8.0 legacy power symbols with invisible pins
41
// that have mismatched pin names and value fields
42
if
( symbol->
GetLibSymbolRef
()
43
&& symbol->
GetLibSymbolRef
()->
IsGlobalPower
()
44
&& symbol->
GetAllLibPins
().size() > 0
45
&& symbol->
GetAllLibPins
()[0]->IsGlobalPower()
46
&& !symbol->
GetAllLibPins
()[0]->IsVisible() )
47
{
48
BOOST_CHECK_EQUAL
( symbol->
GetField
(
FIELD_T::VALUE
)->
GetText
(),
49
symbol->
GetAllLibPins
()[0]->GetName() );
50
}
51
}
52
}
53
54
SETTINGS_MANAGER
m_settingsManager
;
55
std::unique_ptr<SCHEMATIC>
m_schematic
;
56
};
57
58
59
BOOST_FIXTURE_TEST_CASE
( LegacyPowerFixup,
LEGACY_POWER_SYMBOLS_TEST_FIXTURE
)
60
{
61
KI_TEST::LoadSchematic
( m_settingsManager,
"netlists/legacy_power/legacy_power"
, m_schematic );
62
63
CheckSymbols();
64
}
65
66
67
BOOST_FIXTURE_TEST_CASE
( LegacyPower4Fixup,
LEGACY_POWER_SYMBOLS_TEST_FIXTURE
)
68
{
69
KI_TEST::LoadSchematic
( m_settingsManager,
"netlists/legacy_power/legacy_power"
, m_schematic );
70
71
CheckSymbols();
72
}
LIB_SYMBOL::IsGlobalPower
bool IsGlobalPower() const override
Definition
lib_symbol.cpp:760
SCH_FIELD::GetText
virtual const wxString & GetText() const override
Return the string associated with the text object.
Definition
sch_field.h:128
SCH_ITEM
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition
sch_item.h:162
SCH_SYMBOL
Schematic symbol object.
Definition
sch_symbol.h:69
SCH_SYMBOL::GetAllLibPins
std::vector< SCH_PIN * > GetAllLibPins() const
Definition
sch_symbol.cpp:1939
SCH_SYMBOL::GetLibSymbolRef
std::unique_ptr< LIB_SYMBOL > & GetLibSymbolRef()
Definition
sch_symbol.h:177
SCH_SYMBOL::GetField
SCH_FIELD * GetField(FIELD_T aFieldType)
Return a mandatory field in this symbol.
Definition
sch_symbol.cpp:1589
SETTINGS_MANAGER
Definition
settings_manager.h:49
connection_graph.h
locale_io.h
KI_TEST::LoadSchematic
void LoadSchematic(SETTINGS_MANAGER &aSettingsManager, const wxString &aRelPath, std::unique_ptr< SCHEMATIC > &aSchematic)
Definition
schematic_file_util.cpp:184
sch_screen.h
schematic.h
schematic_file_util.h
settings_manager.h
LEGACY_POWER_SYMBOLS_TEST_FIXTURE
Definition
test_legacy_power_symbols.cpp:30
LEGACY_POWER_SYMBOLS_TEST_FIXTURE::m_schematic
std::unique_ptr< SCHEMATIC > m_schematic
Definition
test_legacy_power_symbols.cpp:55
LEGACY_POWER_SYMBOLS_TEST_FIXTURE::m_settingsManager
SETTINGS_MANAGER m_settingsManager
Definition
test_legacy_power_symbols.cpp:54
LEGACY_POWER_SYMBOLS_TEST_FIXTURE::LEGACY_POWER_SYMBOLS_TEST_FIXTURE
LEGACY_POWER_SYMBOLS_TEST_FIXTURE()
Definition
test_legacy_power_symbols.cpp:31
LEGACY_POWER_SYMBOLS_TEST_FIXTURE::CheckSymbols
void CheckSymbols()
Definition
test_legacy_power_symbols.cpp:34
FIELD_T::VALUE
@ VALUE
Field Value of part, i.e. "3.3K".
Definition
template_fieldnames.h:43
BOOST_FIXTURE_TEST_CASE
BOOST_FIXTURE_TEST_CASE(LegacyPowerFixup, LEGACY_POWER_SYMBOLS_TEST_FIXTURE)
Definition
test_legacy_power_symbols.cpp:59
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(result, "25.4")
SCH_SYMBOL_T
@ SCH_SYMBOL_T
Definition
typeinfo.h:169
unit_test_utils.h
src
qa
tests
eeschema
test_legacy_power_symbols.cpp
Generated on Fri Jun 26 2026 00:05:44 for KiCad PCB EDA Suite by
1.13.2