<!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>[159868] 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/159868">159868</a></dd>
<dt>Author</dt> <dd>ossy@webkit.org</dd>
<dt>Date</dt> <dd>2013-11-29 03:41:02 -0800 (Fri, 29 Nov 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>test-webkit-scripts should show the failing tests and use an appropriate exit code
https://bugs.webkit.org/show_bug.cgi?id=124840

Patch by Jozsef Berta &lt;jberta@inf.u-szeged.hu&gt; on 2013-11-29
Reviewed by Ryosuke Niwa.

A fixme in test-webkit-scripts asked that the script should display success or failiure
and exit with a 0 or 1 value accordingly after all of the tests have completed.

* Scripts/test-webkit-scripts:
(ScriptsTester.run_test_script):
The outcome of the currently run script is returned to the main as a boolean value. A boolean is returned,
because at this point we don't need to pass on more information other than success or failiure.
(ScriptsTester.main):
The return values are now stored for each script and when all tests have completed successfully,
the script indicates success and returns 0. Otherwise it will display the name(s) of the failing script(s) and return 1.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptstestwebkitscripts">trunk/Tools/Scripts/test-webkit-scripts</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (159867 => 159868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2013-11-29 11:38:18 UTC (rev 159867)
+++ trunk/Tools/ChangeLog        2013-11-29 11:41:02 UTC (rev 159868)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2013-11-29  Jozsef Berta  &lt;jberta@inf.u-szeged.hu&gt;
+
+        test-webkit-scripts should show the failing tests and use an appropriate exit code
+        https://bugs.webkit.org/show_bug.cgi?id=124840
+
+        Reviewed by Ryosuke Niwa.
+
+        A fixme in test-webkit-scripts asked that the script should display success or failiure
+        and exit with a 0 or 1 value accordingly after all of the tests have completed.
+
+        * Scripts/test-webkit-scripts:
+        (ScriptsTester.run_test_script):
+        The outcome of the currently run script is returned to the main as a boolean value. A boolean is returned,
+        because at this point we don't need to pass on more information other than success or failiure.
+        (ScriptsTester.main):
+        The return values are now stored for each script and when all tests have completed successfully,
+        the script indicates success and returns 0. Otherwise it will display the name(s) of the failing script(s) and return 1.
+
</ins><span class="cx"> 2013-11-29  Krzysztof Czech  &lt;k.czech@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [ATK] Added support for isAttributeSettable in AccessibilityUIElementAtk
</span></span></pre></div>
<a id="trunkToolsScriptstestwebkitscripts"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/test-webkit-scripts (159867 => 159868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/test-webkit-scripts        2013-11-29 11:38:18 UTC (rev 159867)
+++ trunk/Tools/Scripts/test-webkit-scripts        2013-11-29 11:41:02 UTC (rev 159868)
</span><span class="lines">@@ -59,8 +59,9 @@
</span><span class="cx">         call_args = [script_path]
</span><span class="cx">         if args:
</span><span class="cx">             call_args.extend(args)
</span><del>-        subprocess.call(call_args)
</del><ins>+        return_code = subprocess.call(call_args)
</ins><span class="cx">         print(70 * &quot;*&quot;) # dividing line
</span><ins>+        return not bool(return_code)
</ins><span class="cx"> 
</span><span class="cx">     def main(self):
</span><span class="cx">         parser = OptionParser(description=__doc__)
</span><span class="lines">@@ -69,17 +70,25 @@
</span><span class="cx">                           'including those suppressed by default')
</span><span class="cx">         (options, args) = parser.parse_args()
</span><span class="cx"> 
</span><del>-        self.run_test_script('Perl scripts', self.script_path('test-webkitperl'))
-        self.run_test_script('Python scripts', self.script_path('test-webkitpy'),
</del><ins>+        webkitperl_success = self.run_test_script('Perl scripts', self.script_path('test-webkitperl'))
+        webkitpy_success = self.run_test_script('Python scripts', self.script_path('test-webkitpy'),
</ins><span class="cx">                              ['--all'] if options.all else None)
</span><del>-        self.run_test_script('Ruby scripts', self.script_path('test-webkitruby'))
</del><ins>+        webkitruby_success = self.run_test_script('Ruby scripts', self.script_path('test-webkitruby'))
</ins><span class="cx"> 
</span><del>-        # FIXME: Display a cumulative indication of success or failure.
-        #        In addition, call sys.exit() with 0 or 1 depending on that
-        #        cumulative success or failure.
-        print('Note: Perl, Python, and Ruby results appear separately above.')
-
-
</del><ins>+        if webkitperl_success and webkitpy_success and webkitruby_success:
+            print('All tests completed successfully')
+            sys.exit(0)
+        else:
+            print('The following test scripts have failed: ')
+            if not webkitperl_success:
+                print('test-webkitperl')
+            if not webkitpy_success:
+                print('test-webkitpy')
+            if not webkitruby_success:
+                print('test-webkitruby')
+            print('Detailed results appear separately above.')
+            sys.exit(1)
+            
</ins><span class="cx"> if __name__ == '__main__':
</span><span class="cx">     # The scripts directory is the directory containing this file.
</span><span class="cx">     tester = ScriptsTester(os.path.dirname(__file__))
</span></span></pre>
</div>
</div>

</body>
</html>