Commit Graph

1229 Commits

Author SHA1 Message Date
Marek Roszko 97fbbceae7 Fix pns_debug_tool build due to font metrics change 2023-08-06 16:51:29 -04:00
Jon Evans 103eb556f7 PNS: Make sure log viewer uses the actual design settings 2023-08-06 16:05:37 -04:00
Jon Evans 5cbe3c5d42 PNS: Fix a few issues with debug logging
Hide non-copper layers for clarity

Fix saving of router settings
2023-08-06 15:30:58 -04:00
Jeff Young 0413270012 ADDED: Move Corner To... and Move Midpoint To...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5012
2023-08-05 16:43:55 +01:00
Jeff Young 1cbef0157d Avoid edge cases on very wide thermal spokes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15280
2023-08-04 15:38:06 +01:00
Jeff Young 9456fab435 Fix QA gold DRC counts.
Also improves the error message when some spokes are ignored because
they're connected to an isolated island.
2023-08-04 00:35:19 +01:00
Roberto Fernandez Bautista 44ff2f4858 Enable legacy .brd zone fill qa test + fix golden files
Use 0.020mm pen thickness for SVG golden file (generated with build 2013-07-07 BZR 4022)
2023-08-03 15:36:19 +02:00
Roberto Fernandez Bautista b8a7e378d8 QA: Fix utils.images_are_equal + add basic tests for qa utilities
Note: We allow differences of up to 2 pixel thickness due to erosion operation
2023-08-03 15:36:19 +02:00
Roberto Fernandez Bautista f00a68576e Add qa test for legacy (< v5) zone fills
Disable tests for .brd (legacy file format) fill for now.
2023-07-30 20:56:27 +02:00
Roberto Fernandez Bautista d5fc2b757d qa_cli: increase to 1200dpi + use 1 pixel erosion in comparisons to golden sample 2023-07-27 00:21:48 +02:00
Seth Hillbrand 96a34e5b57 Consolidate Maximum clearance calculation
We were calculating the same thing in three locations and we missed
adding the clearance from the footprints in, resulting in bad fills and
missed drc errors (see QA addition)
2023-07-26 12:55:48 -07:00
jean-pierre charras bd503647c6 Add fix in QA, missing in commit a16ab0aa 2023-07-25 11:05:02 +02:00
jean-pierre charras 9c5aa82d2c QA test: disable a DRC test that generate a wxWidgets exception,
and is useless in this QA test
2023-07-23 16:02:50 +02:00
jean-pierre charras a343cd0a24 Try to fix a QA issue (disable useless DRC tests for 2 boards) 2023-07-23 13:08:59 +02:00
Seth Hillbrand 2485e9a38a Update connectivity python test
Previous test depended on which track was first.  Re-saving the board
changed the track order, so there was no pad connected.  It was still in
the connectivity database, just not at the first track
2023-07-20 15:54:40 -07:00
Seth Hillbrand b827073b3f Update one more board to deal with changed default net clearance 2023-07-19 17:30:48 -07:00
Seth Hillbrand 45ed38a63b Update qa tests to use new zone fill algo 2023-07-19 16:13:49 -07:00
Marek Roszko c009328c07 Undo accidental commit from some time ago (woops) 2023-07-16 21:54:09 -04:00
Jeff Young ff044cd0cf Mostly a terminology update...
... but also makes DIALOG_SIM_COMMAND and SIMULATOR_REPORTER a bit
more simulator-agnostic.
2023-07-14 17:46:06 +01:00
John Beard 046d978ba7 ADDED: Pcbnew chamfer and extend tools
Using the new ITEM_MODIFICATION_ROUTINE system, drop in two new
tools: chamfer and line extend. These are two geometric operations
that are relatively common when editing footprints in particular.

Chamfer delegates the geometric calculations to a dedicated unit
in kimath/geometry.
2023-07-12 19:21:37 +01:00
Seth Hillbrand 998e749918 Move some DRC regression tests
The RegressionZoneFillTests handle issues that are resolved by the zone
filler, so Clipper2 problematic fill belongs there.  Otherwise, the
remaining tests should not refill the zones before running DRC because
we expect the DRC to catch errors without needing a refill
2023-07-07 11:52:25 -07:00
Seth Hillbrand 954b265839 Check for zone-zone overlap
Instead of just checking for the zone outline, we adjust to check the
full fill area of the zones for intersection and overlaps
2023-07-07 11:52:25 -07:00
Jeff Young bde9c2cbc5 ADDED FFT analyses.
CHANGED abandon the unpredictable behaviour of the Simulation Command
dialog.  You now separately add simulation tabs (which have invariant
command types once created), and the dialog edits the current tab.

Also a bunch of bug fixes to make multiple simulation plots actually
work.
2023-07-07 12:33:50 +01:00
Jeff Young d5d2800b03 Sort out terminology issues between vectors and plots. 2023-07-07 12:33:50 +01:00
Jeff Young 67c9d3932b Another attempt to fix qa error. 2023-07-03 16:26:20 +01:00
Jeff Young 84a3cdada6 Attempted fix for qa-failure on GTK. 2023-07-03 15:46:05 +01:00
Jeff Young 9ff33e5ec6 Remove BOARD_COMMIT( TOOL_MANAGER ).
It initializes both m_isFootprintEditor and m_isBoardEditor to false,
causing all sorts of trouble.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15072
2023-07-01 11:52:46 +01:00
Jeff Young dd83217062 Add DRC testing for copper graphic to zone fill collisions. 2023-06-30 14:04:20 +01:00
qu1ck ec94439df4 Footprints swig API: access shown text in fields 2023-06-29 20:36:27 +00:00
Jon Evans d4b7144448 Properties: expose symbol attributes
Flip polarity of exclude-from-BOM and -board for symbols
to match that of footprints and match the GUI display.
2023-06-24 22:03:06 -04:00
Ian McInerney 00885ab5b2 Fix mock implementation of NeighboringSegmentFilter
This was missed in 3c24ddd8cc.
2023-06-20 22:40:38 +01:00
Mike Williams a24c55affe PCB Fields: fix up python, API
Remove SetFields from both symbol and footprint, it doesn't handle
mandatory fields and is unlikely to ever be safe.
2023-06-20 18:34:52 +00:00
Mike Williams 85c633eb00 QA: PCB Fields bug fixes 2023-06-20 18:34:52 +00:00
Mike Williams 85f889bc19 Fields: Description now mandatory
Propagate from symbols to footprints, footprints keep a library
description, too. (GetLibDescription())
2023-06-20 18:34:52 +00:00
Mike Williams 993bb84240 PCB_FIELD: bug fixes 2023-06-20 18:34:52 +00:00
Mike Williams a859b25d2c PCB: convert footprints to use PCB_FIELDs for fields from schematics 2023-06-20 18:34:52 +00:00
Jeff Young ee567180d1 Give ngspice time to finish simulation in test suite. 2023-06-18 18:09:07 +01:00
Wayne Stambaugh 5a7f95e8da Allow for library symbols to derived from derived symbols.
This change allows for infinite inheritance depth so internally there is
no limit to deriving library symbols from other derived symbols.  Please
note that the Flatten() method now recurses until a symbol with no parent
is found.  The user interface is not hooked up at this time.
2023-06-13 15:52:42 -04:00
Seth Hillbrand 42933c1c12 Save difference file if error detected in QA image test 2023-06-12 16:14:36 -07:00
Seth Hillbrand cef4b72b89 Remove image-diff from QA
Re-enable tests for Ubuntu.

This implements a custom image diff function that checks for image
changes in plotted output.
2023-06-12 16:11:10 -07:00
Jeff Young 4ea41174c3 Variable names and minor performance fixes. 2023-06-05 21:26:37 +01:00
Wayne Stambaugh bdee545841 Coverity warning fixes. 2023-06-03 07:28:17 -04:00
Seth Hillbrand 4bc0822733 Connectivity: Correct alias-based bus resolution
Aliases in bus resolution were being resolved without a path, making
them effectively global nets.  This applies the corrected path to the
bus members and adds a QA to catch this error
2023-06-02 14:25:51 -07:00
Tomasz Włostowski b22b0e5d03 qa: ignore duplicates in PNS regression test reference data 2023-05-31 17:07:13 +02:00
Tomasz Włostowski b1ae093fe6 qa: disable center view on zoom in the PNS debug tool 2023-05-31 17:06:41 +02:00
Tomasz Włostowski 6e0a52dd47 qa: fix crash on null PNS::ITEM::Parent() UUID access 2023-05-31 17:06:33 +02:00
Tomasz Wlostowski 5100345c6e router: prevent pushout/bogus collision of via with is own hole (or copper) when dragging
The root cause was not removing the original (pre-dragging) via from the world, comparing the ITEM::Parent() pointers of the items was only hiding the main issue.
This also fixes the PNSViaCollisions test in the qa/ suite.
2023-05-31 17:06:24 +02:00
jean-pierre charras 86abfd2cef Update a golden file in Eagle QA tests 2023-05-31 11:52:50 +02:00
Marek Roszko c31b5eb7d8 Fix errant typecast in VECTOR2<T>::Resize
This fails QA on Windows but not Linux
2023-05-29 19:34:40 -04:00
Marek Roszko 8b3f5de620 Add a simple testcase for VECTOR2I::Resize 2023-05-29 18:32:56 -04:00
Roberto Fernandez Bautista bb90aa24b7 Add basic QA test to CADSTAR PCB footprint import 2023-05-29 23:29:28 +02:00
Jon Evans fbe185b99b PNS debug tool: HiDPI and settings fixes 2023-05-25 21:53:38 -04:00
Marek Roszko ecbde8fc5f Disable the image diff test on ubuntu due to the restricted PPA builder 2023-05-16 21:44:26 -04:00
Marek Roszko 06b3edec53 Use pre-python 3.9 type hint in cli qa 2023-05-15 20:05:44 -04:00
Seth Hillbrand 6a0f64b5a4 Update golden QA images with fixed stroke font output
QA images were generated with v7 output location.  This needs to update
to use the v6 locations
2023-05-12 12:40:41 -07:00
Seth Hillbrand 6e4de18e15 Ensure _changed_ netlist is propagated
The propagation is currently (maybe not needed) limited to the global
name that is the source of the change.  We also need to propagate the
global name that is changed in case the global is set in a tree leaf and
not the root

Fixes https://gitlab.com/kicad/code/kicad/issues/14657
2023-05-09 12:13:06 -07:00
Jeff Young 8bd21edd8a Fix capitalization of text vars for Eagle importer.
Also fixes the test gold files to expect the correct variable
references.
2023-05-06 23:49:10 +01:00
Marek Roszko 82d4bfac75 Make attach paths relative and upload the output contents
Attach should be relative to CI_PROJECT_DIR
2023-05-05 23:17:12 -04:00
Marek Roszko caf09dc85e Disable compare in the cadstar netlist 2023-05-05 20:16:19 -04:00
Marek Roszko ca59360d9d Move pcbnewswig tests to pytest 2023-05-05 20:16:19 -04:00
Mark Roszko 112aa66be5 Changes to get cli testing in CI and other test fixes 2023-05-05 20:16:19 -04:00
Jeff Young b41d446f58 Fix a bunch more issues with sheetpaths and allowExtraText.
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.

There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.

Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
Marek Roszko 2a222706df Start adding cli qa 2023-05-02 23:23:13 -04:00
Seth Hillbrand f7f52d77e4 Rework Copper Sliver check
Adds QA checks to copper sliver tests.  Adds the following checks:
- Dot product between two arms (quickly avoids checks for >90°)
- Checks the sliver is convex (area test)
- Eliminates minor slivers with angles that are approximately 0 and ones
  with the opposite side width beneath a configurable level
- Updates Clipper2 to fix a couple of jagged edges on inflate
- Adds simplify during zone fill inflation to limit jaggies

Fixes https://gitlab.com/kicad/code/kicad/issues/14549
2023-04-25 10:32:46 -07:00
Mark Roszko 50b916cb73 Fix paths in the python tests
Can't actually test on Windows without making that a setup adventure
2023-04-25 12:29:47 +00:00
Marek Roszko e45b6c441a Fix pcbnewswig test run 2023-04-25 07:30:51 -04:00
Marek Roszko 8d4db2edf5 Move tests around 2023-04-24 22:09:36 -04:00
Marek Roszko 47fa5a29cd the ibis folder is really a tool 2023-04-24 19:25:58 -04:00
Jeff Young 69500bfcaa LTSpice schematic import based on the work of Chetan Shinde. 2023-04-24 13:52:52 +01:00
Marek Roszko ea077bc34d Banish ignore.h to core 2023-04-18 22:44:04 -04:00
Seth Hillbrand 32d17547e5 Fixup settings loading
Settings loading needs to account for potential chaining, so each
instance should be created before being Load()ed.  Additionally, add the
settings loading to QA
2023-04-18 16:00:31 -07:00
Nimish Telang 51e55dd750 Convert sprintf to snprintf in most files 2023-04-17 15:39:34 +00:00
Ian McInerney 2b22ff9f39 Add missing include
The implicit includes have changed in wx 3.3, so this is no longer being
included in the file, so include it explicetly to et
wxMessageOutputStderr.
2023-04-12 18:57:12 +01:00
Ian McInerney 5d0b5e16ff Remove python-based board_item duplicate method
This method shadows the C++ method, and doesn't properly handle updating
the duplicated object's KIID to be unique.

Also add tests to ensure the KIIDs are unique after duplication.

Fixes https://gitlab.com/kicad/code/kicad/issues/14460
2023-04-12 16:05:56 +01:00
Jeff Young 2f198bdcb2 Further simplify PNS::ITEM::collideSimple().
Also brings text_pns_basic's mocks into line with their "real"
counterparts.
2023-04-11 15:51:00 +01:00
Jeff Young 6f0d963683 Add PNS::ITEM::BoardItem() call.
About 1/3 of callers to Parent() don't care if they get the immediate
parent or not, about 1/3 want only the immediate parent, and about 1/3
want the hole parent's Parent().

I had earlier changed PNS::ITEM::HOLE to override Parent() and return
the hole parent's Parent(), but since the callers are pretty evenly
split I've reverted that and added BoardItem() for callers who want the
eventual BOARD_ITEM (whether a direct parent or a grandparent).

(Also removes a dead routine so I didn't have to figure out which of
the two it wanted....)
2023-04-11 15:51:00 +01:00
Tomasz Wlostowski 1532a83330 router: hole as first-class-object, initial version of rewritten collision check routine
Rebased and modified by Jeff Young <jeff@rokeby.ie> 6 April 2023
2023-04-11 15:51:00 +01:00
Tomasz Wlostowski d961cdce3f router: further changes to the ownership model
- LINEs now own their vias optionally (depending whether a LINE with its VIA belongs to a node)
- get rid of unique_ptr on the internal NODE::Add API (and also made it private)
- make sure stack pointers are not added to the node
- use rvalue reference for NODE::Add/NODE::Replace

Manually rebased by Jeff Young <jeff@rokeby.ie> 5 April 2023
2023-04-11 15:51:00 +01:00
Tomasz Wlostowski bfbda978b8 router: hole as first class objects, wip
Rebased by Jeff Young <jeff@rokeby.ie> 5 April 2023

(Also includes a bug-fix for highlighting collisions with edge-cut
items.)
2023-04-11 15:51:00 +01:00
Seth Hillbrand 012737593b Handle nested netclass assignments
Netclass directives should not be overriden, instead hold our error
checking for actually missing nets

Fixes https://gitlab.com/kicad/code/kicad/issues/14494
2023-04-06 17:38:13 -07:00
Ian McInerney ea62b145ff Introduce core interface library
This library is meant to move non-EDA items (language extensions,
library extensions, etc.) into the lowest-level of our dependency chain.
This library should never depend on anyother non-thirdparty code in the
kicad codebase.
2023-04-06 15:01:18 +01:00
Seth Hillbrand 16b4ec3c7e Allow bus elements to connect
Previously, bus elements that were not instantiated as individual nets
could not connect to each other.  This caused issues for complex
schematics where busses needed to connect to other busses with elements
that resolved to the same net names.  Functionally, this means mixing
bus elements, which we will replace with first-class elements in version
8 but currently can only be accomplished either by using bus aliases and
  this patch or by individually instantiating each bus element as a
local label

Fixes https://gitlab.com/kicad/code/kicad/issues/14300
2023-04-04 15:23:29 -07:00
Wayne Stambaugh c3e6825d62 Add hashing to and unit tests for some low level objects. 2023-04-04 15:28:34 -04:00
Ian McInerney 27e2e820cb Split spice tests into separate test 2023-04-03 14:42:10 +01:00
Jeff Young bbd6c80507 Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
Wayne Stambaugh 28776f5745 Text attributes object improvements.
* Add compare method to COLOR4D object.
* Add unit test to validate COLOR4D comparison method.
* Add missing color test in text attribute comparison method.
* Add unit test for text attribute object.
* Remove unnecessary headers from text attribute header.
* Move text attribute code into separate source file.
2023-03-29 12:53:45 -04:00
jean-pierre charras 0e82b79a8f QA test: disable Silk clearance test in solder mask bridge QA test.
the Silk clearance test has nothing to do with a solder mask bridge QA test
2023-03-27 12:04:03 +02:00
Jeff Young 30b3645e60 Add regression test for 14412. 2023-03-25 16:13:45 +00:00
Jeff Young 35ca3e7264 Add regression test for 13988. 2023-03-25 12:45:36 +00:00
Jeff Young e65a58b823 Add regression test for 14334. 2023-03-25 12:45:36 +00:00
Seth Hillbrand 0984599624 Pins are case-sensitive
Cleanup should remove mis-matched cases

Fixes https://gitlab.com/kicad/code/kicad/issues/14415
2023-03-24 11:21:35 -07:00
Wayne Stambaugh 244c37298f Fix Doxygen commenting issues. 2023-03-24 11:57:52 -04:00
Wayne Stambaugh a0d02fbab1 Make multivector.h header order independent.
Attempt to clean up all redundant headers that multivector.h touches.
2023-03-23 13:26:32 -04:00
Seth Hillbrand 8150deec32 Add QA test for Clipper2 fill 2023-03-22 15:24:46 -07:00
Seth Hillbrand 914b5a4d21 Simplify test for substantial nubs
Substantial elements following a divot should be at least as far in each
cardinal direction from the origin point in order to be considered
substantial.  This catches cases where the "substantial" element is
actually a straight segment away from the divot

Fixes https://gitlab.com/kicad/code/kicad/issues/14130
2023-03-22 13:01:50 -07:00
Jeff Young 5bda3b99f9 Handle single-token flag parameters.
Also fixes a bug where all VDMOS instance parameters weren't marked as
instance parameters.

Also fixes a bug where VDMOS thermal models weren't supported (they
have two extra pins: Tj and Tcase).
2023-03-22 13:52:17 +00:00
Ian McInerney aa11f78bbc Link ngspice with the QA tests that need it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12491
2023-03-20 16:54:32 +00:00
Ian McInerney 016c958021 Always build spice simulator support
The simulator has advanced considerably, and it is seeing lots of active
development, so make it a required part of KiCad. Additionally, the
build without the simulator has actually been broken for a while, so no
one clearly is building without ngspice right now.
2023-03-20 16:54:32 +00:00
Roberto Fernandez Bautista f97beb15b8 QA: std::optional testing + re-enable cadstar parts parser qa test 2023-03-19 15:28:13 +01:00
Roberto Fernandez Bautista 4bbd9731a1 Disable cadstar parts parser qa test for now 2023-03-16 23:03:54 +01:00