;;;; message-digest-test.scm ;; Issues ;; ;; - Needs many more tests, especially the entire input-port & procedure source stuff. (use test) (use message-digest) (use lolevel) ;; (test-group "Message Digest Aux" (test '("foo" "bar" "baz") (byte-string->substring-list "foobarbaz" 3)) (test '("oob" "arb" "az") (byte-string->substring-list "foobarbaz" 3 1)) (test "6162206364" (byte-string->hexadecimal "ab cd")) ) (test-group "Message Digest Prim" (define digest-length 5) (define chunk-size 10) (define (init ctx) #;(printf " Init Ctx: ~S~%" ctx) (test-assert (pointer? ctx)) ) (define (update ctx bytes count) #;(printf "Update Ctx: ~S Bytes: ~S Count: ~S~%" ctx bytes count) (test-assert (pointer? ctx)) (test-assert (string? bytes)) (test digest-length count) (move-memory! bytes ctx count) ) (define (final ctx result) #;(printf " Final Ctx: ~S Result: ~S~%" ctx result) (test-assert (pointer? ctx)) (test-assert (string? result)) (move-memory! ctx result digest-length) ) (let ((mdp (make-message-digest-primitive chunk-size digest-length init update final 'foo))) (test-assert (message-digest-primitive? mdp)) (test chunk-size (message-digest-primitive-context-info mdp)) (test digest-length (message-digest-primitive-digest-length mdp)) (test init (message-digest-primitive-init mdp)) (test update (message-digest-primitive-update mdp)) (test final (message-digest-primitive-final mdp)) (test 'foo (message-digest-primitive-name mdp)) (let ((res (message-digest-primitive-apply mdp "ab cd"))) (test "6162206364" (byte-string->hexadecimal res)) ) ) )