kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #38038
Re: [PATCH] Fuzzable PCB parsing test harness
Hi Wayne,
That's pretty odd, the incantations are practically the same.
The only other difference between this and the other pcb-based
programs is this line:
add_dependencies( pnsrouter pcbcommon pcad2kicadpcb
${GITHUB_PLUGIN_LIBRARIES} )
Which I can't really see making the difference (I think it's there for
a header dependency).
And the very long target_link_libraries list that lists everything 4
times and then a bit more. I thing replicating that long list might
fix it, but it doesn't seem very tidy. The list from test_window:
polygon pnsrouter common pcbcommon bitmaps polygon pnsrouter
common pcbcommon bitmaps polygon pnsrouter common pcbcommon bitmaps
polygon pnsrouter common pcbcommon 3d-viewer bitmaps gal pcad2kicadpcb
common
Cheers,
John
On Thu, Oct 18, 2018 at 2:22 PM Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>
> Hey John,
>
> Below is the verbose output. I hope it helps.
>
> [ 98%] Linking CXX executable qa_pcb_parse_input.exe
> cd
> /C/msys64/home/wstambaugh/build32/kicad/trunk-release/qa/pcb_parse_input
> && /C/msys64/mingw32/bin/cmake.exe -E remove -f
> CMakeFiles/qa_pcb_parse_input.dir/objects.a
> cd
> /C/msys64/home/wstambaugh/build32/kicad/trunk-release/qa/pcb_parse_input
> && /C/msys64/mingw32/bin/ar.exe cr
> CMakeFiles/qa_pcb_parse_input.dir/objects.a
> @CMakeFiles/qa_pcb_parse_input.dir/objects1.rsp
> cd
> /C/msys64/home/wstambaugh/build32/kicad/trunk-release/qa/pcb_parse_input
> && /C/msys64/mingw32/bin/g++.exe -Wall -Wsuggest-override
> -Wno-unused-local-typedefs -Wno-strict-aliasing -mthreads -fpermissive
> -O3 -DNDEBUG -s -Wl,--whole-archive
> CMakeFiles/qa_pcb_parse_input.dir/objects.a -Wl,--no-whole-archive -o
> qa_pcb_parse_input.exe
> -Wl,--major-image-version,0,--minor-image-version,0
> ../../common/libpcbcommon.a ../../common/liblegacy_wx.a
> ../../common/libcommon.a ../../bitmaps_png/libbitmaps.a
> ../../polygon/libpolygon.a ../../common/libgal.a
> ../../pcbnew/pcad2kicadpcb_plugin/libpcad2kicadpcb.a
> ../../pcbnew/github/libgithub_plugin.a ../qa_utils/libqa_utils.a
> -LC:/msys64/mingw32/lib -pipe -Wl,--subsystem,windows -mwindows
> -lwx_mswu_gl-3.0 -lwx_mswu_aui-3.0 -lwx_mswu_adv-3.0 -lwx_mswu_html-3.0
> -lwx_mswu_core-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0 -lwx_baseu_xml-3.0
> -lwx_mswu_stc-3.0 -lws2_32 ../../common/libcommon.a
> ../../common/libgal.a -lglew32 -lcairo -lpixman-1 -lopengl32 -lglu32
> -lcurl -lssl -lcrypto -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32
> -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
> C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe:
> ../../common/libcommon.a(marker_base.cpp.obj):marker_base.cpp:(.text+0xee9):
> undefined reference to `DRC_ITEM::ShowHtml(EDA_UNITS_T) const'
> collect2.exe: error: ld returned 1 exit status
> make[2]: ***
> [qa/pcb_parse_input/CMakeFiles/qa_pcb_parse_input.dir/build.make:163:
> qa/pcb_parse_input/qa_pcb_parse_input.exe] Error 1
> make[2]: Leaving directory '/home/wstambaugh/build32/kicad/trunk-release'
> make[1]: *** [CMakeFiles/Makefile2:3431:
> qa/pcb_parse_input/CMakeFiles/qa_pcb_parse_input.dir/all] Error 2
> make[1]: Leaving directory '/home/wstambaugh/build32/kicad/trunk-release'
> make: *** [Makefile:141: all] Error 2
>
>
> On 10/17/2018 6:42 PM, John Beard wrote:
> > Hi Wayne,
> >
> > Could you try to build with VERBOSE=1 so I can see what the failed link
> > command line looks like and compare to Jenkins?
> >
> > Cheers,
> >
> > John
> >
> > On 17 October 2018 13:17:34 BST, Wayne Stambaugh <stambaughw@xxxxxxxxx>
> > wrote:
> >
> > Hey John,
> >
> > Close but no cigar. I'm still getting a single link error.
> >
> > C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe:
> > ../../common/libcommon.a(marker_base.cpp.obj):marker_base.cpp:(.text+0xee9):
> > undefined reference to `DRC_ITEM::ShowHtml(EDA_UNITS_T) const'
> > collect2.exe: error: ld returned 1 exit status
> > [100%] Built target eeschema
> > make[2]: ***
> > [qa/pcb_parse_input/CMakeFiles/qa_pcb_parse_input.dir/build.make:163:
> > qa/pcb_parse_input/qa_pcb_parse_input.exe] Error 1
> > make[1]: *** [CMakeFiles/Makefile2:3431:
> > qa/pcb_parse_input/CMakeFiles/qa_pcb_parse_input.dir/all] Error 2
> > make[1]: *** Waiting for unfinished jobs....
> > [100%] Built target pcbnew_kiface
> > make: *** [Makefile:141: all] Error 2
> >
> >
> > On 10/16/2018 9:28 AM, John Beard wrote:
> >
> > Hi Wayne,
> >
> > I think I might have fixed the ordering in the link libraries (at
> > least, it now builds on Jenkins).
> >
> > This is just the first patch to focus on the build error, I'll
> > rebase
> > the other docs stuff later if/when it works.
> >
> > Cheers,
> >
> > John
> > On Fri, Oct 12, 2018 at 7:58 PM Wayne Stambaugh
> > <stambaughw@xxxxxxxxx> wrote:
> >
> >
> > John,
> >
> > This patch fails to link on windows. I've attached the build
> > error.
> >
> > Wayne
> >
> > On 10/9/2018 9:53 AM, John Beard wrote:
> >
> > Hi,
> >
> > Here is an update patch that rebases over the commenting
> > out of
> > pcb_test_window, polygon_triangulation and
> > polygon_generator and fixes
> > a link error to do with base_screen.cpp.
> >
> > Cheers,
> >
> > John
> > On Mon, Oct 8, 2018 at 5:27 PM John Beard
> > <john.j.beard@xxxxxxxxx> wrote:
> >
> >
> > Sorry,
> >
> > I wrote "ms", I meant "us" - the times are in the
> > handful-of-millsecond range.
> >
> > Cheers,
> >
> > John
> > On Mon, Oct 8, 2018 at 5:24 PM John Beard
> > <john.j.beard@xxxxxxxxx> wrote:
> >
> >
> > Hi,
> >
> > This is a patch to add a test program that
> > allows to parse a Pcbnew
> > file from command line params or stdin. This
> > means you can use it for
> > fuzz testing.
> >
> > I have done a little bit of fuzz testing so far
> > (8 million execs,
> > about 70% of a cycle), and have not found any
> > crashes, but I can make
> > it hang in a few ways. These all seem to be in
> > streams which contain
> > nul's. This is actually not reachable from the
> > UI due to reading files
> > into wxStrings first (nut quite sure why),
> > whereas this program uses
> > the parser directly. Thus, the bug is probably
> > not very critical.
> > Example hanging input attached (note there's a
> > nul in it, so your
> > editor may or may not like that).
> >
> > This program can also be fed a number of files,
> > which means it could
> > be used for automated testing that all files in
> > a batch can be parsed
> > successfully, and also provides a handy way to
> > put GDB on a program
> > when debugging the parser against specific input.
> >
> > There is timing on the parsing too, mostly for
> > interest (use the -v
> > flag). It takes about 150-3000ms per FP on my
> > machine for the FPs in
> > Connector_PinSocket_2.54mm.pretty.
> >
> > There's also some centralisation of some
> > QA-related utils into a
> > qa_utils library.
> >
> > Cheers,
> >
> > John
> > ------------------------------------------------------------------------
> > Mailing list:
> > https://launchpad.net/~kicad-developers
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe :
> > https://launchpad.net/~kicad-developers
> > More help : https://help.launchpad.net/ListHelp
> >
> > ------------------------------------------------------------------------
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help : https://help.launchpad.net/ListHelp
> >
Follow ups
References