source: project/release/4/message-digest/trunk/tests/run.scm @ 15593

Last change on this file since 15593 was 15593, checked in by Kon Lovett, 10 years ago

Dropped use of "ports".

File size: 1.6 KB
Line 
1;;;; message-digest-test.scm
2
3
4;; Issues
5;;
6;; - Needs many more tests, especially the entire input-port & procedure source stuff.
7
8(use test)
9(use message-digest)
10(use lolevel)
11
12;;
13
14(test-group "Message Digest Aux"
15
16        (test '("foo" "bar" "baz") (byte-string->substring-list "foobarbaz" 3))
17        (test '("oob" "arb" "az") (byte-string->substring-list "foobarbaz" 3 1))
18        (test "6162206364" (byte-string->hexadecimal "ab cd"))
19)
20
21(test-group "Message Digest Prim"
22
23  (define digest-length 5)
24  (define chunk-size 10)
25
26  (define (init ctx)
27    #;(printf "  Init Ctx: ~S~%" ctx)
28    (test-assert (pointer? ctx)) )
29
30  (define (update ctx bytes count)
31    #;(printf "Update Ctx: ~S Bytes: ~S Count: ~S~%" ctx bytes count)
32    (test-assert (pointer? ctx))
33    (test-assert (string? bytes))
34    (test digest-length count)
35    (move-memory! bytes ctx count) )
36
37  (define (final ctx result)
38    #;(printf " Final Ctx: ~S Result: ~S~%" ctx result)
39    (test-assert (pointer? ctx))
40    (test-assert (string? result))
41    (move-memory! ctx result digest-length) )
42
43  (let ((mdp (make-message-digest-primitive chunk-size digest-length init update final 'foo)))
44
45      (test-assert (message-digest-primitive? mdp))
46
47      (test chunk-size (message-digest-primitive-context-info mdp))
48      (test digest-length (message-digest-primitive-digest-length mdp))
49      (test init (message-digest-primitive-init mdp))
50      (test update (message-digest-primitive-update mdp))
51      (test final (message-digest-primitive-final mdp))
52      (test 'foo (message-digest-primitive-name mdp))
53
54      (let ((res (message-digest-primitive-apply mdp "ab cd")))
55        (test "6162206364" (byte-string->hexadecimal res)) ) )
56)
Note: See TracBrowser for help on using the repository browser.