From 9c4c47c3d194dfc101f52682fe29dbc52ede28c2 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Tue, 20 Jan 2026 08:34:39 +0200 Subject: [PATCH] Fixing testing --- Dockerfile => Dockerfile.test | 11 ++++----- Makefile | 8 +++--- srfi/106/test.scm | 20 ++++++++------- srfi/srfi-106.scm | 46 +++++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 19 deletions(-) rename Dockerfile => Dockerfile.test (80%) create mode 100644 srfi/srfi-106.scm diff --git a/Dockerfile b/Dockerfile.test similarity index 80% rename from Dockerfile rename to Dockerfile.test index 83fd397..a2ed5c5 100644 --- a/Dockerfile +++ b/Dockerfile.test @@ -9,7 +9,7 @@ RUN wget https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e3 && 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=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 RUN git clone https://codeberg.org/retropikzel/foreign-c-libraries.git --depth=1 WORKDIR /build/chibi-scheme RUN make @@ -38,14 +38,13 @@ RUN bash install.sh ENV PATH=/root/.local/bin:${PATH} RUN akku update WORKDIR /build/foreign-c -RUN timeout 30 snow-chibi install --impls=${SCHEME} --always-yes "(srfi 64)" || true -RUN timeout 30 snow-chibi install --impls=${SCHEME} --always-yes "(foreign c)" || true -RUN timeout 30 snow-chibi install --impls=${SCHEME} --always-yes "(retropikzel shell)" || true -RUN timeout 30 snow-chibi install --impls=${SCHEME} --always-yes "(retropikzel debug)" || true +RUN snow-chibi install --impls=${SCHEME} --always-yes "(srfi 64)" +RUN snow-chibi install --impls=${SCHEME} --always-yes "(foreign c)" +RUN snow-chibi install --impls=${SCHEME} --always-yes "(retropikzel shell)" +RUN snow-chibi install --impls=${SCHEME} --always-yes "(retropikzel debug)" RUN make SCHEME=${SCHEME} build install WORKDIR /workdir RUN cp -r /build/foreign-c-libraries/retropikzel retropikzel/ RUN cp -r /build/foreign-c/foreign . COPY Makefile . COPY srfi srfi/ -COPY foreign foreign/ diff --git a/Makefile b/Makefile index e4a54f2..c3f7d7b 100644 --- a/Makefile +++ b/Makefile @@ -33,24 +33,24 @@ uninstall: test-r7rs: tmpdir @if [ "${SCHEME}" = "chibi" ]; then rm -rf ${TMPDIR}/srfi/98.*; fi - cd ${TMPDIR} && echo "(import (scheme base) (scheme write) (scheme file) (scheme process-context) (retropikzel debug) (foreign c) (srfi ${SRFI}) (srfi 64))" > test-r7rs.scm + cd ${TMPDIR} && echo "(import (scheme base) (scheme write) (scheme file) (scheme process-context) (foreign c) (srfi ${SRFI}) (srfi 64))" > test-r7rs.scm cd ${TMPDIR} && cat srfi/${SRFI}/test.scm >> test-r7rs.scm cd ${TMPDIR} && COMPILE_R7RS=${SCHEME} compile-scheme -I . -o test-r7rs test-r7rs.scm cd ${TMPDIR} && printf "\n" | ./test-r7rs test-r7rs-docker: - docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-srfi-test-${SCHEME} . + docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-srfi-test-${SCHEME} -f Dockerfile.test . docker run -t foreign-c-srfi-test-${SCHEME} sh -c "make SCHEME=${SCHEME} SRFI=${SRFI} SNOW_CHIBI_ARGS=--always-yes build install test-r7rs" test-r6rs: tmpdir - cd ${TMPDIR} && echo "(import (rnrs) (retropikzel debug) (foreign c) (srfi :${SRFI}) (srfi :64))" > test-r6rs.sps + cd ${TMPDIR} && echo "(import (rnrs) (foreign c) (srfi :${SRFI}) (srfi :64))" > test-r6rs.sps cd ${TMPDIR} && cat srfi/${SRFI}/test.scm >> test-r6rs.sps cd ${TMPDIR} && akku install chez-srfi akku-r7rs #"(foreign c)" "(retropikzel shell)" cd ${TMPDIR} && COMPILE_R7RS=${SCHEME} compile-scheme -I .akku/lib -o test-r6rs test-r6rs.sps cd ${TMPDIR} && ./test-r6rs test-r6rs-docker: - docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-srfi-test-${SCHEME} . + docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-srfi-test-${SCHEME} -f Dockerfile.test . docker run -t foreign-c-srfi-test-${SCHEME} sh -c "make SCHEME=${SCHEME} SRFI=${SRFI} test-r6rs" tmpdir: diff --git a/srfi/106/test.scm b/srfi/106/test.scm index 3d9be02..179dbb3 100644 --- a/srfi/106/test.scm +++ b/srfi/106/test.scm @@ -8,17 +8,18 @@ (display "Testing TCP socket") (newline) -(debug (address-family inet)) -(debug (address-info v4mapped addrconfig)) -(debug (socket-domain stream)) -(debug (ip-protocol ip)) +;(debug (address-family inet)) +;(debug (address-info v4mapped addrconfig)) +;(debug (socket-domain stream)) +;(debug (ip-protocol ip)) (c-system (string->c-utf8 (string-append "echo \"lol\" | nc -l " sock1-port "&"))) (define sock1 (make-client-socket "127.0.0.1" sock1-port)) -(debug sock1) -(debug (utf8->string (socket-recv sock1 3))) +;(debug sock1) +(write (utf8->string (socket-recv sock1 3))) +(newline) (socket-send sock1 (string->utf8 "Hello from sock1\n")) @@ -26,15 +27,16 @@ (define sock2 (make-server-socket sock2-port)) -(debug sock2) +;(debug sock2) (display (string-append "run: echo \"lol\" | nc 127.0.0.1 " sock2-port)) (newline) (define client-sock1 (socket-accept sock2)) -(debug client-sock1) +;(debug client-sock1) (socket-send client-sock1 (string->utf8 "Hello from client-sock1\n")) -(debug (utf8->string (socket-recv client-sock1 3))) +(write (utf8->string (socket-recv client-sock1 3))) +(newline) diff --git a/srfi/srfi-106.scm b/srfi/srfi-106.scm new file mode 100644 index 0000000..e630761 --- /dev/null +++ b/srfi/srfi-106.scm @@ -0,0 +1,46 @@ +(define-library + (srfi 106) + (import (scheme base) + (scheme write) + (scheme process-context) + (foreign c)) + (export make-client-socket + make-server-socket + socket? + socket-accept + socket-send + socket-recv + socket-shutdown + socket-close + ;socket-input-port + ;socket-output-port + call-with-socket + address-family + address-info + socket-domain + ip-protocol + message-type + shutdown-method + socket-merge-flags + socket-purge-flags + *af-inet* + *af-inet6* + *af-unspec* + *sock-stream* + *sock-dgram* + *ai-canonname* + *ai-numerichost* + *ai-v4mapped* + *ai-all* + *ai-addrconfig* + *ipproto-ip* + *ipproto-tcp* + *ipproto-udp* + *msg-peek* + *msg-oob* + *msg-waitall* + *shut-rd* + *shut-wr* + *shut-rdwr*) + (include "106.scm")) +