Commit Graph

1309 Commits

Author SHA1 Message Date
Jeff Young abda3c0d33 Handle various keepout flags independently.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16037
2023-11-07 11:57:23 +00:00
Alex Shvartzkop a39f0c2c2f QA: update track cleaner expected value. 2023-11-06 17:43:52 +03:00
Alex Shvartzkop a6b517147e QA: update Tracks.pretty 2023-11-06 17:16:16 +03:00
Seth Hillbrand de0736863b Allow multiple strong drivers with same name
Multiple labels with the same name are allowed (and expected) so ensure
that we use a structure that allows duplicate names
2023-10-31 11:52:29 -07:00
Jon Evans 1a7cc88b97 Add (failing) QA test for #16003
Also remove old test_netlists.cpp that should have been removed long ago
2023-10-31 12:57:14 -04:00
Jeff Young 19ca7cedaa Better test reporting.
(This make it clear in the failure message which is the expected
value and which is the actual value.)
2023-10-31 12:10:21 +00:00
Jon Evans 1b9062bd9f QA: show violation info before failing DRC regressions 2023-10-30 00:16:58 -04:00
Wayne Stambaugh 30ba1b8007 Coverity warning fix.
This fixes all of the warnings cause by using std::weak_ptr objects when
recursing the symbol inheritance tree to retrieve the root symbol.  The
issue is that the weak pointers are not guaranteed to be valid for each
recursion because the lock will go out of scope.  Using a std::shared_ptr
object will ensure the lock is valid until it goes out of scope.
2023-10-28 13:25:30 -04:00
Jeff Young e222f40696 Don't double-up the root sheet in CurrentSheet in test harness. 2023-10-26 15:00:00 +01:00
Jeff Young 791aa64950 Functionally it's a "reference image".
The implementation happens to be a "bitmap".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15932
2023-10-24 15:44:21 +01:00
jean-pierre charras 76e1babb88 qa test, test_lib_part.cpp: add missing initialization of parent field member 2023-10-21 10:39:11 +02:00
Jeff Young 2450250ae7 Use "tuning pattern" in the GUI. 2023-10-15 17:59:11 +01:00
Alex Shvartzkop 6e4473855b QA: update golden files for EAGLE SparkFun-GPS.lbr 2023-10-15 03:28:25 +03:00
Alex Shvartzkop 254c8accc2 Remove some debugging messages. 2023-10-15 03:28:25 +03:00
Seth Hillbrand dc47d251f5 Fix richio vprint
stdlib checks do not allow dereferencing the first element of a vector
when there are no elements in the vector (regardless of whether we have
allocated memory for them).  This whole function is rather
over-engineered, setting up multiple allocations and branches depending
of the string size.  This commit reduces the function to the actions
needed (get the string size, print it into the output)
2023-10-10 10:58:37 -07:00
Wayne Stambaugh 9ff8d02e60 Symbol library manager object changes.
* Fix issue handling symbols with multiple inheritance.
* Remove unused code from the symbol library manager object.
* Splits out the library buffer and symbol buffer object so the can be unit
  tested without having to mock the symbol library manager object.
* Add unit tests for library buffer and symbol buffer objects.
2023-10-09 14:58:49 -04:00
Alex Shvartzkop f47cc39208 Add generators to test_board_item.cpp 2023-10-08 02:41:17 +00:00
Marek Roszko b5ab807568 Add common to qa test path 2023-10-07 21:28:28 -04:00
Jeff Young 31c488bc23 NETINFO_ITEMs are owned by BOARD.
Lifecylce management must go through BOARD_COMMIT (or at least
the frame's undo/redo lists).
2023-10-04 21:01:33 +01:00
Thomas Pointhuber 7005dd7c48 altium: make special string parsing on pcb a bit more generic
Only special strings starting with a dot are supported. Parsing of concatenated special strings using quotes needs to be implemented, but at least a few test-cases are already there now.
2023-10-01 15:10:50 +02:00
Marek Roszko f8e33be07f Break out the boundary violating parts of gal into common through subclassing 2023-09-23 09:37:47 -04:00
John Beard fb12db5f2c Add regression test for arc winding
While the bug has been fixes, the winding handling in the
SetArcGeometry() function isn't tested. This adds a regression
test on EDA_SHAPE, which is where the logic now lives.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/15694
2023-09-20 02:27:46 +01:00
Marek Roszko 22b733209d Fail GAL on its header leaking audit
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Jon Evans 6f9af10912 DbLib: support columns with numeric data
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15662
2023-09-16 22:37:12 -04:00
Wayne Stambaugh 5e86ba1abe Fix several library symbol multiple inheritance issues. 2023-09-15 07:24:10 -04:00
Seth Hillbrand cb1231382f Fix connectivity regression
We have a break somewhere in the connectivity that doesn't fully process
connections but the current code seems to catch these by forcing a
top-down & bottom-up calculation

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14818
2023-09-14 14:39:51 -07:00
Roberto Fernandez Bautista f48c125c3c CLI QA: Create a diff image highlighting areas of difference in red 2023-09-13 17:37:26 +00:00
Roberto Fernandez Bautista ea648d67e6 QA: Close images after comparing 2023-09-13 17:37:26 +00:00
Roberto Fernandez Bautista ca8790fd8d CLI Gerber QA test: Generate png tiles instead of full (save memory) 2023-09-13 17:37:26 +00:00
Roberto Fernandez Bautista f49125da31 QA: Add kicad-cli pcb export gerber tests 2023-09-13 17:37:26 +00:00
Marek Roszko 11de95778b Unwrap the FROM_UTF8 macro in favor of direct function
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Marek Roszko 1a6d459fb1 Fix wrong path slash 2023-09-07 22:09:26 -04:00
Marek Roszko 5da88d1d0e Move UTF8 to core 2023-09-07 20:55:16 -04:00
Marek Roszko 7505fd0f37 Profile can live in core 2023-09-07 07:47:01 -04:00
Alex Shvartzkop 83afdd297e Use UTF-8 encoding in test_io_mgr.cpp. 2023-09-07 12:56:53 +03:00
Alex Shvartzkop 79c86445d2 QA: add plugin type tests for EasyEDA. 2023-09-07 11:02:40 +03:00
Alex Shvartzkop e6f0a3d91b QA: add test files for EasyEDA. 2023-09-07 11:02:40 +03:00
Marek Roszko 5c62b98e7c observable can live in core 2023-09-06 21:25:24 -04:00
John Beard 78c8de9b08 Fix oval pad snapping
Previously the snap points computed for oval pads didn't get all the
points correct. This breaks out the "find snap points for ovals"
into a function, reworks the logic, adds some tests.

Also adds "extremum points" when the oval isn't exactly H/V.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15594
2023-09-06 21:33:45 +01:00
Jeff Young 7a2a2e2df0 Remove error-prone SetReporter() API. 2023-09-06 11:37:50 +01:00
Marek Roszko 911266fe02 Fix cli test for plot one arg 2023-09-03 13:09:18 -04:00
Jeff Young 41e274684c Make sure pads with no net get assigned Default netclass on board open.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15562
2023-09-02 10:11:38 +01:00
Jeff Young 0002eca70b Fix missing string-to-int conversion. 2023-08-31 15:15:57 +01:00
Jeff Young f08370b3dc Remove no-longer-used guard. 2023-08-31 15:15:57 +01:00
Jeff Young 81117d2217 Fix memory leak from double-allocation. 2023-08-31 15:15:57 +01:00
Jeff Young 05135eed66 Extra debugging info for pns regression tests. 2023-08-31 15:15:57 +01:00
Jeff Young ac778163ab Support net queries in PNS_LOG_PLAYER_KICAD_IFACE. 2023-08-31 15:15:57 +01:00
Jeff Young c049e1e90d Formatting (no functional changes). 2023-08-31 15:15:57 +01:00
Alex Shvartzkop f2403804db Add test for GuessPluginTypeFromLibPath. 2023-08-31 05:08:16 +03:00
Alex Shvartzkop e128896ba6 Schematic plugins refactoring, fixes for PCB plugins.
- Move PLUGIN_FILE_DESC to common.
- SCH_PLUGIN: rename Load -> LoadSchematicFile, Save -> SaveSchematicFile.
- Use PLUGIN_FILE_DESC and CanRead* in schematic plugins.
- Return none/unknown types from Find/GuessPluginType functions.
- Iterate over file types for file wildcards.
- Clean-up header checking in IO plugins.
- Use PCB plugin list in IO_MGR::GuessPluginTypeFromLibPath.
2023-08-31 05:08:03 +03:00
Jeff Young 4b22b1e831 Debugging aid. 2023-08-31 00:25:20 +01:00
Jeff Young aeb8374ae5 Fix presumed typo in collision reporting.
(The format string contains two %d items, but is only passed a
single int.)
2023-08-31 00:25:20 +01:00
Jeff Young ac7ceb03ee Fix warning message typo, empty wxString::Format, and formatting. 2023-08-31 00:25:20 +01:00
Jeff Young 9e309d1d83 Coding standards and wxS() safety. 2023-08-30 11:18:54 +01:00
Jeff Young f24cf2250e Make sure we have a BOARD when trying to read nets.
Also fixes a nullptr bug when trying to write nets when we don't
have a NODE.
2023-08-29 17:30:00 +01:00
Wayne Stambaugh 1026596964 Allow symbols to be derived from other derived symbols.
[CHANGED] Symbols can now be derived from other derived symbols removing
          the requirement to derive from root symbols.
2023-08-24 07:59:32 -04:00
Jon Evans e118d2fca0 DbLib: Map multiple footprints to footprint filter list
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13587
2023-08-23 19:16:49 -04:00
Seth Hillbrand a6073ae566 Revert pns_log_file.cpp change to compile 2023-08-23 09:12:43 -07:00
Jeff Young 6166a96b8e Update PSN logger to new NET_HANDLE architecture. 2023-08-23 14:10:03 +01:00
Seth Hillbrand b9936b6d8a Fix fat-finged correction in c5f97421 2023-08-22 14:41:32 -07:00
Seth Hillbrand c5f9742153 Fix PNS QA compile 2023-08-22 14:10:14 -07:00
Jeff Young 76cd637895 Make the net identifier opaque to PNS router.
This also improves performance as we don't have to look up the
netcodes in a map.
2023-08-22 15:17:02 +00:00
Jeff Young 55a7b9e6bf More consistent naming.
(Also better differentiates the PCBEXPR_ classes from PCB_
objects.)
2023-08-21 15:26:33 +01:00
Jeff Young 3cade7fc47 Don't use string compare for A.NetClass == B.NetClass.
(or A.NetName == B.NetName, or != of either)
2023-08-21 15:26:33 +01:00
Jon Evans 0c529411d7 Update SHAPE_POLY_SET API to not hide virtual functions 2023-08-18 21:40:40 -04:00
Thomas Pointhuber c2a91caacf altium: verify that file contains "Compound File Binary Format" magic bytes, as we do not support the ASCII format 2023-08-18 14:47:08 +02:00
Jeff Young f2a8c25084 Update Eagle gold files for spoke angle fixes. 2023-08-16 23:21:18 +01:00
Alex Shvartzkop 918ada9b16 Fix CI build. 2023-08-15 06:55:32 +03:00
Roberto Fernandez Bautista dbfb7880b5 Add IO_MGR::FindPluginTypeFromBoardPath (+QA tests) 2023-08-15 05:26:12 +03:00
Roberto Fernandez Bautista 8d5ebf5e30 QA: Add dummy board files (should fail header checks) 2023-08-15 05:26:12 +03:00
Roberto Fernandez Bautista fb3e8ef8f1 QA: Add example P-CAD file
Supplied by evanshultz in gitlab issue 3993
2023-08-15 05:26:12 +03:00
Roberto Fernandez Bautista 0b0c50471a QA: Add example KiCad legacy PCB files
legacy_demos based on commit e4fdce4a47
2023-08-15 05:26:12 +03:00
Roberto Fernandez Bautista 1c95762534 QA: Add example EAGLE PCB file - Adafruit-AHT20-PCB
Source: https://github.com/adafruit/Adafruit-AHT20-PCB
2023-08-15 05:26:12 +03:00
Roberto Fernandez Bautista 87959a4625 QA: Add simple CADSTAR PCB file 2023-08-15 05:26:12 +03:00
Alex Shvartzkop a0d96cea9f Rename Save -> SaveBoard, Load -> LoadBoard in PLUGIN. 2023-08-15 05:26:12 +03:00
Marek Roszko 64a7bad56e Use fn_str with std file streams
This uses the MSVC-only wchar_t overload
2023-08-13 14:59:10 -04:00
Roberto Fernandez Bautista fd7781510e PNS Log Viewer: Add Open / Save as GUI functions 2023-08-09 22:21:14 +00:00
Roberto Fernandez Bautista 6ba250a4e6 PNS Log Viewer: Refactor loading/saving functions 2023-08-09 22:21:14 +00:00
Roberto Fernandez Bautista 54bcd1d5ca PNS Log Viewer: Fix crash on exit
m_board needs to be deleted before m_logFile
2023-08-08 23:33:46 +02:00
Jon Evans 93b7862615 PNS Log viewer: open project read-only 2023-08-07 18:31:05 -04:00
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