On Sun, Dec 31, 2017 at 10:15:18PM -0600, kevans@xxxxxxxxxxx wrote: > This doesn't make things work out of the box necessarily, but it gets us a step > closer. > > - alloca(3) on FreeBSD and OpenBSD, at least, is provided as part of > <stdlib.h>. I make the change here for FreeBSD only, though, as I cannot test it > on OpenBSD. TBH, rather than dicking around with #ifdefs and headers, I'd rather use use malloc() instead of alloca(). > - stat -c %s's equivalent on FreeBSD is stat -f %Uz; these differ enough, allow > STATSZ in the environment to specify local replacement for a stat that outputs > size in bytes of an argument. Can you split this change out into a separate patch, please. > > This greatly reduces, but not eliminates, the magnitude of patch needed to run > the test suite successfully on other platforms. It also helps denote where > changes may be required. > > Signed-off-by: Kyle Evans <kevans@xxxxxxxxxxx> > --- > fdtoverlay.c | 3 +++ > tests/run_tests.sh | 13 +++++++++---- > 2 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/fdtoverlay.c b/fdtoverlay.c > index 7f124fc..7d60021 100644 > --- a/fdtoverlay.c > +++ b/fdtoverlay.c > @@ -26,7 +26,10 @@ > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > +/* alloc(3) is provided by stdlib.h on some platforms */ > +#ifndef __FreeBSD__ > #include <alloca.h> > +#endif > #include <inttypes.h> > > #include <libfdt.h> > diff --git a/tests/run_tests.sh b/tests/run_tests.sh > index d36dffb..13c9f1c 100755 > --- a/tests/run_tests.sh > +++ b/tests/run_tests.sh > @@ -6,6 +6,11 @@ if [ -z "$CC" ]; then > CC=gcc > fi > > +# stat differs between platforms > +if [ -z "$STATSZ" ]; then > + STATSZ="stat -c %s" > +fi > + > export QUIET_TEST=1 > STOP_ON_FAIL=0 > > @@ -114,7 +119,7 @@ run_wrap_error_test () { > # $2: align base > check_align () { > shorten_echo "check_align $@: " > - local size=$(stat -c %s "$1") > + local size=$($STATSZ "$1") > local align="$2" > ( > if [ $(($size % $align)) -eq 0 ] ;then > @@ -714,7 +719,7 @@ fdtput_tests () { > text=lorem.txt > > # Allow just enough space for $text > - run_dtc_test -O dtb -p $(stat -c %s $text) -o $dtb $dts > + run_dtc_test -O dtb -p $($STATSZ $text) -o $dtb $dts > > # run_fdtput_test <expected-result> <file> <node> <property> <flags> <value> > run_fdtput_test "a_model" $dtb / model -ts "a_model" > @@ -733,7 +738,7 @@ fdtput_tests () { > run_fdtput_test "$(cat $text $text)" $dtb /randomnode blob -ts "$(cat $text $text)" > > # Start again with a fresh dtb > - run_dtc_test -O dtb -p $(stat -c %s $text) -o $dtb $dts > + run_dtc_test -O dtb -p $($STATSZ $text) -o $dtb $dts > > # Node creation > run_wrap_error_test $DTPUT $dtb -c /baldrick sod > @@ -761,7 +766,7 @@ fdtput_tests () { > run_wrap_test $DTPUT $dtb -cp /chosen/son > > # Start again with a fresh dtb > - run_dtc_test -O dtb -p $(stat -c %s $text) -o $dtb $dts > + run_dtc_test -O dtb -p $($STATSZ $text) -o $dtb $dts > > # Node delete > run_wrap_test $DTPUT $dtb -c /chosen/node1 /chosen/node2 /chosen/node3 -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature