Updating tests

This commit is contained in:
retropikzel 2025-10-01 22:09:22 +03:00
parent 461b36a039
commit 62cbe24565
3 changed files with 11 additions and 28 deletions

View File

@ -14,11 +14,12 @@ RUN cp -r /var/cache/apt/archives/*.deb .
ARG SCHEME=chibi ARG SCHEME=chibi
ARG IMAGE=chibi:head ARG IMAGE=chibi:head
FROM schemers/${IMAGE} FROM schemers/${IMAGE}
RUN mkdir -p ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
COPY --from=build /cache /cache COPY --from=build /cache /cache
WORKDIR /cache/debs WORKDIR /cache/debs
RUN dpkg -i *.deb RUN dpkg -i *.deb
COPY --from=retropikzel1/compile-r7rs /opt/compile-r7rs /opt/compile-r7rs COPY --from=retropikzel1/compile-r7rs /opt/compile-r7rs /opt/compile-r7rs
RUN /opt/compile-r7rs/bin/install-docker ENV PATH=/opt/compile-r7rs/bin:${PATH}
WORKDIR / WORKDIR /
ARG SCHEME=chibi ARG SCHEME=chibi
ENV COMPILE_R7RS=${SCHEME} ENV COMPILE_R7RS=${SCHEME}

22
Jenkinsfile vendored
View File

@ -1,5 +1,3 @@
def tests = ['primitives', 'array', 'struct', 'addressof', 'callback']
pipeline { pipeline {
agent { agent {
label 'linux' label 'linux'
@ -11,15 +9,7 @@ pipeline {
} }
stages { stages {
stage('Tests x86_64 Debian') { stage('Tests x86_64 Debian') {
agent {
docker {
label 'docker-x86_64'
image 'retropikzel1/compile-r7rs'
args '--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps { steps {
script { script {
def schemes = "chibi chicken gauche guile kawa mosh racket sagittarius stklos ypsilon" def schemes = "chibi chicken gauche guile kawa mosh racket sagittarius stklos ypsilon"
@ -27,14 +17,10 @@ pipeline {
schemes.split().each { SCHEME -> schemes.split().each { SCHEME ->
stage("${SCHEME}") { stage("${SCHEME}") {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "COMPILE_R7RS=${SCHEME} test-r7rs test.scm" def DOCKERIMG="${SCHEME}:head"
} sh "docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-test-${SCHEME} -f Dockerfile.test ."
} sh "docker run -it -v ${WORKSPACE}:/workdir -w /workdir -t foreign-c-test-${SCHEME} sh -c \"make SCHEME=${SCHEME} SNOW_CHIBI_ARGS=--always-yes install test\""
stage("${SCHEME} logs") { archiveArtifacts artifacts: '.tmp/test/*.log', allowEmptyArchive: true, fingerprint: true, onlyIfSuccessful: true
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "cat .tmp/test/test-r7rs/tmp/*"
sh "cat .tmp/test/test-r7rs/Dockerfile"
sh "cat .tmp/test-r7rs/${SCHEME}/logs/*.log"
} }
} }
} }

View File

@ -1,5 +1,6 @@
.PHONY: libtest.o tests/libtest.so libtest.a documentation README.html .PHONY: libtest.o tests/libtest.so libtest.a documentation README.html
SCHEME=chibi SCHEME=chibi
DOCKERIMG=${SCHEME}:head
VERSION=0.10.7 VERSION=0.10.7
CC=gcc CC=gcc
TMPDIR=.tmp TMPDIR=.tmp
@ -32,24 +33,19 @@ install: package
uninstall: uninstall:
snow-chibi --impls=${SCHEME} remove "(foreign c)" snow-chibi --impls=${SCHEME} remove "(foreign c)"
test-old: ${TMPDIR}/test/libtest.o ${TMPDIR}/test/libtest.so ${TMPDIR}/test/libtest.a test: ${TMPDIR}/test/libtest.o ${TMPDIR}/test/libtest.so ${TMPDIR}/test/libtest.a
cp -r foreign ${TMPDIR}/test/ cp -r foreign ${TMPDIR}/test/
cp tests/*.scm ${TMPDIR}/test/ cp tests/*.scm ${TMPDIR}/test/
cp tests/c-include/libtest.h ${TMPDIR}/test/ cp tests/c-include/libtest.h ${TMPDIR}/test/
cd ${TMPDIR}/test && \ cd ${TMPDIR}/test && \
COMPILE_R7RS_CHICKEN="-L -ltest -I. -L." \ COMPILE_R7RS_CHICKEN="-L -ltest -I. -L." \
COMPILE_R7RS=${SCHEME} timeout 600 compile-r7rs -o ${TEST} ${TEST}.scm COMPILE_R7RS=${SCHEME} timeout 600 compile-r7rs -o test test.scm
cd ${TMPDIR}/test && printf "\n" | LD_LIBRARY_PATH=. timeout 600 ./${TEST} cd ${TMPDIR}/test && printf "\n" | LD_LIBRARY_PATH=. timeout 600 ./test
test: ${TMPDIR}/test ${TMPDIR}/test/libtest.o ${TMPDIR}/test/libtest.so ${TMPDIR}/test/libtest.a
cp -r foreign ${TMPDIR}/test/
cp test.scm ${TMPDIR}/test/
cd ${TMPDIR}/test && COMPILE_R7RS="${SCHEME}" APT_PKGS=libffi-dev test-r7rs ${TEST_R7RS_ARGS} --use-docker-head -I . -o test test.scm
test-docker: test-docker:
docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-test-${SCHEME} -f Dockerfile.test . docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-test-${SCHEME} -f Dockerfile.test .
docker run -it -v "${PWD}:/workdir" -w /workdir -t foreign-c-test-${SCHEME} sh -c \ docker run -it -v "${PWD}:/workdir" -w /workdir -t foreign-c-test-${SCHEME} sh -c \
"timeout 120 make SCHEME=${SCHEME} TEST=${TEST} SNOW_CHIBI_ARGS=--always-yes install test" "make SCHEME=${SCHEME} SNOW_CHIBI_ARGS=--always-yes install test"
${TMPDIR}/test/libtest.o: tests/c-src/libtest.c ${TMPDIR}/test ${TMPDIR}/test/libtest.o: tests/c-src/libtest.c ${TMPDIR}/test
${CC} ${CFLAGS} -o ${TMPDIR}/test/libtest.o -fPIC -c tests/c-src/libtest.c -I./include ${LDFLAGS} ${CC} ${CFLAGS} -o ${TMPDIR}/test/libtest.o -fPIC -c tests/c-src/libtest.c -I./include ${LDFLAGS}