Fix running tests in docker
This commit is contained in:
parent
a058d1b0b2
commit
d14c1916ea
|
|
@ -0,0 +1,9 @@
|
||||||
|
ARG SCHEME=
|
||||||
|
FROM schemers/${SCHEME}
|
||||||
|
RUN apt-get update && apt-get install -y git make build-essential libffi-dev
|
||||||
|
RUN git clone https://git.sr.ht/~retropikzel/compile-r7rs && cd compile-r7rs && make install
|
||||||
|
COPY libtest.c /
|
||||||
|
RUN gcc -o libtest.so -shared -fPIC libtest.c && cp libtest.so /usr/local/lib/
|
||||||
|
RUN gcc -fPIC -c libtest.c && ar rcs libtest.a libtest.o && cp libtest.a /usr/local/lib
|
||||||
|
|
||||||
|
|
||||||
124
Makefile
124
Makefile
|
|
@ -1,10 +1,7 @@
|
||||||
.PHONY=libtest.so
|
.PHONY=libtest.so
|
||||||
CC=gcc
|
CC=gcc
|
||||||
DOCKER=docker run -it -v ${PWD}:/workdir
|
DOCKER=docker run -it -v ${PWD}:/workdir
|
||||||
DOCKER_INIT=apt-get update \
|
DOCKER_INIT=cd /workdir && make clean &&
|
||||||
&& apt-get install -y git make \
|
|
||||||
&& git clone https://git.sr.ht/~retropikzel/compile-r7rs \
|
|
||||||
&& cd compile-r7rs && make install
|
|
||||||
|
|
||||||
libtest.so: libtest.c
|
libtest.so: libtest.c
|
||||||
${CC} -o libtest.so -shared -fPIC libtest.c
|
${CC} -o libtest.so -shared -fPIC libtest.c
|
||||||
|
|
@ -14,10 +11,12 @@ libtest.a: libtest.c
|
||||||
ar rcs libtest.a libtest.o
|
ar rcs libtest.a libtest.o
|
||||||
|
|
||||||
CHIBI=chibi-scheme -A .
|
CHIBI=chibi-scheme -A .
|
||||||
test-chibi-podman-amd64: libtest.so
|
test-chibi-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chibi bash -c "cd /workdir && chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub"
|
docker build -f Dockerfile --build-arg SCHEME=chibi --tag=r7rs-pffi-chibi .
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chibi bash -c "cd /workdir && apt update && apt install -y build-essential libffi-dev && ${CC} -o retropikzel/r7rs-pffi/r7rs-pffi-chibi.so -fPIC -shared retropikzel/r7rs-pffi/r7rs-pffi-chibi.c -lchibi-scheme -lffi"
|
${DOCKER} r7rs-pffi-chibi bash -c \
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chibi bash -c "cd /workdir && ${CHIBI} test.scm"
|
"${DOCKER_INIT} chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub \
|
||||||
|
&& ${CC} -o retropikzel/r7rs-pffi/r7rs-pffi-chibi.so -fPIC -shared retropikzel/r7rs-pffi/r7rs-pffi-chibi.c -lchibi-scheme -lffi \
|
||||||
|
&& ${CHIBI} test.scm"
|
||||||
|
|
||||||
retropikzel/r7rs-pffi/r7rs-pffi-chibi.c: retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub
|
retropikzel/r7rs-pffi/r7rs-pffi-chibi.c: retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub
|
||||||
chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub
|
chibi-ffi retropikzel/r7rs-pffi/r7rs-pffi-chibi.stub
|
||||||
|
|
@ -33,27 +32,19 @@ test-chibi: retropikzel/r7rs-pffi/r7rs-pffi-chibi.so libtest.so
|
||||||
${CHIBI} test.scm
|
${CHIBI} test.scm
|
||||||
|
|
||||||
CHICKEN5=SCMC=csc CSC_FLAGS='-I. -L. -L -ltest' compile-r7rs -I . main.scm
|
CHICKEN5=SCMC=csc CSC_FLAGS='-I. -L. -L -ltest' compile-r7rs -I . main.scm
|
||||||
test-chicken-5-podman-amd65: clean libtest.a
|
test-chicken-5-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:5 bash -c "cd /workdir && ${CHICKEN5} test.scm && ./test"
|
docker build --build-arg SCHEME=chicken:5 -f Dockerfile --tag=r7rs-pffi-chicken-5 .
|
||||||
|
${DOCKER} r7rs-pffi-chicken-5 bash -c "${DOCKER_INIT} ${CHICKEN5} test.scm && ./test"
|
||||||
test-chicken-5-docker: clean libtest.a
|
|
||||||
${DOCKER} schemers/chicken:5 bash -c "${DOCKER_INIT} && cd /workdir && ${CHICKEN5} test.scm && ./test"
|
|
||||||
|
|
||||||
test-chicken-5: clean libtest.a
|
test-chicken-5: clean libtest.a
|
||||||
${CHICKEN5} test.scm
|
${CHICKEN5} test.scm
|
||||||
./test
|
./test
|
||||||
|
|
||||||
CHICKEN6=csc -I.
|
CHICKEN6=SCMC=csc CSC_FLAGS='-I. -L. -L -ltest' compile-r7rs -I . main.scm
|
||||||
CHICKEN6_LIB=csc -I. -include-path ./retropikzel -s -J
|
test-chicken-6-docker:
|
||||||
test-chicken-6-podman-amd65: clean libtest.so
|
docker build --build-arg SCHEME=chicken:6 -f Dockerfile --tag=r7rs-pffi-chicken-6 .
|
||||||
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:6 bash -c "cd /workdir && ${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld"
|
${DOCKER} r7rs-pffi-chicken-6 bash -c "${DOCKER_INIT} ${CHICKEN6} test.scm && ./test"
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/chicken:6 bash -c "cd /workdir && ${CHICKEN5} test.scm && ./test"
|
|
||||||
|
|
||||||
test-chicken-6-docker: clean libtest.so
|
|
||||||
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/chicken:6 bash -c "cd /workdir && ${CHICKEN5_LIB} retropikzel.r7rs-pffi.sld"
|
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/chicken:6 bash -c "cd /workdir && ${CHICKEN5} test.scm && ./test"
|
|
||||||
|
|
||||||
test-chicken-6: clean libtest.so
|
test-chicken-6: clean libtest.so
|
||||||
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
|
||||||
|
|
@ -61,9 +52,9 @@ test-chicken-6: clean libtest.so
|
||||||
${CHICKEN6} test.scm && ./test
|
${CHICKEN6} test.scm && ./test
|
||||||
|
|
||||||
CYCLONE=cyclone -COPT -I. -A .
|
CYCLONE=cyclone -COPT -I. -A .
|
||||||
test-cyclone-podman-amd64: clean libtest.so
|
test-cyclone-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/cyclone bash -c "cd /workdir && ${CYCLONE} retropikzel/r7rs-pffi.sld"
|
docker build --build-arg SCHEME=cyclone -f Dockerfile --tag=r7rs-pffi-cyclone .
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/cyclone bash -c "cd /workdir && ${CYCLONE} test.scm && ./test"
|
${DOCKER} r7rs-pffi-cyclone bash -c "${DOCKER_INIT} ${CYCLONE} retropikzel/r7rs-pffi.sld && ${CYCLONE} test.scm && ./test"
|
||||||
|
|
||||||
test-cyclone: clean libtest.so
|
test-cyclone: clean libtest.so
|
||||||
${CYCLONE} retropikzel/r7rs-pffi.sld
|
${CYCLONE} retropikzel/r7rs-pffi.sld
|
||||||
|
|
@ -72,10 +63,9 @@ test-cyclone: clean libtest.so
|
||||||
|
|
||||||
GAMBIT_LIB=gsc -:search=.
|
GAMBIT_LIB=gsc -:search=.
|
||||||
GAMBIT_CC=gsc -exe ./ -nopreload
|
GAMBIT_CC=gsc -exe ./ -nopreload
|
||||||
test-gambit-podman-amd64: clean libtest.so
|
test-gambit-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gambit bash -c "cd /workdir && ${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$?"
|
docker build --build-arg SCHEME=gambit -f Dockerfile --tag=r7rs-pffi-gambit .
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gambit bash -c "cd /workdir && ${GAMBIT_CC} test.scm; echo $$?"
|
${DOCKER} r7rs-pffi-gambit bash -c "${DOCKER_INIT} ${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$? && ${GAMBIT_CC} test.scm; echo $$? && ./test -:search=.; echo $$?"
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gambit bash -c "cd /workdir && ./test -:search=.; echo $$?"
|
|
||||||
|
|
||||||
test-gambit: clean libtest.so
|
test-gambit: clean libtest.so
|
||||||
${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$?
|
${GAMBIT_LIB} retropikzel/r7rs-pffi; echo $$?
|
||||||
|
|
@ -87,80 +77,89 @@ test-gauche:
|
||||||
|
|
||||||
GERBIL_LIB=gxc -O
|
GERBIL_LIB=gxc -O
|
||||||
GERBIL=GERBIL_LOADPATH=. gxc r7rs
|
GERBIL=GERBIL_LOADPATH=. gxc r7rs
|
||||||
test-gerbil-podman-amd64: libtest.so
|
test-gerbil-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gerbil bash -c "cd /workdir && ${GERBIL_LIB} retropikzel/r7rs-pffi.sld"
|
docker build --build-arg SCHEME=gerbil -f Dockerfile --tag=r7rs-pffi-gerbil .
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/gerbil bash -c "cd /workdir && ${GERBIL} test.scm"
|
${DOCKER} r7rs-pffi-gerbil bash -c "${DOCKER_INIT} ${GERBIL_LIB} retropikzel/r7rs-pffi.sld && ${GERBIL} test.scm"
|
||||||
|
|
||||||
test-gerbil:
|
test-gerbil:
|
||||||
${GERBIL} test.scm
|
${GERBIL} test.scm
|
||||||
|
|
||||||
GUILE=guile --r7rs --fresh-auto-compile -L .
|
GUILE=guile --r7rs --fresh-auto-compile -L .
|
||||||
test-guile-docker: libtest.so
|
test-guile-docker:
|
||||||
${DOCKER} schemers/guile:head bash -c "cd /workdir && ${GUILE} test.scm"
|
docker build --build-arg SCHEME=guile:head -f Dockerfile --tag=r7rs-pffi-guile .
|
||||||
|
${DOCKER} r7rs-pffi-guile bash -c "${DOCKER_INIT} ${GUILE} test.scm"
|
||||||
|
|
||||||
test-guile: libtest.so
|
test-guile: libtest.so
|
||||||
${GUILE} test.scm
|
${GUILE} test.scm
|
||||||
|
|
||||||
KAWA=java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar --r7rs --full-tailcalls -Dkawa.import.path=.:*.sld
|
KAWA=java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar --r7rs --full-tailcalls -Dkawa.import.path=.:*.sld
|
||||||
test-kawa-podman-amd64: libtest.so
|
test-kawa-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/kawa bash -c "cd /workdir && ${KAWA} test.scm"
|
docker build --build-arg SCHEME=kawa -f Dockerfile --tag=r7rs-pffi-kawa .
|
||||||
|
${DOCKER} r7rs-pffi-kawa bash -c "${DOCKER_INIT} ${KAWA} test.scm"
|
||||||
test-kawa-docker: libtest.so
|
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/kawa bash -c "cd /workdir && ${KAWA} test.scm"
|
|
||||||
|
|
||||||
test-kawa: libtest.so
|
test-kawa: libtest.so
|
||||||
${KAWA} test.scm
|
${KAWA} test.scm
|
||||||
|
|
||||||
LARCENY=larceny -r7 -I .
|
LARCENY=larceny -r7 -I .
|
||||||
test-larceny-docker: libtest.so
|
test-larceny-docker:
|
||||||
${DOCKER} schemers/larceny:latest bash -c "cd /workdir && ${LARCENY} test.scm"
|
docker build --build-arg SCHEME=larceny -f Dockerfile --tag=r7rs-pffi-larceny .
|
||||||
|
${DOCKER} r7rs-pffi-larceny bash -c "${DOCKER_INIT} ${LARCENY} test.scm"
|
||||||
|
|
||||||
test-larceny: libtest.so
|
test-larceny: libtest.so
|
||||||
${LARCENY} test.scm
|
${LARCENY} test.scm
|
||||||
|
|
||||||
MOSH=mosh --loadpath=.
|
MOSH=mosh --loadpath=.
|
||||||
test-mosh-podman-amd64: libtest.so
|
test-mosh-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/mosh:0 bash -c "cd /workdir && ${MOSH} test.scm"
|
docker build --build-arg SCHEME=mosh -f Dockerfile --tag=r7rs-pffi-mosh .
|
||||||
|
${DOCKER} r7rs-pffi-mosh bash -c "${DOCKER_INIT} ${MOSH} test.scm"
|
||||||
test-mosh-docker: libtest.so
|
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/mosh:0 bash -c "cd /workdir && ${MOSH} test.scm"
|
|
||||||
|
|
||||||
test-mosh: libtest.so
|
test-mosh: libtest.so
|
||||||
${MOSH} test.scm
|
${MOSH} test.scm
|
||||||
|
|
||||||
SASH=sash --clean-cache -r7 -L . -L ./schubert
|
SASH=sash --clean-cache -r7 -L .
|
||||||
test-sagittarius-podman-amd64: libtest.so
|
test-sagittarius-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/sagittarius bash -c "cd /workdir && ${SASH} test.scm"
|
docker build --build-arg SCHEME=sagittarius -f Dockerfile --tag=r7rs-pffi-sagittarius .
|
||||||
|
${DOCKER} r7rs-pffi-sagittarius bash -c "${DOCKER_INIT} ${SASH} test.scm"
|
||||||
test-sagittarius-docker: libtest.so
|
|
||||||
docker run -it -v ${PWD}:/workdir docker.io/schemers/sagittarius bash -c "cd /workdir && ${SASH} test.scm"
|
|
||||||
|
|
||||||
test-sagittarius: libtest.so
|
test-sagittarius: libtest.so
|
||||||
${SASH} test.scm
|
${SASH} test.scm
|
||||||
|
|
||||||
RACKET=racket -I r7rs -S . -S ./schubert --script
|
RACKET=racket -I r7rs -S . --script
|
||||||
test-racket-podman-amd64: libtest.so
|
test-racket-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/racket bash -c "cd /workdir && ${RACKET} test.scm"
|
docker build --build-arg SCHEME=racket -f Dockerfile --tag=r7rs-pffi-racket .
|
||||||
|
${DOCKER} r7rs-pffi-racket bash -c "${DOCKER_INIT} ${RACKET} test.scm"
|
||||||
|
|
||||||
test-racket: libtest.so
|
test-racket: libtest.so
|
||||||
${RACKET} test.scm
|
${RACKET} test.scm
|
||||||
|
|
||||||
|
SKINT=skint
|
||||||
|
test-skint-docker:
|
||||||
|
docker build --build-arg SCHEME=skint:head -f Dockerfile --tag=r7rs-pffi-skint .
|
||||||
|
${DOCKER} r7rs-pffi-skint bash -c "${DOCKER_INIT} ${SKINT} test.scm"
|
||||||
|
|
||||||
test-skint: libtest.so
|
test-skint: libtest.so
|
||||||
skint test.scm
|
${SKINT} test.scm
|
||||||
|
|
||||||
STKLOS=stklos -A . -f
|
STKLOS=stklos -A . -f
|
||||||
test-stklos-podman-amd64: libtest.so
|
test-stklos-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/stklos bash -c "cd /workdir && ${STKLOS} test.scm"
|
docker build --build-arg SCHEME=stklos:head -f Dockerfile --tag=r7rs-pffi-stklos .
|
||||||
|
${DOCKER} r7rs-pffi-stklos bash -c "${DOCKER_INIT} ${STKLOS} test.scm"
|
||||||
|
|
||||||
test-stklos: libtest.so
|
test-stklos: libtest.so
|
||||||
${STKLOS} test.scm
|
${STKLOS} test.scm
|
||||||
|
|
||||||
|
TR7=tr7i
|
||||||
|
test-tr7-docker:
|
||||||
|
docker build --build-arg SCHEME=tr7:head -f Dockerfile --tag=r7rs-pffi-tr7 .
|
||||||
|
${DOCKER} r7rs-pffi-tr7 bash -c "${DOCKER_INIT} ${TR7} test.scm"
|
||||||
|
|
||||||
test-tr7: libtest.so
|
test-tr7: libtest.so
|
||||||
tr7i test.scm
|
${TR7} test.scm
|
||||||
|
|
||||||
YPSILON=ypsilon --r7rs --sitelib=. --top-level-program
|
YPSILON=ypsilon --r7rs --sitelib=. --top-level-program
|
||||||
test-ypsilon-podman-amd64: libtest.so
|
test-ypsilon-docker:
|
||||||
podman run --arch=amd64 -it -v ${PWD}:/workdir docker.io/schemers/ypsilon bash -c "cd /workdir && ${YPSILON} test.scm"
|
docker build --build-arg SCHEME=ypsilon -f Dockerfile --tag=r7rs-pffi-ypsilon .
|
||||||
|
${DOCKER} r7rs-pffi-ypsilon bash -c "${DOCKER_INIT} ${YPSILON} test.scm"
|
||||||
|
|
||||||
test-ypsilon: libtest.so
|
test-ypsilon: libtest.so
|
||||||
${YPSILON} test.scm
|
${YPSILON} test.scm
|
||||||
|
|
@ -169,7 +168,6 @@ documentation:
|
||||||
cat README.md > docs/index.md
|
cat README.md > docs/index.md
|
||||||
mkdocs build
|
mkdocs build
|
||||||
|
|
||||||
|
|
||||||
tmp:
|
tmp:
|
||||||
mkdir -p tmp
|
mkdir -p tmp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
(else (error "Can not get size of unknown type" type)))))
|
(else (error "Can not get size of unknown type" type)))))
|
||||||
|
|
||||||
(define pffi-shared-object-load
|
(define pffi-shared-object-load
|
||||||
(lambda (headers path)
|
(lambda (headers path . options)
|
||||||
(let ((shared-object (dlopen path RTLD-NOW))
|
(let ((shared-object (dlopen path RTLD-NOW))
|
||||||
(maybe-error (dlerror)))
|
(maybe-error (dlerror)))
|
||||||
(when (not (pffi-pointer-null? maybe-error))
|
(when (not (pffi-pointer-null? maybe-error))
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@
|
||||||
(invoke (invoke pointer 'reinterpret (static-field java.lang.Integer 'MAX_VALUE)) 'getString 0)))
|
(invoke (invoke pointer 'reinterpret (static-field java.lang.Integer 'MAX_VALUE)) 'getString 0)))
|
||||||
|
|
||||||
(define pffi-shared-object-load
|
(define pffi-shared-object-load
|
||||||
(lambda (header path)
|
(lambda (header path . options)
|
||||||
(let* ((library-file (make java.io.File path))
|
(let* ((library-file (make java.io.File path))
|
||||||
(file-name (invoke library-file 'getName))
|
(file-name (invoke library-file 'getName))
|
||||||
(library-parent-folder (make java.io.File (invoke library-file 'getParent)))
|
(library-parent-folder (make java.io.File (invoke library-file 'getParent)))
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
(else (error "Can not get size of unknown type" type)))))
|
(else (error "Can not get size of unknown type" type)))))
|
||||||
|
|
||||||
(define pffi-shared-object-load
|
(define pffi-shared-object-load
|
||||||
(lambda (header path)
|
(lambda (header path . options)
|
||||||
(open-shared-library path)))
|
(open-shared-library path)))
|
||||||
|
|
||||||
(define pffi-pointer-null
|
(define pffi-pointer-null
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@
|
||||||
(pointer->string pointer)))
|
(pointer->string pointer)))
|
||||||
|
|
||||||
(define pffi-shared-object-load
|
(define pffi-shared-object-load
|
||||||
(lambda (headers path)
|
(lambda (headers path . options)
|
||||||
(open-shared-library path)))
|
(open-shared-library path)))
|
||||||
|
|
||||||
(define pffi-pointer-free
|
(define pffi-pointer-free
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue