Crossing wires with pathological label in the center are actually
connected for the netlist. This is an ERC error but we should keep
things consistent.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21494
(cherry picked from commit c995d47c87)
- backported from master
- fix for issue-17429 - DRC unnconnected items exclusion instability
- new serialization format for unconnected items (MainID and AuxID
last)
- RunOnUnconnectedItems sorts RN_NET edges for stability
- ResolveDRCExclusions now matches unconnected items by not matching on
MainID and AuxID
First, fix the error limit check in drc_test_provider_edge_clearance.
Then, we rotate the final point incorrectly in SHAPE_ARC::Collide (need
negative angle). We were not checking this result in the QA, so add the
proper tests
(cherry picked from commit 9bedb6eedb)
Prevent the file formatter from writing and the file parser from loading
symbol pin alternates that have an empty name or when the alternate name
is the same as the default pin name. Apparently at some point they were
able to be created and saved.
Do not allow SCH_PIN::SetAlt() to set an alternate name when the name
does not exist in the library symbol pin alternate list. This required
fixing the associated QA test.
When updating or changing schematic symbols from library, reset the pin
alternate to the default when the alternate no longer exists in the
symbol.
Do not populate pin alternates context menu with duplicate default pin.
Clear orphaned pin alternates to the default when saving symbols from
symbol editor.
(cherry picked from commit d16d2f5a5b)
Each knockout can be approximated, and each knockout
will have m_ExtraClearance added. If a neck is
between two knockouts, it will be 2X the above
values narrower than expected.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20361
(cherry picked from commit 96522c4113)
The arc center is a pseudo coordinate which is calculated for drawing
purposes. This mid point is fixed unless the arc is modified which
should result in more reliable arc parity footprint library DRC testing.
Also change EDA_SHAPE::Compare() to use the arc mid point.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15917
(cherry picked from commit 11edaa6e4a)
We use IN for INCH as units, but IN is defined in a Windows header
(cherry picked from commit b0fe4df3c5)
(cherry picked from commit 0acdabd1eb)
(cherry picked from commit eaa1e6d594)
When building a net tie, all elements in the footprint that belong to
the net tie can be arbitrarily close to one another. outside of the
footprint, connected items can be arbitrarily close to the tie element
but must respect the clearance values for elements that have nets
assigned to them
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19933
(cherry picked from commit bff819edb0)
Not sure what it is that caused it to break (reported by
Seth on Linux, but works for me and on the CI).
Rather than trying to be clever at this point, just do the dumb
thing (and remove the boost_test_print_type for wxSize to prevent
someone using it for the time being).
The m_imageData buffer in the BITMAP_BASE is an
internal implementation - the public API to persist the
data to a stream appears to be SaveImageData - so use that,
which hides the implementation (and generates the image data
"live" when needed).
Remove the public access to the m_imageData buffer as it isn't
needed for public use, and also is misleading.
Also break out the formatting of the data into KICAD_FORMAT,
as it's currently replicated in eeschema/pcb/pagelayout
formatting code.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19772
This means that you can run just a single case from the command line,
for example:
`qa_pcbnew -t DRCCopperSliver/_0`
The case is also automatically printed as context.
This means that when isolating a specific defect in one case,
you can run only that one case, which is useful under debuggers
and also when using slow tools like valgrind.
Not all possibe tests are doing this, but they're easy to do
when needed (i.e. when you want to run just one case)
This is not only a useful place to hang regression tests,
but also allows to catch defects specific to loading or
saving footprints.
For example, it would catch:
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19713