~ chicken-core (chicken-5) /tests/user-pass-tests.scm
Trap1;;; Test user compilation passes23(import (chicken base)4 (chicken compiler user-pass)5 (chicken io)6 (chicken pretty-print))78(define passes '()) ; track user passes910(user-read-pass11 (lambda (_ _ _)12 (set! passes (cons 'user-read-pass passes))13 (list 'ok))) ; ignore file and use single datum1415(user-preprocessor-pass16 (lambda (x)17 (set! passes (cons 'user-preprocessor-pass passes))18 (values x)))1920(user-pass21 (lambda (x)22 (set! passes (cons 'user-pass passes))23 (values x)))2425(user-post-analysis-pass26 (lambda (_ _ _ _ _ _ _)27 (set! passes (cons 'user-post-analysis-pass passes))))2829(on-exit30 (lambda ()31 (assert (memq 'user-read-pass passes) "user-read-pass not called")32 (assert (memq 'user-pass passes) "user-pass not called")33 (assert (memq 'user-preprocessor-pass passes) "user-preprocessor-pass not called")34 (assert (memq 'user-post-analysis-pass passes) "user-post-analysis-pass not called")))