Remove python netlist QA facilities
This commit is contained in:
parent
f730aa7834
commit
e934f8b459
|
@ -512,16 +512,6 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
|
||||||
m_infoBar->ShowMessage( "Schematic file is read only.", wxICON_WARNING );
|
m_infoBar->ShowMessage( "Schematic file is read only.", wxICON_WARNING );
|
||||||
}
|
}
|
||||||
|
|
||||||
// If requested, generate a netlist and exit immediately.
|
|
||||||
// NOTE: This is intended as a developer-only feature for now, and can be removed in lieu of
|
|
||||||
// Python scripting once that is possible.
|
|
||||||
if( m_generateNetlistAndExit )
|
|
||||||
{
|
|
||||||
wxLogDebug( wxT( "Writing netlist to %s and exiting..." ), m_netlistFilename );
|
|
||||||
WriteNetListFile( NET_TYPE_PCBNEW, m_netlistFilename, 0, nullptr );
|
|
||||||
Close( false );
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -218,9 +218,6 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ):
|
||||||
|
|
||||||
m_findReplaceDialog = nullptr;
|
m_findReplaceDialog = nullptr;
|
||||||
|
|
||||||
m_generateNetlistAndExit = false;
|
|
||||||
m_netlistFilename = wxEmptyString;
|
|
||||||
|
|
||||||
SetSpiceAdjustPassiveValues( false );
|
SetSpiceAdjustPassiveValues( false );
|
||||||
|
|
||||||
// Give an icon
|
// Give an icon
|
||||||
|
@ -778,16 +775,6 @@ void SCH_EDIT_FRAME::LoadProject()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::ParseArgs( wxCmdLineParser& aParser )
|
|
||||||
{
|
|
||||||
aParser.AddOption( "n", "netlist" );
|
|
||||||
aParser.Parse();
|
|
||||||
|
|
||||||
if( aParser.Found( "netlist", &m_netlistFilename ) )
|
|
||||||
m_generateNetlistAndExit = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::OnOpenPcbnew( wxCommandEvent& event )
|
void SCH_EDIT_FRAME::OnOpenPcbnew( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
wxFileName kicad_board = Prj().AbsolutePath( Schematic().GetFileName() );
|
wxFileName kicad_board = Prj().AbsolutePath( Schematic().GetFileName() );
|
||||||
|
|
|
@ -149,11 +149,6 @@ private:
|
||||||
|
|
||||||
static PINSHEETLABEL_SHAPE m_lastSheetPinType; ///< Last sheet pin type.
|
static PINSHEETLABEL_SHAPE m_lastSheetPinType; ///< Last sheet pin type.
|
||||||
|
|
||||||
// NOTE: This is a developer-only feature and can be replaced by appropriate Python
|
|
||||||
// functionality once that is possible.
|
|
||||||
bool m_generateNetlistAndExit; ///< For command-line netlist generation
|
|
||||||
wxString m_netlistFilename;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
* Save the schematic files that have been modified and not yet saved.
|
* Save the schematic files that have been modified and not yet saved.
|
||||||
|
@ -557,8 +552,6 @@ public:
|
||||||
|
|
||||||
wxString GetCurrentFileName() const override;
|
wxString GetCurrentFileName() const override;
|
||||||
|
|
||||||
void ParseArgs( wxCmdLineParser& aParser ) override;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Import a KiCad schematic into the current sheet.
|
* Import a KiCad schematic into the current sheet.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
# This program source code file is part of KiCad, a free EDA CAD application.
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020 Jon Evans <jon@craftyjon.com>
|
|
||||||
# Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by the
|
|
||||||
# Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along
|
|
||||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Tests eeschema netlist generation')
|
|
||||||
parser.add_argument('--initialize', action='store_true',
|
|
||||||
help='Generates the "good" reference netlists for each test case')
|
|
||||||
parser.add_argument('binary_dir', default='.')
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
eeschema = os.path.abspath(os.path.join(args.binary_dir, 'eeschema/eeschema'))
|
|
||||||
|
|
||||||
print('eeschema binary: {}'.format(eeschema))
|
|
||||||
|
|
||||||
# The way we discover testcases is simple:
|
|
||||||
#
|
|
||||||
# The root directory is hardcoded as ./data/netlists
|
|
||||||
# Inside that are testcases in folders.
|
|
||||||
#
|
|
||||||
# Each testcase must have the root sheet named the same as the folder, for example:
|
|
||||||
# ./data/netlists/video/video.sch
|
|
||||||
#
|
|
||||||
# The good netlist will be stored as ./data/netlists/video/video.net
|
|
||||||
# The test netlist will be generated as ./data/netlists/video/video_test.net
|
|
||||||
|
|
||||||
data_dir = os.path.join(os.getcwd(), 'data/netlists')
|
|
||||||
|
|
||||||
with os.scandir(data_dir) as it:
|
|
||||||
for entry in it:
|
|
||||||
if entry.is_dir():
|
|
||||||
|
|
||||||
project = entry.name
|
|
||||||
project_dir = os.path.join(data_dir, project)
|
|
||||||
|
|
||||||
sch_file = os.path.join(project_dir, project + '.kicad_sch')
|
|
||||||
good_net_file = os.path.join(project_dir, project + '.net')
|
|
||||||
|
|
||||||
net_file = good_net_file if args.initialize else os.path.join(
|
|
||||||
project_dir, project + '_test.net')
|
|
||||||
|
|
||||||
if not os.path.exists(good_net_file) and not args.initialize:
|
|
||||||
print("FAILED: {} missing good netlist file for comparison".format(project))
|
|
||||||
sys.exit(-1)
|
|
||||||
|
|
||||||
subprocess.run([eeschema, '--netlist', net_file, sch_file], cwd=project_dir)
|
|
||||||
|
|
||||||
result = subprocess.run(['./netdiff.py', good_net_file, net_file],
|
|
||||||
stdout=subprocess.PIPE)
|
|
||||||
|
|
||||||
if not args.initialize:
|
|
||||||
os.remove(net_file)
|
|
||||||
|
|
||||||
if result.returncode != 0:
|
|
||||||
print("FAILED: {} netlist does not match:".format(project))
|
|
||||||
print(result.stdout)
|
|
||||||
|
|
||||||
sys.exit(result.returncode)
|
|
||||||
|
|
||||||
sys.exit(0)
|
|
Loading…
Reference in New Issue