@@ -9,31 +9,36 @@ testLib('create-hash/browser', require('create-hash/browser'))
9
9
10
10
function testLib ( name , createHash ) {
11
11
algorithms . forEach ( function ( algorithm ) {
12
- test ( name + ' test ' + algorithm + ' against test vectors' , function ( t ) {
13
- vectors . forEach ( function ( obj , i ) {
14
- var input = new Buffer ( obj . input , 'base64' )
15
- var node = obj [ algorithm ]
16
- var js = createHash ( algorithm ) . update ( input ) . digest ( 'hex' )
17
- t . equal ( js , node , algorithm + '(testVector[' + i + ']) == ' + node )
18
- } )
12
+ runTest ( name , createHash , algorithm )
13
+ } )
14
+ }
15
+ function runTest ( name , createHash , algorithm ) {
16
+ test ( name + ' test ' + algorithm + ' against test vectors' , function ( t ) {
17
+ run ( 0 )
18
+ function run ( i ) {
19
+ if ( i >= vectors . length ) {
20
+ return t . end ( )
21
+ }
22
+ var obj = vectors [ i ]
23
+
24
+ var input = new Buffer ( obj . input , 'base64' )
25
+ var node = obj [ algorithm ]
26
+ var js = createHash ( algorithm ) . update ( input ) . digest ( 'hex' )
27
+ t . equal ( js , node , algorithm + '(testVector[' + i + ']) == ' + node )
19
28
20
29
encodings . forEach ( function ( encoding ) {
21
- vectors . forEach ( function ( obj , i ) {
22
- var input = new Buffer ( obj . input , 'base64' ) . toString ( encoding )
23
- var node = obj [ algorithm ]
24
- var js = createHash ( algorithm ) . update ( input , encoding ) . digest ( 'hex' )
25
- t . equal ( js , node , algorithm + '(testVector[' + i + '], ' + encoding + ') == ' + node )
26
- } )
27
- } )
28
- vectors . forEach ( function ( obj , i ) {
29
- var input = new Buffer ( obj . input , 'base64' )
30
+ var input = new Buffer ( obj . input , 'base64' ) . toString ( encoding )
30
31
var node = obj [ algorithm ]
31
- var hash = createHash ( algorithm )
32
- hash . end ( input )
33
- var js = hash . read ( ) . toString ( 'hex' )
34
- t . equal ( js , node , algorithm + '(testVector[' + i + ']) == ' + node )
32
+ var js = createHash ( algorithm ) . update ( input , encoding ) . digest ( 'hex' )
33
+ t . equal ( js , node , algorithm + '(testVector[' + i + '], ' + encoding + ') == ' + node )
35
34
} )
36
- t . end ( )
37
- } )
35
+ input = new Buffer ( obj . input , 'base64' )
36
+ node = obj [ algorithm ]
37
+ var hash = createHash ( algorithm )
38
+ hash . end ( input )
39
+ js = hash . read ( ) . toString ( 'hex' )
40
+ t . equal ( js , node , algorithm + '(testVector[' + i + ']) == ' + node )
41
+ setTimeout ( run , 0 , i + 1 )
42
+ }
38
43
} )
39
44
}
0 commit comments