Fix testing
This commit is contained in:
parent
33f37aa77c
commit
9a0f13923e
|
|
@ -8,4 +8,5 @@
|
|||
retropikzel/*/README.html
|
||||
foreign
|
||||
venv
|
||||
tmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,45 +1,47 @@
|
|||
ARG SCHEME=chibi
|
||||
ARG IMAGE=${SCHEME}:head
|
||||
FROM debian:trixie AS build
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git ca-certificates make gcc libffi-dev libffi-dev wget xz-utils libcurl4
|
||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||
ARG IMAGE=chibi:head
|
||||
|
||||
FROM docker.io/debian:trixie AS build
|
||||
RUN apt-get update && apt-get install -y build-essential git ca-certificates curl xz-utils chicken-bin
|
||||
RUN chicken-install r7rs
|
||||
|
||||
WORKDIR /build
|
||||
RUN wget https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e31aaea0/akku-1.1.0.amd64-linux.tar.xz \
|
||||
&& tar -xf akku-1.1.0.amd64-linux.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://github.com/Retropikzel/chibi-scheme.git --branch=snow-chibi-kawa-fixes --depth=1
|
||||
RUN git clone https://codeberg.org/retropikzel/compile-scheme.git --depth=2
|
||||
RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1
|
||||
RUN curl -O https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e31aaea0/akku-1.1.0.amd64-linux.tar.xz
|
||||
RUN tar -xf akku*.tar.xz && mv akku-1.1.0.amd64-linux akku
|
||||
RUN git clone https://codeberg.org/retropikzel/scheme-venv.git --depth=1
|
||||
RUN git clone https://codeberg.org/retropikzel/compile-scheme.git --depth=1
|
||||
|
||||
WORKDIR /build/chibi-scheme
|
||||
RUN make
|
||||
RUN make install
|
||||
|
||||
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 IMAGE=${SCHEME}:head
|
||||
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
|
||||
FROM docker.io/schemers/${IMAGE}
|
||||
|
||||
COPY --from=build /build /build
|
||||
ARG SCHEME=chibi
|
||||
WORKDIR /build/compile-scheme
|
||||
RUN make install
|
||||
RUN apt-get update && apt-get install -y make curl
|
||||
WORKDIR /build/chibi-scheme
|
||||
RUN make install
|
||||
WORKDIR /build/akku
|
||||
RUN bash install.sh
|
||||
ENV PATH=/root/.local/bin:${PATH}
|
||||
RUN akku update
|
||||
RUN ln -sf /root/.local/bin/akku /usr/local/bin/akku
|
||||
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
|
||||
COPY fcgi-lighttpd.conf .
|
||||
RUN snow-chibi --impls=${SCHEME} --always-yes install "(srfi 60)"
|
||||
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)"
|
||||
ARG SCHEME=chibi
|
||||
ENV COMPILE_R7RS=${SCHEME}
|
||||
COPY Makefile .
|
||||
COPY retropikzel retropikzel/
|
||||
RUN akku install loko-srfi
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ pipeline {
|
|||
}
|
||||
|
||||
parameters {
|
||||
string(name: 'LIBRARIES', defaultValue: 'ctrf', description: '')
|
||||
string(name: 'LIBRARIES', defaultValue: 'ctrf mouth string url-encoding', description: '')
|
||||
}
|
||||
|
||||
stages {
|
||||
|
|
@ -28,7 +28,7 @@ pipeline {
|
|||
[(SCHEME): {
|
||||
stage("${SCHEME}") {
|
||||
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): {
|
||||
stage("${SCHEME}") {
|
||||
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"
|
||||
DOCKERIMG="chicken:5"
|
||||
endif
|
||||
DOCKER_TAG=scheme-library-test-${SCHEME}
|
||||
|
||||
all: build
|
||||
|
||||
|
|
@ -30,32 +29,53 @@ install:
|
|||
uninstall:
|
||||
-snow-chibi remove --impls=${SCHEME} ${PKG}
|
||||
|
||||
init-venv: build
|
||||
@rm -rf 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 "(test-runner-current (ctrf-runner))" >> venv/test.scm
|
||||
@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.sps
|
||||
@if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install retropikzel.mouth; fi
|
||||
@if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install --always-yes retropikzel.ctrf; fi
|
||||
@if [ "${RNRS}" = "r6rs" ]; then if [ -d ../foreign-c ]; then cp -r ../foreign-c/foreign venv/lib/; fi; 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 [ "${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}" = "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 [ "${RNRS}" = "r6rs" ]; then ./venv/bin/akku install; fi
|
||||
@if [ "${SCHEME}" = "chicken" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; 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
|
||||
run-test-venv: build
|
||||
rm -rf 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 "(test-runner-current (ctrf-runner))" >> venv/test.scm
|
||||
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.sps
|
||||
if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; fi
|
||||
if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install retropikzel.mouth; fi
|
||||
if [ "${RNRS}" = "r7rs" ]; then printf "1\n1\n" | ./venv/bin/snow-chibi install retropikzel.ctrf; 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}" = "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}" = "racket" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; 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 [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install ${PKG}; 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
|
||||
|
||||
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:
|
||||
git clean -X -f
|
||||
|
|
|
|||
Loading…
Reference in New Issue