~ chicken-core (master) /tests/version-tests.scm
Trap1(import chicken.irregex chicken.platform chicken.string)2(import (only (scheme base) features))34(let* ((version-tokens (string-split (chicken-version) "."))5 (major (string->number (car version-tokens)))6 (minor (string->number (cadr version-tokens))))78 (display "Checking major and minor version numbers against chicken-version... ")9 (assert (= (foreign-value "C_MAJOR_VERSION" int) major))10 (assert (= (foreign-value "C_MINOR_VERSION" int) minor))11 (print "ok")1213 (display "Checking the registered feature chicken-<major>.<minor>... ")14 (let loop ((features (features)))15 (if (null? features)16 (error "Could not find feature chicken-<major>.<minor>")17 (let ((feature (symbol->string (car features))))18 (cond ((irregex-match "chicken-(\\d+)\\.(\\d+)" feature)19 => (lambda (match)20 (assert (= (string->number21 (irregex-match-substring match 1))22 major))23 (assert (= (string->number24 (irregex-match-substring match 2))25 minor))))26 (else (loop (cdr features)))))))2728 (display "Checking the registered feature chicken-<major>... ")29 (let loop ((features (features)))30 (if (null? features)31 (error "Could not find feature chicken-<major>")32 (let ((feature (symbol->string (car features))))33 (cond ((irregex-match "chicken-(\\d+)" feature)34 => (lambda (match)35 (assert (= (string->number36 (irregex-match-substring match 1))37 major))))38 (else (loop (cdr features)))))))39 (print "ok"))