@@ -70,6 +70,14 @@ function parseOptions(args) {
70
70
return null ;
71
71
}
72
72
73
+ function print_test_successful ( ) {
74
+ process . stdout . write ( "." ) ;
75
+ }
76
+ function print_test_erroneous ( ) {
77
+ // Bold Red "F" Reset
78
+ process . stdout . write ( "\033[1m\x1b[31mF\x1b[0m" ) ;
79
+ }
80
+
73
81
async function main ( argv ) {
74
82
let opts = parseOptions ( argv . slice ( 2 ) ) ;
75
83
if ( opts === null ) {
@@ -100,27 +108,48 @@ async function main(argv) {
100
108
101
109
let failed = false ;
102
110
let files ;
111
+ let tests = [ ] ;
103
112
if ( opts [ "files" ] . length === 0 ) {
104
113
files = fs . readdirSync ( opts [ "tests_folder" ] ) . filter ( file => path . extname ( file ) == ".goml" ) ;
105
114
} else {
106
115
files = opts [ "files" ] . filter ( file => path . extname ( file ) == ".goml" ) ;
107
116
}
108
-
117
+ if ( files . length === 0 ) {
118
+ console . log ( "rustdoc-gui: No test selected" ) ;
119
+ process . exit ( 2 ) ;
120
+ }
109
121
files . sort ( ) ;
122
+
123
+ console . log ( `running ${ files . length } rustdoc-gui tests` ) ;
124
+ process . setMaxListeners ( files . length + 1 ) ;
110
125
for ( var i = 0 ; i < files . length ; ++ i ) {
111
126
const testPath = path . join ( opts [ "tests_folder" ] , files [ i ] ) ;
112
- await runTest ( testPath , options ) . then ( out => {
127
+ tests . push ( runTest ( testPath , options ) ) ;
128
+ }
129
+
130
+ let error_outputs = "" ;
131
+ let failed_outputs = "" ;
132
+ for ( var i = 0 ; i < tests . length ; ++ i ) {
133
+ await tests [ i ] . then ( out => {
113
134
const [ output , nb_failures ] = out ;
114
- console . log ( output ) ;
115
135
if ( nb_failures > 0 ) {
136
+ failed_outputs += output + "\n" ;
137
+ print_test_erroneous ( )
116
138
failed = true ;
139
+ } else {
140
+ print_test_successful ( )
117
141
}
118
142
} ) . catch ( err => {
119
- console . error ( err ) ;
143
+ error_outputs += err + "\n" ;
144
+ print_test_erroneous ( ) ;
120
145
failed = true ;
121
146
} ) ;
122
147
}
148
+ console . log ( "" )
149
+
123
150
if ( failed ) {
151
+ console . log ( failed_outputs ) ;
152
+ console . error ( error_outputs ) ;
124
153
process . exit ( 1 ) ;
125
154
}
126
155
}
0 commit comments