Seth Hillbrand
0dc894356b
Check singular arcs connection
...
Even if there are no other segments in the line chain, we still should
check for arc connections in cases of individual arcs on a line chain
(cherry picked from commit 6b915049d1
)
2024-04-01 17:55:29 -07:00
Seth Hillbrand
1e13a7640e
Tidy up some remaining triangulation cases
...
Found and fixed a few corner cases where triangulation point removal
could reset expected points
(cherry picked from commit 553e4a25bf
)
2024-04-01 17:55:29 -07:00
Seth Hillbrand
890376d04f
Do not use cache when we modify vertices
...
When we add vertices to the tesselation routines, we cannot reuse these
without the original vertex points.
It may be possible to copy and modify the vertices from the hint data so
that they are properly positioned but naive attempts (moving based on
first point) did not work, so for now, we disable the hint cache when
the vertex sizes do not match as this prevents OOB access
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17621
(cherry picked from commit 06b199fd41
)
2024-03-31 15:01:16 -07:00
Seth Hillbrand
92ffd898f5
Update triangulation to handle poly-intersection
...
Polygon intersections happen against the original outline, not against
the currently remaining polygon. This avoids pathalogical cases
Adds new simplification system to avoid duplicated points
Adds new edge-splitting algorithm to provide additional fall-back
Verifies that polygon cuts do not swap holes for outlines (negative
area)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17559
(cherry picked from commit c3f6a84d66
)
2024-03-28 13:55:06 -07:00
Jon Evans
835a82f0b9
Attempt to disable flaky tests for now
...
Issue8003 causes failures on some Ubuntu systems.
Disabling until we understand why.
2024-02-16 20:11:46 -05:00
Jeff Young
1e6986d2f5
Don't report starved thermals when connected only to isolated islands.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16866
2024-02-07 14:09:03 +00:00
Jeff Young
e04cd8743c
Separate out Pad_Shape so auto-complete can work.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16566
2024-01-10 19:56:46 +00:00
Jeff Young
27c253780d
Separate out Pad_Shape so auto-complete can work.
2024-01-10 19:22:05 +00:00
Jon Evans
104aa1abe4
Change prettifier QA to not depend on file format changes
...
Instead of writing out and reading back in using the plugin,
just test the formatter itself.
Also add support for testing full boards.
2024-01-01 13:38:16 -05:00
jean-pierre charras
58b7eda47a
QA test( test_prettifier) update golden files and fix a warning message.
2024-01-01 10:57:32 +01:00
John Beard
751c88ef20
Use 'uuid' (not 'id') in the s-expr PCB groups/generator format
...
Add some regression tests to check loading of groups and generators
from various versions of the s-expr PCB format.
2023-12-31 23:09:26 +00:00
Ian McInerney
f2702b223c
Introduce base IO_MGR class and unify RELEASER objects
...
The IO_RELEASER is a thin-wrapper around a std::unique_ptr, but done
this way to allow easier addition of a custom deleter in the future if
something needs to call back into the IO_MGR.
2023-12-29 00:37:38 +00:00
Ian McInerney
e6632bb983
Rename PCB IO classes/files
2023-12-24 01:22:21 +00:00
Ian McInerney
d8b47d18d3
Initial rename of file plugin infrastructure components to IO
2023-12-24 01:22:21 +00:00
Ian McInerney
5c334c147b
Make some types auto-reference to prevent copies
2023-12-19 14:23:36 +00:00
jean-pierre charras
d8b1e3fcb3
test_prettifier: Better warning message for commit 8e647c24
2023-12-16 13:30:06 +01:00
jean-pierre charras
8e647c24b4
QA test, prettifier: Update golden files to the latest version.
...
Add also a warning when a golden file is too old and creates comparison error.
2023-12-16 10:49:23 +01:00
John Beard
e41f5efb03
Use modern bool style for footprint locking (locked yes)
...
Add some simple tests for specific footprint load/save checks
(including round-trip stability)
2023-12-14 21:22:59 +00:00
John Beard
481fa1f959
Allow PCB reference image locking and UUID to be saved
...
Add some unit tests for reference image saving/loading.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16334
2023-12-14 21:22:59 +00:00
Jeff Young
1adf96d879
Update gold failure count.
2023-12-11 16:45:13 +00:00
Jeff Young
931cec862e
Non-plated slots are effectively edges.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16267
2023-12-09 21:06:40 +00:00
Jeff Young
e0a34efcb7
Use a more self-documenting API for router preview item flags.
...
Also fixes a bug where rule areas were drawn with solid fills.
2023-12-08 16:02:15 +00:00
jean-pierre charras
096bcff160
Try to fix a QA not working test on W10/msys2.
...
Probably due to a not closed file when trying to delete it.
2023-12-07 20:01:22 +01:00
Marek Roszko
56b7f91361
Format the std::filesystem path directly
2023-11-29 14:27:08 -05:00
Jon Evans
cb12464865
Potentially fix MSVC build
2023-11-29 13:10:56 -05:00
Jon Evans
f1f8981395
Automatic whitespace and indentation prettification for sexpr formats
2023-11-29 16:17:41 +00:00
Seth Hillbrand
9e48b388fe
Add additional QA sliver check
2023-11-28 16:02:39 -08:00
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
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
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
Alex Shvartzkop
f47cc39208
Add generators to test_board_item.cpp
2023-10-08 02:41:17 +00: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
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
f2403804db
Add test for GuessPluginTypeFromLibPath.
2023-08-31 05:08:16 +03: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
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
Roberto Fernandez Bautista
dbfb7880b5
Add IO_MGR::FindPluginTypeFromBoardPath (+QA tests)
2023-08-15 05:26:12 +03: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
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
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
Seth Hillbrand
45ed38a63b
Update qa tests to use new zone fill algo
2023-07-19 16:13:49 -07: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
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