@@ -110,8 +110,13 @@ function runTests(engine, options) {
110
110
for ( i = 0 ; i < len ; i ++ ) {
111
111
filename = filenames [ i ] ;
112
112
file = files [ filename ] ;
113
- success = testFile ( engine , file , filename , i + 1 ) ;
114
- if ( success ) {
113
+
114
+ var before = process . hrtime ( ) ;
115
+ success = testFile ( engine , file , filename , i + 1 ) ; // TODO Can't testFile throw?
116
+ var elapsed = process . hrtime ( before ) ;
117
+ var tookLessThanOneSec = ( elapsed [ 0 ] === 0 ) ;
118
+
119
+ if ( success && tookLessThanOneSec ) {
115
120
succeeded ++ ;
116
121
} else {
117
122
failed ++ ;
@@ -143,6 +148,10 @@ function testFile(engine, file, filename, index) {
143
148
delete marked . _original ;
144
149
}
145
150
151
+ console . log ( '#%d. Test %s.' , index , filename ) ;
152
+
153
+ var before = process . hrtime ( ) ;
154
+
146
155
if ( opts . length ) {
147
156
marked . _original = marked . defaults ;
148
157
marked . defaults = { } ;
@@ -156,13 +165,24 @@ function testFile(engine, file, filename, index) {
156
165
} ) ;
157
166
}
158
167
168
+ var threw = false ;
169
+ var exceptionToThrow = null ;
159
170
try {
160
171
text = engine ( file . text ) . replace ( / \s / g, '' ) ;
161
172
html = file . html . replace ( / \s / g, '' ) ;
162
173
} catch ( e ) {
163
- console . log ( '%s failed.' , filename ) ;
164
- throw e ;
174
+ threw = true ;
175
+ exceptionToThrow = e ;
165
176
}
177
+ var elapsed = process . hrtime ( before ) ;
178
+
179
+ var prettyElapsed = 'in ' + prettyElapsedTime ( elapsed ) + ' seconds' ;
180
+
181
+ // TODO Why do we throw this?
182
+ if ( threw ) {
183
+ console . log ( ' failed ' + prettyElapsed ) ;
184
+ throw exceptionToThrow ;
185
+ }
166
186
167
187
l = html . length ;
168
188
@@ -177,7 +197,7 @@ function testFile(engine, file, filename, index) {
177
197
Math . min ( j + 30 , l ) ) ;
178
198
179
199
console . log (
180
- '\n#%d. %s failed at offset %d. Near: "%s".\n' ,
200
+ '\n#%d. %s failed at offset %d ' + prettyElapsed + ' . Near: "%s".\n',
181
201
index , filename , j , text ) ;
182
202
183
203
console . log ( '\nGot:\n%s\n' , text . trim ( ) || text ) ;
@@ -187,8 +207,8 @@ function testFile(engine, file, filename, index) {
187
207
}
188
208
}
189
209
190
- console . log ( '#%d. %s completed.' , index , filename ) ;
191
- return true
210
+ console . log ( ' passed ' + prettyElapsed ) ;
211
+ return true ;
192
212
}
193
213
194
214
/**
@@ -581,3 +601,10 @@ if (!module.parent) {
581
601
exports . bench = bench ;
582
602
module . exports = exports ;
583
603
}
604
+
605
+ // returns time to millisecond granularity
606
+ function prettyElapsedTime ( hrtimeElapsed ) {
607
+ var seconds = hrtimeElapsed [ 0 ] ;
608
+ var fracInMs = Math . round ( hrtimeElapsed [ 1 ] / 1e6 ) ;
609
+ return seconds + '.' + fracInMs ;
610
+ }
0 commit comments