Fix testing
This commit is contained in:
parent
33f37aa77c
commit
9a0f13923e
|
|
@ -8,4 +8,5 @@
|
||||||
retropikzel/*/README.html
|
retropikzel/*/README.html
|
||||||
foreign
|
foreign
|
||||||
venv
|
venv
|
||||||
|
tmp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,45 +1,47 @@
|
||||||
ARG SCHEME=chibi
|
ARG SCHEME=chibi
|
||||||
ARG IMAGE=${SCHEME}:head
|
ARG IMAGE=chibi:head
|
||||||
FROM debian:trixie AS build
|
|
||||||
RUN apt-get update && apt-get install -y \
|
FROM docker.io/debian:trixie AS build
|
||||||
git ca-certificates make gcc libffi-dev libffi-dev wget xz-utils libcurl4
|
RUN apt-get update && apt-get install -y build-essential git ca-certificates curl xz-utils chicken-bin
|
||||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
RUN chicken-install r7rs
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
RUN wget https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e31aaea0/akku-1.1.0.amd64-linux.tar.xz \
|
RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1
|
||||||
&& tar -xf akku-1.1.0.amd64-linux.tar.xz \
|
RUN curl -O https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e31aaea0/akku-1.1.0.amd64-linux.tar.xz
|
||||||
&& mv akku-1.1.0.amd64-linux akku
|
RUN tar -xf akku*.tar.xz && mv akku-1.1.0.amd64-linux akku
|
||||||
#RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=2
|
RUN git clone https://codeberg.org/retropikzel/scheme-venv.git --depth=1
|
||||||
RUN git clone https://github.com/Retropikzel/chibi-scheme.git --branch=snow-chibi-kawa-fixes --depth=1
|
RUN git clone https://codeberg.org/retropikzel/compile-scheme.git --depth=1
|
||||||
RUN git clone https://codeberg.org/retropikzel/compile-scheme.git --depth=2
|
|
||||||
WORKDIR /build/chibi-scheme
|
WORKDIR /build/chibi-scheme
|
||||||
RUN make
|
RUN make
|
||||||
RUN make install
|
RUN make install
|
||||||
|
|
||||||
WORKDIR /build/compile-scheme
|
WORKDIR /build/compile-scheme
|
||||||
RUN make build-gauche
|
RUN mkdir -p /root/.snow && echo "()" > /root/.snow/config.scm
|
||||||
|
RUN snow-chibi install --impls=chicken --always-yes retropikzel.system
|
||||||
|
RUN snow-chibi install --impls=chicken --always-yes srfi.170
|
||||||
|
RUN make build-chicken
|
||||||
|
|
||||||
|
|
||||||
ARG SCHEME=chibi
|
ARG SCHEME=chibi
|
||||||
ARG IMAGE=${SCHEME}:head
|
FROM docker.io/schemers/${IMAGE}
|
||||||
FROM schemers/${IMAGE}
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
make gcc libffi-dev libcurl4 gauche lighttpd
|
|
||||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
|
||||||
COPY --from=build /build /build
|
COPY --from=build /build /build
|
||||||
ARG SCHEME=chibi
|
RUN apt-get update && apt-get install -y make curl
|
||||||
WORKDIR /build/compile-scheme
|
|
||||||
RUN make install
|
|
||||||
WORKDIR /build/chibi-scheme
|
WORKDIR /build/chibi-scheme
|
||||||
RUN make install
|
RUN make install
|
||||||
WORKDIR /build/akku
|
WORKDIR /build/akku
|
||||||
RUN bash install.sh
|
RUN bash install.sh
|
||||||
ENV PATH=/root/.local/bin:${PATH}
|
RUN ln -sf /root/.local/bin/akku /usr/local/bin/akku
|
||||||
RUN akku update
|
WORKDIR /build/scheme-venv
|
||||||
|
RUN make install
|
||||||
|
WORKDIR /build/compile-scheme
|
||||||
|
RUN make install
|
||||||
|
|
||||||
|
RUN mkdir -p /root/.snow && echo "()" > /root/.snow/config.scm
|
||||||
WORKDIR /workdir
|
WORKDIR /workdir
|
||||||
COPY fcgi-lighttpd.conf .
|
ARG SCHEME=chibi
|
||||||
RUN snow-chibi --impls=${SCHEME} --always-yes install "(srfi 60)"
|
ENV COMPILE_R7RS=${SCHEME}
|
||||||
RUN snow-chibi --impls=${SCHEME} --always-yes install "(srfi 64)"
|
|
||||||
RUN if [ "${SCHEME}" != "gauche" ]; then snow-chibi --impls=${SCHEME} --always-yes install "(srfi 106)"; fi
|
|
||||||
RUN if [ "${SCHEME}" != "gauche" ]; then snow-chibi --impls=${SCHEME} --always-yes install --install-source-dir=. --install-library-dir=. "(srfi 106)"; fi
|
|
||||||
RUN snow-chibi --impls=${SCHEME} --always-yes install "(srfi 180)"
|
|
||||||
COPY Makefile .
|
COPY Makefile .
|
||||||
COPY retropikzel retropikzel/
|
COPY retropikzel retropikzel/
|
||||||
RUN akku install loko-srfi
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters {
|
parameters {
|
||||||
string(name: 'LIBRARIES', defaultValue: 'ctrf', description: '')
|
string(name: 'LIBRARIES', defaultValue: 'ctrf mouth string url-encoding', description: '')
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
|
|
@ -28,7 +28,7 @@ pipeline {
|
||||||
[(SCHEME): {
|
[(SCHEME): {
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "timeout 600 make SCHEME=${SCHEME} DOCKER_QUIET='' test-r6rs-docker"
|
sh "timeout 600 make SCHEME=${SCHEME} LIBRARY=${LIBRARY} RNRS=r6rs run-test-docker"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
@ -48,7 +48,7 @@ pipeline {
|
||||||
[(SCHEME): {
|
[(SCHEME): {
|
||||||
stage("${SCHEME}") {
|
stage("${SCHEME}") {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh "timeout 600 make SCHEME=${SCHEME} DOCKER_QUIET='' test-r7rs-docker"
|
sh "timeout 600 make SCHEME=${SCHEME} LIBRARY=${LIBRARY} RNRS=r7rs run-test-docker"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
|
||||||
70
Makefile
70
Makefile
|
|
@ -16,7 +16,6 @@ DOCKERIMG=${SCHEME}:head
|
||||||
ifeq "${SCHEME}" "chicken"
|
ifeq "${SCHEME}" "chicken"
|
||||||
DOCKERIMG="chicken:5"
|
DOCKERIMG="chicken:5"
|
||||||
endif
|
endif
|
||||||
DOCKER_TAG=scheme-library-test-${SCHEME}
|
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
|
|
@ -30,32 +29,53 @@ install:
|
||||||
uninstall:
|
uninstall:
|
||||||
-snow-chibi remove --impls=${SCHEME} ${PKG}
|
-snow-chibi remove --impls=${SCHEME} ${PKG}
|
||||||
|
|
||||||
init-venv: build
|
run-test-venv: build
|
||||||
@rm -rf venv
|
rm -rf venv
|
||||||
@scheme-venv ${SCHEME} ${RNRS} venv
|
scheme-venv ${SCHEME} ${RNRS} venv
|
||||||
@echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (retropikzel mouth) (srfi 64) (retropikzel ctrf) (retropikzel ${LIBRARY}))" > venv/test.scm
|
echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (retropikzel mouth) (srfi 64) (retropikzel ctrf) (retropikzel ${LIBRARY}))" > venv/test.scm
|
||||||
@echo "(test-runner-current (ctrf-runner))" >> venv/test.scm
|
echo "(test-runner-current (ctrf-runner))" >> venv/test.scm
|
||||||
@printf "#!r6rs\n(import (rnrs) (srfi :64) (srfi :98) (retropikzel mouth) (retropikzel ${LIBRARY}))" > venv/test.sps
|
printf "#!r6rs\n(import (rnrs) (srfi :64) (srfi :98) (retropikzel mouth) (retropikzel ${LIBRARY}))" > venv/test.sps
|
||||||
@cat ${TESTFILE} >> venv/test.scm
|
cat ${TESTFILE} >> venv/test.scm
|
||||||
@cat ${TESTFILE} >> venv/test.sps
|
cat ${TESTFILE} >> venv/test.sps
|
||||||
@if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install retropikzel.mouth; fi
|
if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; fi
|
||||||
@if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install --always-yes retropikzel.ctrf; fi
|
if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install retropikzel.mouth; fi
|
||||||
@if [ "${RNRS}" = "r6rs" ]; then if [ -d ../foreign-c ]; then cp -r ../foreign-c/foreign venv/lib/; fi; fi
|
if [ "${RNRS}" = "r7rs" ]; then printf "1\n1\n" | ./venv/bin/snow-chibi install retropikzel.ctrf; fi
|
||||||
@if [ "${RNRS}" = "r6rs" ]; then if [ -d ../foreign-c-srfis ]; then cp -r ../foreign-c-srfis/srfi venv/lib/; fi; fi
|
if [ "${RNRS}" = "r6rs" ]; then cp -r retropikzel venv/lib/; fi
|
||||||
@if [ "${RNRS}" = "r6rs" ]; then cp -r retropikzel venv/lib/; fi
|
if [ "${SCHEME}" = "chezscheme" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
||||||
@if [ "${SCHEME}" = "chezscheme" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
if [ "${SCHEME}" = "ikarus" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
||||||
@if [ "${SCHEME}" = "ikarus" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
if [ "${SCHEME}" = "ironscheme" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
||||||
@if [ "${SCHEME}" = "ironscheme" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
if [ "${SCHEME}" = "racket" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
||||||
@if [ "${SCHEME}" = "racket" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi
|
if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/akku install; fi
|
||||||
@if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/akku install; fi
|
if [ "${SCHEME}-${RNRS}" = "mosh-r7rs" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; fi
|
||||||
@if [ "${SCHEME}" = "chicken" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; fi
|
if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install ${PKG}; fi
|
||||||
@if [ "${SCHEME}-${RNRS}" = "mosh-r7rs" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; fi
|
|
||||||
@if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install ${PKG}; fi
|
|
||||||
|
|
||||||
run-test: init-venv
|
|
||||||
if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/scheme-compile venv/test.sps; fi
|
if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/scheme-compile venv/test.sps; fi
|
||||||
if [ "${RNRS}" = "r7rs" ]; then VENV_CSC_ARGS="-L -lcurl" ./venv/bin/scheme-compile venv/test.scm; fi
|
if [ "${RNRS}" = "r7rs" ]; then CSC_OPTIONS="-L -lcurl" ./venv/bin/scheme-compile venv/test.scm; fi
|
||||||
./venv/test
|
./venv/test
|
||||||
|
|
||||||
|
run-test-system: build
|
||||||
|
mkdir -p tmp
|
||||||
|
echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (retropikzel mouth) (srfi 64) (retropikzel ctrf) (retropikzel ${LIBRARY}))" > tmp/test.scm
|
||||||
|
echo "(test-runner-current (ctrf-runner))" >> tmp/test.scm
|
||||||
|
printf "#!r6rs\n(import (rnrs) (srfi :64) (srfi :98) (retropikzel mouth) (retropikzel ${LIBRARY}))" > tmp/test.sps
|
||||||
|
cat ${TESTFILE} >> tmp/test.scm
|
||||||
|
cat ${TESTFILE} >> tmp/test.sps
|
||||||
|
if [ "${RNRS}" = "r7rs" ]; then snow-chibi install --always-yes srfi.64; fi
|
||||||
|
if [ "${RNRS}" = "r7rs" ]; then snow-chibi install retropikzel.mouth; fi
|
||||||
|
if [ "${RNRS}" = "r7rs" ]; then printf "1\n1\n" | snow-chibi install retropikzel.ctrf; fi
|
||||||
|
if [ "${SCHEME}" = "chezscheme" ]; then akku install akku-r7rs chez-srfi; fi
|
||||||
|
if [ "${SCHEME}" = "ikarus" ]; then akku install akku-r7rs chez-srfi; fi
|
||||||
|
if [ "${SCHEME}" = "ironscheme" ]; then akku install akku-r7rs chez-srfi; fi
|
||||||
|
if [ "${SCHEME}" = "racket" ]; then akku install akku-r7rs chez-srfi; fi
|
||||||
|
if [ "${RNRS}" = "r6rs" ]; then akku install; fi
|
||||||
|
if [ "${SCHEME}-${RNRS}" = "mosh-r7rs" ]; then snow-chibi install --always-yes srfi.64; fi
|
||||||
|
if [ "${RNRS}" = "r7rs" ]; then snow-chibi install ${PKG}; fi
|
||||||
|
if [ "${RNRS}" = "r6rs" ]; then COMPILE_SCHEME=${SCHEME} compile-scheme tmp/test.sps; fi
|
||||||
|
if [ "${RNRS}" = "r7rs" ]; then COMPILE_SCHEME=${SCHEME} CSC_OPTIONS="-L -lcurl" compile-scheme tmp/test.scm; fi
|
||||||
|
./tmp/test
|
||||||
|
|
||||||
|
run-test-docker:
|
||||||
|
docker build --build-arg IMAGE=${DOCKERIMG} -f Dockerfile.test --tag=scheme-libraries-${SCHEME}-${RNRS} .
|
||||||
|
docker run scheme-libraries-${SCHEME}-${RNRS} sh -c "make SCHEME=${SCHEME} RNRS=${RNRS} LIBRARY=${LIBRARY} run-test-system ; chmod 755 *.json"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
git clean -X -f
|
git clean -X -f
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue