~ chicken-core (chicken-5) 66e61af856ed7817dc07a0f542e9c2e27e284e36
commit 66e61af856ed7817dc07a0f542e9c2e27e284e36 Author: Mario Domenech Goulart <mario.goulart@gmail.com> AuthorDate: Thu Apr 17 23:32:09 2014 -0300 Commit: Peter Bex <peter.bex@xs4all.nl> CommitDate: Mon Apr 21 16:32:16 2014 +0200 Add tests/version-tests.scm Basic version tests. Check if chicken-version matches the values for C_MAJOR_VERSION/C_MINOR_VERSION and the registered chicken-<major>.<minor> feature. Signed-off-by: Peter Bex <peter.bex@xs4all.nl> diff --git a/distribution/manifest b/distribution/manifest index bb8f1682..5a360685 100644 --- a/distribution/manifest +++ b/distribution/manifest @@ -209,6 +209,7 @@ tests/reverser/tags/1.1/reverser.setup tests/reverser/tags/1.1/reverser.scm tests/rev-app.scm tests/signal-tests.scm +tests/version-tests.scm tweaks.scm utils.scm apply-hack.x86.S diff --git a/tests/runtests.bat b/tests/runtests.bat index 03e76849..b037cb72 100644 --- a/tests/runtests.bat +++ b/tests/runtests.bat @@ -20,6 +20,10 @@ set interpret=..\csi -n -include-path %TEST_DIR%/.. del /f /q *.exe *.so *.o *.import.* ..\foo.import.* +echo ======================================== version tests ... +%interpret% -s version-tests.scm +if errorlevel 1 exit /b 1 + echo ======================================== compiler tests ... %compile% compiler-tests.scm if errorlevel 1 exit /b 1 diff --git a/tests/runtests.sh b/tests/runtests.sh index b3570ded..d2ffe72c 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -70,6 +70,8 @@ interpret="../csi -n -include-path ${TEST_DIR}/.." rm -f *.exe *.so *.o *.import.* a.out ../foo.import.* +echo "======================================== version tests ..." +$interpret -s version-tests.scm echo "======================================== compiler tests ..." $compile compiler-tests.scm diff --git a/tests/version-tests.scm b/tests/version-tests.scm new file mode 100644 index 00000000..09769846 --- /dev/null +++ b/tests/version-tests.scm @@ -0,0 +1,27 @@ +(use irregex) + +(let* ((version-tokens (string-split (chicken-version) ".")) + (major (string->number (car version-tokens))) + (minor (string->number (cadr version-tokens)))) + + (display "Checking major and minor version numbers against chicken-version... ") + ;; Those fudges are mapped to C_MAJOR_VERSION and C_MINOR_VERSION + (assert (= (##sys#fudge 41) major)) + (assert (= (##sys#fudge 43) minor)) + (print "ok") + + (display "Checking the registered feature chicken-<major>.<minor>... ") + (let loop ((features (features))) + (if (null? features) + (error "Could not find feature chicken-<major>.<minor>") + (let ((feature (symbol->string (car features)))) + (cond ((irregex-match "chicken-(\\d+)\\.(\\d+)" feature) + => (lambda (match) + (assert (= (string->number + (irregex-match-substring match 1)) + major)) + (assert (= (string->number + (irregex-match-substring match 2)) + minor)))) + (else (loop (cdr features))))))) + (print "ok"))Trap