flush `stdout` from `ufuzz` jobs properly (#4224)
authorAlex Lam S.L <alexlamsl@gmail.com>
Fri, 16 Oct 2020 13:56:54 +0000 (14:56 +0100)
committerGitHub <noreply@github.com>
Fri, 16 Oct 2020 13:56:54 +0000 (21:56 +0800)
test/ufuzz/index.js
test/ufuzz/job.js

index e650a46..09cad3b 100644 (file)
@@ -331,6 +331,7 @@ function strictMode() {
 
 function createTopLevelCode() {
     VAR_NAMES.length = INITIAL_NAMES_LEN; // prune any previous names still in the list
+    block_vars.length = 0;
     unique_vars.length = 0;
     loops = 0;
     funcs = 0;
index 20f6ee0..52c057e 100644 (file)
@@ -48,8 +48,10 @@ function run() {
         stderr = "";
         child.stderr.on("data", trap).pipe(process.stdout);
         log = setInterval(function() {
+            stdout = stdout.replace(/[^\r\n]+\r(?=[^\r\n]+\r)/g, "");
             var end = stdout.lastIndexOf("\r");
-            console.log(stdout.slice(stdout.lastIndexOf("\r", end - 1) + 1, end));
+            if (end < 0) return;
+            console.log(stdout.slice(0, end));
             stdout = stdout.slice(end + 1);
         }, 5 * 60 * 1000);
     }