about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorStefan Schindler <dns2utf8@estada.ch>2021-06-25 09:59:04 +0200
committerStefan Schindler <dns2utf8@estada.ch>2021-08-10 00:47:04 +0200
commitc4eefc3be19aec951b7c90b38aa71ee9f3e96789 (patch)
tree8ae665ded99bff959dce11d8f35749f3d65646ba /src
parentae90dcf0207c57c3034f00b07048d63f8b2363c8 (diff)
downloadrust-c4eefc3be19aec951b7c90b38aa71ee9f3e96789.tar.gz
rust-c4eefc3be19aec951b7c90b38aa71ee9f3e96789.zip
Run rustdoc-gui tests in parallel
Diffstat (limited to 'src')
-rw-r--r--src/tools/rustdoc-gui/tester.js37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/tools/rustdoc-gui/tester.js b/src/tools/rustdoc-gui/tester.js
index 416d824c564..491884b0781 100644
--- a/src/tools/rustdoc-gui/tester.js
+++ b/src/tools/rustdoc-gui/tester.js
@@ -70,6 +70,14 @@ function parseOptions(args) {
     return null;
 }
 
+function print_test_successful() {
+    process.stdout.write(".");
+}
+function print_test_erroneous() {
+    // Bold Red "F" Reset
+    process.stdout.write("\033[1m\x1b[31mF\x1b[0m");
+}
+
 async function main(argv) {
     let opts = parseOptions(argv.slice(2));
     if (opts === null) {
@@ -100,27 +108,48 @@ async function main(argv) {
 
     let failed = false;
     let files;
+    let tests = [];
     if (opts["files"].length === 0) {
         files = fs.readdirSync(opts["tests_folder"]).filter(file => path.extname(file) == ".goml");
     } else {
         files = opts["files"].filter(file => path.extname(file) == ".goml");
     }
-
+    if (files.length === 0) {
+        console.log("rustdoc-gui: No test selected");
+        process.exit(2);
+    }
     files.sort();
+
+    console.log(`running ${files.length} rustdoc-gui tests`);
+    process.setMaxListeners(files.length + 1);
     for (var i = 0; i < files.length; ++i) {
         const testPath = path.join(opts["tests_folder"], files[i]);
-        await runTest(testPath, options).then(out => {
+        tests.push(runTest(testPath, options));
+    }
+
+    let error_outputs = "";
+    let failed_outputs = "";
+    for (var i = 0; i < tests.length; ++i) {
+        await tests[i].then(out => {
             const [output, nb_failures] = out;
-            console.log(output);
             if (nb_failures > 0) {
+                failed_outputs += output + "\n";
+                print_test_erroneous()
                 failed = true;
+            } else {
+                print_test_successful()
             }
         }).catch(err => {
-            console.error(err);
+            error_outputs += err + "\n";
+            print_test_erroneous();
             failed = true;
         });
     }
+    console.log("")
+
     if (failed) {
+        console.log(failed_outputs);
+        console.error(error_outputs);
         process.exit(1);
     }
 }