On 2018/10/04 11:36, Solene Rapenne wrote:
> Klemens Nanni <[email protected]> wrote:
> > DEBUG=-g3 is honored for the normal build but not tests:
> >
> > $ make DEBUG=-g3 test
> > ...
> > gmake[2]: Leaving directory '/tmp/pobj/ipv6calc-1.1.0/ipv6calc-1.1.0'
> > cc -o ipv6calc ipv6calc.o showinfo.o ipv6calchelp_local.o -lcrypto
> > -L../lib/ -L../databases/lib/ -lipv6calc_db_wrapper -lipv6calc -lm
> > ...
> >
> > Which is needed since one test reproducibly dumps core on my X250:
> >
> > ...
> > INFO : run 'ipv6calc' pipe tests (1)
> > Segmentation fault (core dumped)
> > INFO : test 'echo 3ffe::1:ff00:1234 | ./ipv6calc --in ipv6addr --out
> > ipv6addr --printuncompressed | grep "^3ffe:0:0:0:0:1:ff00:1234$"'
> > Error executing 'ipv6calc' (1)!
> > gmake[1]: *** [Makefile:65: test] Error 1
> > gmake[1]: Leaving directory
> > '/tmp/pobj/ipv6calc-1.1.0/ipv6calc-1.1.0/ipv6calc'
> > Result: 2
> > gmake: *** [Makefile:166: test] Error 2
> > *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2768
> > '/tmp/pobj/ipv6calc-1.1.0/.test_done')
> > *** Error 1 in /usr/ports/net/ipv6calc
> > (/usr/ports/infrastructure/mk/bsd.port.mk:2412 'test')
> >
> > Homepage has TLS.
>
> Thanks for feedback. I get the seg fault too. FTIW, the current port test
> segfault too.
>
> I really can't get "make test" to honour flags, if someone has a clue it would
> be nice to share about it, I'm stuck right now.
>
> adding TEST_FLAGS= CFLAGS="${CFLAGS}" to Makefile doesn't help, I've been
> trying to fiddle in the Makefile with no success.
>
> The test target is the following:
>
> test:
> for dir in ipv6calc ipv6logconv ipv6logstats ipv6loganon
> ipv6calcweb $(MOD_IPV6CALC_DIR); do \
> ocwd=`pwd`; \
> cd $$dir || exit 1; \
> ${MAKE} $@ ; r=$$?; \
> cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result:
> $$r"; exit $$r; fi; \
> done || exit 1
> echo "ALL TESTS SUCCESSFUL"
>
I just ran the failing test manually. bt looks like:
[New process 166218]
Core was generated by `ipv6calc'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000012c86b4042b1 in main (argc=0, argv=0x7f7fffff1b58) at ipv6calc.c:887
887 if (*ptrptr[0] != '\0') {
(gdb) p ptrptr
$1 = (char **) 0x7f7ffffe7500
(gdb) p *ptrptr
$2 = 0x0
(gdb) list
882 inputc = 1;
883
884 DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Token 1: '%s'",
input1);
885
886 /* check for second token */
887 if (*ptrptr[0] != '\0') {
888 input2 = *ptrptr;
889 inputc = 2;
890
891 DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Token 2:
'%s'", input2);
(gdb) quit
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/ipv6calc/Makefile,v
retrieving revision 1.21
diff -u -p -r1.21 Makefile
--- Makefile 28 Nov 2017 12:03:28 -0000 1.21
+++ Makefile 4 Oct 2018 13:23:57 -0000
@@ -20,4 +20,7 @@ MAKE_FLAGS= DEFAULT_CFLAGS=
TEST_TARGET= test
+pre-test:
+ sed -i 's,^source ,. ,' ${WRKSRC}/*/test*.sh
+
.include <bsd.port.mk>
Index: patches/patch-ipv6calc_ipv6calc_c
===================================================================
RCS file: patches/patch-ipv6calc_ipv6calc_c
diff -N patches/patch-ipv6calc_ipv6calc_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ipv6calc_ipv6calc_c 4 Oct 2018 13:23:57 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ipv6calc/ipv6calc.c
+--- ipv6calc/ipv6calc.c.orig
++++ ipv6calc/ipv6calc.c
+@@ -884,7 +884,7 @@ PIPE_input:
+ DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Token 1: '%s'", input1);
+
+ /* check for second token */
+- if (*ptrptr[0] != '\0') {
++ if (*ptrptr && *ptrptr[0] != '\0') {
+ input2 = *ptrptr;
+ inputc = 2;
+