X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fforeign.test.sh;h=2c5d0d309b3c2b9c4e959d671408172454a51925;hb=f31bc323d5bfc205f94164b203833f35033df3cd;hp=992ae865cb9f4180c9858ef89ded3c7defb803fe;hpb=801730762f17302c33b70398b632aa1393c6722a;p=sbcl.git diff --git a/tests/foreign.test.sh b/tests/foreign.test.sh index 992ae86..2c5d0d3 100644 --- a/tests/foreign.test.sh +++ b/tests/foreign.test.sh @@ -14,7 +14,9 @@ # absolutely no warranty. See the COPYING and CREDITS files for # more information. +. ./expect.sh . ./subr.sh + use_test_subdirectory echo //entering foreign.test.sh @@ -34,14 +36,23 @@ build_so() ( CFLAGS="$CFLAGS -fPIC" ;; esac - if [ "`uname`" = Darwin ]; then - SO_FLAGS="-bundle" - if run_sbcl --eval '(sb-ext:quit :unix-status #+x86-64 0 #-x86-64 1)'; then - CFLAGS="$CFLAGS -arch x86_64" - fi - else - SO_FLAGS="-shared" - fi + case "`uname`" in + Darwin) + SO_FLAGS="-bundle" + if run_sbcl --eval '(sb-ext:quit :unix-status #+x86-64 0 #-x86-64 1)'; then + CFLAGS="$CFLAGS -arch x86_64" + fi + ;; + OpenBSD) + SO_FLAGS="-shared" + if [ "`machine -a`" = "powerpc" ]; then + CFLAGS="$CFLAGS -fPIC" + fi + ;; + *) + SO_FLAGS="-shared" + ;; + esac cc -c $1.c -o $1.o $CFLAGS ld $SO_FLAGS -o $1.so $1.o ) @@ -100,6 +111,14 @@ int long_test2(int i1, int i2, int i3, int i4, int i5, int i6, return (l1 == (1 + powish(2,37))); } +int long_sap_test1(int *p1, long long l1) { + return (l1 == (3 + powish(2,*p1))); +} + +int long_sap_test2(int *p1, int i1, long long l1) { + return (l1 == (3 + powish(2,*p1))); +} + long long return_long_long() { return powish(2,33); } @@ -150,6 +169,8 @@ cat > $TEST_FILESTEM.base.lisp < $TEST_FILESTEM.test.lisp < $TEST_FILESTEM.test.lisp < $TEST_FILESTEM.alien.enum.lisp <