;;;; apropos-test.scm -*- Scheme -*- ;;;; Kon Lovett, Jul '18 (import test) (test-begin "Apropos") ;;; (import (chicken syntax) (chicken sort) apropos-api) ;FIXME need #:split tests ;; (define (symbolstring a) (symbol->string b))) (define (car-symbol (define foobarprocx (lambda (a b c) 'foobarprocx)) #;15> '(((|| . foobarmacro1) . macro)) (((||: . foobarmacro1) . macro)) #;16> '(((||: . foobarmacro1) . macro)) (((: . foobarmacro1) . macro)) #;17> || ||: #;18> ||: Error: unbound variable: : #;19> #:|| ||: #;20> (eq? #:|| #:||) #t #;21> (caaar (apropos-information-list 'foobarproc)) ||: #;22> (eq? #:|| (caaar (apropos-information-list 'foobarproc))) #f |# (cond-expand (compiling ;reads (|| . foobarmacro1) as ( . foobarmacro1) ) (else ;oh , my : #:|| from reader is not eq? #:|| from symbol-table (apropos-information-list-test '( ((|| . foobarmacro1) . macro) ((|| . foobarmacro2) . macro) ((|| . foobarproc0) procedure) ((|| . foobarproc1) procedure a) ((|| . foobarproc2) procedure a b) ((|| . foobarprocn) procedure a b . r) ((|| . foobarprocx) procedure a b c) ((|| . foobarvar1) . variable) ((|| . foobarvar2) . variable) ) (apropos-information-list 'foobar #:macros? #t #:qualified? #t)) (test "apropos-information-list" '(((|| . foobarproc0) procedure) ((|| . foobarproc1) procedure a) ((|| . foobarproc2) procedure a b) ((|| . foobarprocn) procedure a b . r) ((|| . foobarprocx) procedure a b c)) (apropos-information-list 'foobarproc #:macros? #t #:qualified? #t #:sort #:module)) ) ) #| ;UNSUPPORTED ;; (use environments) (define tstenv1 (make-environment #t)) (environment-extend! tstenv1 'foobarprocx (lambda (a b c) 'foobarprocx)) (environment-extend! tstenv1 'foobarvar1 'foobarvar1) (environment-extend! tstenv1 'foobarvar2 'foobarvar2) (environment-extend! tstenv1 '##bar#foo1 '##bar#foo1) (environment-extend! tstenv1 '##bar#foo1 (lambda () '##bar#foo1)) ;make-environment cannot create a syntax-environment ;apropos always uses the ##sys#macro-environment for macro lookup (test '(foobarprocx foobarvar2 foobarvar1 ##bar#foo1) (apropos-list 'foo tstenv1 #:qualified? #t)) |# ;;; (test-end "Apropos") (test-exit)