"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Christian Weisgerber <naddy@mips.inka.de>
Subject:
Re: got tests on FreeBSD
To:
gameoftrees@openbsd.org
Date:
Sat, 28 Nov 2020 01:10:11 +0100

Download raw body.

Thread
Ed Maste:

> I'm working on getting the got test suite running on FreeBSD (via
> Cirrus-CI); naddy I'm wondering if you've tried running them and if so
> what your results look like.

I don't use got-build-regress.sh, but there is a target "run-test"
in the port Makefile and the required patches to run the tests on
FreeBSD.

(It's not hooked into the normal ports test framework because it
requires git and got itself to be already installed, and I was told
on freebsd-ports that a recursive TEST_DEPENDS is not allowed.)

As of 0.44, the regression tests run fine on FreeBSD 12.2-STABLE.

Let me try with a checkout from the current got repository...

------------------->
===> cmdline (regress)
./checkout.sh -q -r "/tmp"
./update.sh -q -r "/tmp"
./status.sh -q -r "/tmp"
./log.sh -q -r "/tmp"
./add.sh -q -r "/tmp"
./rm.sh -q -r "/tmp"
./diff.sh -q -r "/tmp"
--- /tmp/got-test-diff_binary_files-99oCa6g0/stdout.expected
2020-11-28 00:38:09.164580000 +0100
+++ /tmp/got-test-diff_binary_files-99oCa6g0/stdout     2020-11-28
00:38:09.170500000 +0100
@@ -5,4 +5,4 @@
 +++ foo
 @@ -0,0 +1 @@
 +????
-\\ No newline at end of file
+\ No newline at end of file
test failed; leaving test data in
/tmp/got-test-diff_binary_files-99oCa6g0
*** Error code 1

Stop.
<-------------------

So that is something to look at, but it is quite different from...

> I'm mainly curious if there's any existing experience with them on
> FreeBSD, but if you're interested results can be found at
> https://cirrus-ci.com/task/5584869487017984.

... the catastrophic failures you get there.

Oh, I think that explains it:

/tmp/cirrus-ci-build/tog/../lib/diff_main.c:277:4: warning: implicit
declaration of function 'recallocarray' is invalid in C99

Looks like you're missing the #include "openbsd-compat.h" in the
newly added files, and without prototype recallocarray() is assumed
to be int, truncating the returned pointer... BOOM!


PS:
/tmp/cirrus-ci-build/libexec/got-read-gotconfig/parse.y:140:46:
warning: incompatible pointer types passing 'long long *' to parameter
of type 'int64_t *' (aka 'long *')
Although harmless, you still have that bogus change in there that
resulted from some merge error.  Apart from the universal
#include "openbsd-compat.h", parse.y should not have any differences
to upstream now.

-- 
Christian "naddy" Weisgerber                          naddy@mips.inka.de