Improve tests
This commit is contained in:
parent
0f8db12e8f
commit
3ea4ae05a3
|
|
@ -2,3 +2,6 @@
|
|||
venv
|
||||
*.html
|
||||
*.log
|
||||
foreign
|
||||
run-test*
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
FROM debian:trixie
|
||||
RUN apt-get update && apt-get -y install make docker.io git
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
pipeline {
|
||||
agent {
|
||||
docker {
|
||||
dockerfile {
|
||||
filename 'Dockerfile.jenkins'
|
||||
label 'docker-x86_64'
|
||||
image 'debian'
|
||||
args '--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock'
|
||||
}
|
||||
}
|
||||
|
|
@ -15,56 +15,41 @@ pipeline {
|
|||
parameters {
|
||||
string(name: 'R7RS_SCHEMES', defaultValue: 'chibi chicken gauche guile kawa mosh racket sagittarius stklos ypsilon', description: '')
|
||||
string(name: 'R6RS_SCHEMES', defaultValue: 'chezscheme guile ikarus ironscheme mosh racket sagittarius ypsilon', description: '')
|
||||
string(name: 'SRFIS', defaultValue: '160 170', description: '')
|
||||
string(name: 'SRFIS', defaultValue: '106 170', description: '')
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Init') {
|
||||
steps {
|
||||
sh "apt-get update && apt-get install -y make docker.io git"
|
||||
}
|
||||
}
|
||||
|
||||
stage('Tests') {
|
||||
parallel {
|
||||
stage('R6RS x86_64 Debian') {
|
||||
steps {
|
||||
script {
|
||||
params.SRFIS.split().each { SRFI ->
|
||||
params.R6RS_SCHEMES.split().each { SCHEME ->
|
||||
def IMG="${SCHEME}:head"
|
||||
stage("${SCHEME} - ${SRFI}") {
|
||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||
sh "timeout 600 make SCHEME=${SCHEME} SRFI=${SRFI} test-r6rs-docker"
|
||||
}
|
||||
stage('R6RS x86_64 Debian') {
|
||||
steps {
|
||||
script {
|
||||
params.SRFIS.split().each { SRFI ->
|
||||
params.R6RS_SCHEMES.split().each { SCHEME ->
|
||||
stage("${SCHEME} - ${SRFI}") {
|
||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||
sh "timeout 600 make SCHEME=${SCHEME} SRFI=${SRFI} RNRS=r6rs run-test-docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('R7RS x86_64 Debian') {
|
||||
steps {
|
||||
script {
|
||||
params.SRFIS.split().each { SRFI ->
|
||||
params.R7RS_SCHEMES.split().each { SCHEME ->
|
||||
def IMG="${SCHEME}:head"
|
||||
if("${SCHEME}" == "chicken") {
|
||||
IMG="${SCHEME}:5"
|
||||
}
|
||||
stage("${SCHEME} - ${SRFI}") {
|
||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||
sh "timeout 600 make SCHEME=${SCHEME} SRFI=${SRFI} test-r7rs-docker"
|
||||
}
|
||||
}
|
||||
stage('R7RS x86_64 Debian') {
|
||||
steps {
|
||||
script {
|
||||
params.SRFIS.split().each { SRFI ->
|
||||
params.R7RS_SCHEMES.split().each { SCHEME ->
|
||||
stage("${SCHEME} - ${SRFI}") {
|
||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||
sh "timeout 600 make SCHEME=${SCHEME} SRFI=${SRFI} RNRS=r6rs run-test-docker"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
41
Makefile
41
Makefile
|
|
@ -29,27 +29,40 @@ install:
|
|||
uninstall:
|
||||
-snow-chibi remove --impls=${SCHEME} ${PKG}
|
||||
|
||||
run-test-venv: build
|
||||
testfiles:
|
||||
printf "#!r6rs\n(import (rnrs) (srfi :64) (foreign c) (srfi :${SRFI}))" > run-test.sps
|
||||
cat ${TESTFILE} >> run-test.sps
|
||||
echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (srfi 64) (foreign c) (srfi ${SRFI}))" > run-test.scm
|
||||
cat ${TESTFILE} >> run-test.scm
|
||||
|
||||
run-test-venv: testfiles build
|
||||
rm -rf venv
|
||||
scheme-venv ${SCHEME} ${RNRS} venv
|
||||
mkdir -p venv/lib/srfi
|
||||
echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (srfi 64) (foreign c) (srfi ${SRFI}))" > venv/test.scm
|
||||
printf "#!r6rs\n(import (rnrs) (srfi :64) (foreign c) (srfi :${SRFI}))" > venv/test.sps
|
||||
cat ${TESTFILE} >> venv/test.scm
|
||||
cat ${TESTFILE} >> venv/test.sps
|
||||
cp run-test.sps venv/
|
||||
cp run-test.scm venv/
|
||||
if [ "${RNRS}" = "r6rs" ]; then if [ -d ../foreign-c ]; then cp -r ../foreign-c/foreign venv/lib/; fi; fi
|
||||
if [ "${RNRS}" = "r6rs" ]; then cp -r srfi/${SRFI}.* venv/lib/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}" = "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 akku-r7rs; 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 --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 CSC_OPTIONS="-L -lcurl" ./venv/bin/scheme-compile venv/test.scm; fi
|
||||
./venv/test
|
||||
if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/scheme-compile venv/run-test.sps; fi
|
||||
if [ "${RNRS}" = "r7rs" ]; then CSC_OPTIONS="-L -lcurl" ./venv/bin/scheme-compile venv/run-test.scm; fi
|
||||
./venv/run-test
|
||||
|
||||
run-test-system: testfiles build
|
||||
if [ "${RNRS}" = "r6rs" ]; then if [ -d ../foreign-c ]; then cp -r ../foreign-c/foreign .; fi; fi
|
||||
if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/akku install akku-r7rs; fi
|
||||
if [ "${SCHEME}" = "chicken" ]; then snow-chibi install --always-yes srfi.64; 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_R7RS=${SCHEME} compile-scheme test.sps; fi
|
||||
if [ "${RNRS}" = "r7rs" ]; then COMPILE_R7RS=${SCHEME} compile-scheme test.scm; fi
|
||||
./test
|
||||
|
||||
run-test-docker:
|
||||
docker build --build-arg IMAGE=${DOCKERIMG} -f Dockerfile.test --tag=foreign-c-${SCHEME}-${RNRS} .
|
||||
docker run -v "${PWD}/logs:/workdir/logs" -w /workdir foreign-c-${SCHEME}-${RNRS} sh -c "make SCHEME=${SCHEME} RNRS=${RNRS} TEST=${TEST} run-test-system; mv *.json logs/ || true"
|
||||
|
||||
test-r7rs: tmpdir
|
||||
@if [ "${SCHEME}" = "chibi" ]; then rm -rf ${TMPDIR}/srfi/98.*; fi
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
#lang r7rs
|
||||
(import (except (scheme base) let let-values let*-values string-copy string-copy! string-for-each string-map string-fill! string->list))
|
||||
(include "106.sld")
|
||||
Loading…
Reference in New Issue