<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[165274] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/165274">165274</a></dd>
<dt>Author</dt> <dd>mhahnenberg@apple.com</dd>
<dt>Date</dt> <dd>2014-03-07 11:40:21 -0800 (Fri, 07 Mar 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>run-jsc-stress-tests doesn't eagerly report test failures when using the shell runner
https://bugs.webkit.org/show_bug.cgi?id=129886

Reviewed by Mark Lam.

* Scripts/jsc-stress-test-helpers/shell-runner.sh: Added a &quot;verbose&quot; mode to the shell runner.
If we're in verbose mode, then we don't redirect any output when running each test. If we're not
in verbose mode then we redirect stdout to /dev/null and allow any stderr output through.
* Scripts/run-jsc-stress-tests: Redirect any sort of error output to stderr so that it will
make it through when in non-verbose mode.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptsjscstresstesthelpersshellrunnersh">trunk/Tools/Scripts/jsc-stress-test-helpers/shell-runner.sh</a></li>
<li><a href="#trunkToolsScriptsrunjscstresstests">trunk/Tools/Scripts/run-jsc-stress-tests</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (165273 => 165274)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2014-03-07 19:02:41 UTC (rev 165273)
+++ trunk/Tools/ChangeLog        2014-03-07 19:40:21 UTC (rev 165274)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2014-03-07  Mark Hahnenberg  &lt;mhahnenberg@apple.com&gt;
+
+        run-jsc-stress-tests doesn't eagerly report test failures when using the shell runner
+        https://bugs.webkit.org/show_bug.cgi?id=129886
+
+        Reviewed by Mark Lam.
+
+        * Scripts/jsc-stress-test-helpers/shell-runner.sh: Added a &quot;verbose&quot; mode to the shell runner.
+        If we're in verbose mode, then we don't redirect any output when running each test. If we're not
+        in verbose mode then we redirect stdout to /dev/null and allow any stderr output through.
+        * Scripts/run-jsc-stress-tests: Redirect any sort of error output to stderr so that it will 
+        make it through when in non-verbose mode.
+
</ins><span class="cx"> 2014-03-07  Martin Robinson  &lt;mrobinson@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] buid-webkit should use CMake by default
</span></span></pre></div>
<a id="trunkToolsScriptsjscstresstesthelpersshellrunnersh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/jsc-stress-test-helpers/shell-runner.sh (165273 => 165274)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/jsc-stress-test-helpers/shell-runner.sh        2014-03-07 19:02:41 UTC (rev 165273)
+++ trunk/Tools/Scripts/jsc-stress-test-helpers/shell-runner.sh        2014-03-07 19:40:21 UTC (rev 165274)
</span><span class="lines">@@ -31,6 +31,15 @@
</span><span class="cx">     fi
</span><span class="cx"> fi
</span><span class="cx"> 
</span><ins>+VERBOSE=0
+while getopts &quot;v&quot; OPTION
+do
+    case $OPTION in
+        v) VERBOSE=1
+            ;;
+    esac
+done
+
</ins><span class="cx"> indexFile=&quot;.index&quot;
</span><span class="cx"> testList=&quot;.all_tests.txt&quot;
</span><span class="cx"> tempFile=&quot;.temp.txt&quot;
</span><span class="lines">@@ -71,7 +80,7 @@
</span><span class="cx">             mv ${tempFile} ${testList}
</span><span class="cx">             unlock_test_list
</span><span class="cx"> 
</span><del>-            sh ${nextTest} &gt; /dev/null
</del><ins>+            [ $VERBOSE -eq 1 ] &amp;&amp; sh ${nextTest} || sh ${nextTest} 1&gt; /dev/null
</ins><span class="cx"> 
</span><span class="cx">             lock_test_list
</span><span class="cx">         done
</span></span></pre></div>
<a id="trunkToolsScriptsrunjscstresstests"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/run-jsc-stress-tests (165273 => 165274)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/run-jsc-stress-tests        2014-03-07 19:02:41 UTC (rev 165273)
+++ trunk/Tools/Scripts/run-jsc-stress-tests        2014-03-07 19:40:21 UTC (rev 165274)
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx">         | outp, plan |
</span><span class="cx">         outp.puts &quot;if test -e #{plan.failFile}&quot;
</span><span class="cx">         outp.puts &quot;then&quot;
</span><del>-        outp.puts &quot;    (echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;else&quot;
</span><span class="cx">         outp.puts &quot;    &quot; + plan.successCommand
</span><span class="lines">@@ -293,7 +293,7 @@
</span><span class="cx">         
</span><span class="cx">         outp.puts &quot;if test -e #{plan.failFile}&quot;
</span><span class="cx">         outp.puts &quot;then&quot;
</span><del>-        outp.puts &quot;    (cat #{outputFilename} &amp;&amp; echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (cat #{outputFilename} &amp;&amp; echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;elif test -e ../#{Shellwords.shellescape(expectedFilename)}&quot;
</span><span class="cx">         outp.puts &quot;then&quot;
</span><span class="lines">@@ -302,11 +302,11 @@
</span><span class="cx">         outp.puts &quot;    then&quot;
</span><span class="cx">         outp.puts &quot;    &quot; + plan.successCommand
</span><span class="cx">         outp.puts &quot;    else&quot;
</span><del>-        outp.puts &quot;        (echo \&quot;DIFF FAILURE!\&quot; &amp;&amp; cat #{diffFilename}) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;        (echo \&quot;DIFF FAILURE!\&quot; &amp;&amp; cat #{diffFilename}) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;        &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;    fi&quot;
</span><span class="cx">         outp.puts &quot;else&quot;
</span><del>-        outp.puts &quot;    (echo \&quot;NO EXPECTATION!\&quot; &amp;&amp; cat #{outputFilename}) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (echo \&quot;NO EXPECTATION!\&quot; &amp;&amp; cat #{outputFilename}) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;fi&quot;
</span><span class="cx">     }
</span><span class="lines">@@ -321,11 +321,11 @@
</span><span class="cx"> 
</span><span class="cx">         outp.puts &quot;if test -e #{plan.failFile}&quot;
</span><span class="cx">         outp.puts &quot;then&quot;
</span><del>-        outp.puts &quot;    (cat #{outputFilename} &amp;&amp; echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (cat #{outputFilename} &amp;&amp; echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;elif grep -i -q failed! #{outputFilename}&quot;
</span><span class="cx">         outp.puts &quot;then&quot;
</span><del>-        outp.puts &quot;    (echo Detected failures: &amp;&amp; cat #{outputFilename}) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (echo Detected failures: &amp;&amp; cat #{outputFilename}) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;else&quot;
</span><span class="cx">         outp.puts &quot;    &quot; + plan.successCommand
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx">         outp.puts &quot;then&quot;
</span><span class="cx">         outp.puts &quot;    &quot; + plan.successCommand
</span><span class="cx">         outp.puts &quot;else&quot;
</span><del>-        outp.puts &quot;    (echo NOTICE: You made this test pass, but it was expected to fail) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (echo NOTICE: You made this test pass, but it was expected to fail) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;fi&quot;
</span><span class="cx">     }
</span><span class="lines">@@ -366,17 +366,17 @@
</span><span class="cx">         outp.puts &quot;    then&quot;
</span><span class="cx">         outp.puts &quot;        if grep -i -q failed! #{outputFilename}&quot;
</span><span class="cx">         outp.puts &quot;        then&quot;
</span><del>-        outp.puts &quot;            (echo Detected failures: &amp;&amp; cat #{outputFilename}) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;            (echo Detected failures: &amp;&amp; cat #{outputFilename}) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;            &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;        else&quot;
</span><span class="cx">         outp.puts &quot;            &quot; + plan.successCommand
</span><span class="cx">         outp.puts &quot;        fi&quot;
</span><span class="cx">         outp.puts &quot;    else&quot;
</span><del>-        outp.puts &quot;        (cat #{outputFilename} &amp;&amp; echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;        (cat #{outputFilename} &amp;&amp; echo ERROR: Unexpected exit code: `cat #{plan.failFile}`) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;        &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;    fi&quot;
</span><span class="cx">         outp.puts &quot;else&quot;
</span><del>-        outp.puts &quot;    (cat #{outputFilename} &amp;&amp; echo ERROR: Test expected to fail, but returned successfully) | &quot; + prefixCommand(plan.name)
</del><ins>+        outp.puts &quot;    (cat #{outputFilename} &amp;&amp; echo ERROR: Test expected to fail, but returned successfully) | &quot; + prefixCommand(plan.name) + &quot;1&gt;&amp;2&quot;
</ins><span class="cx">         outp.puts &quot;    &quot; + plan.failCommand
</span><span class="cx">         outp.puts &quot;fi&quot;
</span><span class="cx">     }
</span></span></pre>
</div>
</div>

</body>
</html>