<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>happiest unalice ever</title>
	<atom:link href="http://alice.nodelman.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://alice.nodelman.net/blog</link>
	<description>infrequent updates and long delays</description>
	<pubDate>Thu, 02 Sep 2010 22:43:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Talos Documentation Updates</title>
		<link>http://alice.nodelman.net/blog/post/talos-documentation-updates/</link>
		<comments>http://alice.nodelman.net/blog/post/talos-documentation-updates/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 22:43:26 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[talos]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=129</guid>
		<description><![CDATA[I recently put some time into updating the talos documentation.  There are now sections describing how numbers are calculated, the history of the tp test along with updates to descriptions of tests, description of talos hardware, where to file bugs and so on.
Any comments and suggestions on what needs addition or further clarification would [...]]]></description>
			<content:encoded><![CDATA[<p>I recently put some time into updating the <a href="https://wiki.mozilla.org/Buildbot/Talos">talos documentation</a>.  There are now sections describing how <a href="https://wiki.mozilla.org/Buildbot/Talos#How_are_the_numbers_calculated.3F">numbers are calculated</a>, the <a href="https://wiki.mozilla.org/Buildbot/Talos#History_of_tp_Tests">history of the tp test</a> along with updates to descriptions of tests, description of talos hardware, where to file bugs and so on.</p>
<p>Any comments and suggestions on what needs addition or further clarification would be great.  I&#8217;m mostly going by the questions that are directed at me the most frequently.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/talos-documentation-updates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Update to Standalone Talos Yet Again (Now 1.7.1)</title>
		<link>http://alice.nodelman.net/blog/post/update-to-standalone-talos-yet-again-now-171/</link>
		<comments>http://alice.nodelman.net/blog/post/update-to-standalone-talos-yet-again-now-171/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 22:07:45 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=125</guid>
		<description><![CDATA[I introduced a not-quite-an-error in 1.7 in that the tests were attempting to load test pages through localhost.  This wouldn&#8217;t work unless you have a local web server up and working and with the correct document root set.  As Standalone Talos is designed to have minimal requirements I&#8217;ve updated it to use file:// instead of [...]]]></description>
			<content:encoded><![CDATA[<p>I introduced a not-quite-an-error in 1.7 in that the tests were attempting to load test pages through localhost.  This wouldn&#8217;t work unless you have a local web server up and working and with the correct document root set.  As Standalone Talos is designed to have minimal requirements I&#8217;ve updated it to use file:// instead of http://.  Now it will run without any webservice.</p>
<p>Again, if you use Standalone Talos for local testing please update to latest.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/update-to-standalone-talos-yet-again-now-171/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Standalone Talos V1.7</title>
		<link>http://alice.nodelman.net/blog/post/standalone-talos-v17/</link>
		<comments>http://alice.nodelman.net/blog/post/standalone-talos-v17/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 17:59:04 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=121</guid>
		<description><![CDATA[I&#8217;ve updated Standalone Talos to version 1.7 - available here.  It&#8217;s been quite a while since a standalone talos update so there are several changes:

new tscroll test
updated version of dromaeo
tests for group opacity perf
ability to dump all output to stdout using the &#8216;&#8211;screen&#8217; option
a bunch of orange fixes for failing to initialize browsers/timeouts

If you use [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated Standalone Talos to version 1.7 - available <a href="https://wiki.mozilla.org/StandaloneTalos">here</a>.  It&#8217;s been quite a while since a standalone talos update so there are several changes:</p>
<ul>
<li>new <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=534819">tscroll</a> test</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=507738">updated version of dromaeo</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=524089">tests for group opacity perf</a></li>
<li>ability to dump all output to stdout using the &#8216;&#8211;screen&#8217; option</li>
<li>a bunch of orange fixes for failing to initialize browsers/timeouts</li>
</ul>
<p>If you use Standalone talos for local testing please download and update to latest.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/standalone-talos-v17/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Universal Manifest For Unit Tests: A Proposal</title>
		<link>http://alice.nodelman.net/blog/post/universal-manifest-for-unit-tests-a-proposal/</link>
		<comments>http://alice.nodelman.net/blog/post/universal-manifest-for-unit-tests-a-proposal/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 18:10:14 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=110</guid>
		<description><![CDATA[I&#8217;ve come up with a proposed universal manifest format for unit tests based upon the many good comments and suggestions that I received after my last two blog posts.  The simplest case is still very simple and the more complicated cases are now easier to read and understand.  I&#8217;ve put together a list [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come up with a proposed universal manifest format for unit tests based upon the many good comments and suggestions that I received after my last two blog posts.  The simplest case is still very simple and the more complicated cases are now easier to read and understand.  I&#8217;ve put together a list of examples from the current manifests and then converted them to the new manifest.  We are still not totally finalized here, but I think that this is a good working format that can be refined.</p>
<p>I&#8217;m still working from the stance that script doesn&#8217;t belong in manifest files so the format handles &amp;&amp; and || cases without code.  With the help of my auto-tools chums we searched the code base for difficult examples to ensure that this was still flexible enough to handle the expressions that we currently support.</p>
<p>Also, having worked on the conversions from old to new I have to say that it was really easy to get this going - admittedly, I&#8217;d done some reading on JSON and was immersed in the problem set - but I think that it is a good indication that this could make reading and writing manifests a lot nicer.</p>
<p>I&#8217;m once again happy to get any comments on the current proposal.  If things look good it will be time to get everyone together for a Brown Bag to hash this out and finalize.  I&#8217;ll get that in the works once I see if I have to take this back to the drawing board.</p>
<ol>
<li>simple case</li>
<h5>old</h5>
<pre> == 399209-1.html 399209-1-ref.html
 == 399209-2.html 399209-2-ref.html
 == 399384-1.html 399384-1-ref.html</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "==" : ['399209-1.html', '399209-1-ref.html']  },
        {  "==" : ['399209-2.html', '399209-2-ref.html']  },
        {  "==" : ['399384-1.html', '399384-1-ref.html']  }
    ]
}</pre>
<li>ref test with two fails-if clauses and one random-if clause</li>
<h5>old</h5>
<pre>fails-if(MOZ_WIDGET_TOOLKIT=="windows") fails-if(MOZ_WIDGET_TOOLKIT=="cocoa") random-if(MOZ_WIDGET_TOOLKIT!="cocoa"&amp;&amp;MOZ_WIDGET_TOOLKIT!="windows") != 399636-quirks-html.html 399636-quirks-ref.html # windows failure bug 429017, mac failure bug 429019</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "!=" : ['399636-quirks-html.html', '399636-quirks-ref.html'],
           "fails" : { 'if' : ['windows']},
           "fails" : { 'if' : ['cocoa']},
           "random : { 'if' : ['!cocoa', '!windows']}  }
    ]
}</pre>
<li>ref test with two random-if clauses</li>
<h5>old</h5>
<pre>random-if(MOZ_WIDGET_TOOLKIT=="gtk2") random-if(MOZ_WIDGET_TOOLKIT=="cocoa") == mirroring-02.html mirroring-02-ref.html</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {   "==" : ['mirroring-02.html', 'mirroring-02-ref.html'],
            "random" : { 'if' : ['gtk2']},
            "random" : { 'if' : ['cocoa']} }
    ]
}</pre>
<li>ref test with one fails-if clause and one skip-if clause</li>
<h5>old</h5>
<pre>fails-if(!haveTestPlugin) skip-if(!prefs.getBoolPref("dom.ipc.plugins.enabled")) == pluginproblemui-direction-1.html pluginproblemui-direction-ref.html</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {   "==" : ['pluginproblemui-direction-1.html', 'pluginproblemui-direction-ref.html'],
            "fails" : { 'if' : ['!haveTestPlugin']},
            "skip" : { 'prefs' : ["dom.ipc.plugins.enabled" : "False"] }  }
    ]
}</pre>
<li>js test with one fails-if clause and one skip-if clause</li>
<h5>old</h5>
<pre>fails-if(!xulRuntime.shell&amp;&amp;!isDebugBuild) skip-if(!xulRuntime.shell&amp;&amp;isDebugBuild) script regress-455464-04.js # bug xxx - hangs reftests in debug, ### bug xxx - NS_ERROR_DOM_NOT_SUPPORTED_ERR in opt</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "script"  : "regress-455464-04.js",
           "fails" : { 'if' : ['!shell', '!isDebugBuild']},
           "skip" : { 'if' : ['!shell', 'isDebugBuild']}  }
    ]
}</pre>
<li>js test with one random-if clause and one asserts-if(count) clause</li>
<h5>old</h5>
<pre>random-if(!xulRuntime.shell&amp;&amp;xulRuntime.OS=="WINNT") asserts-if(!xulRuntime.shell&amp;&amp;xulRuntime.OS=="WINNT",1) script regress-344804.js # bug 524732</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "script" :  'regress-344804.js',
           "random" : { 'if' : ['!shell', 'WINNT']},
           "asserts"  : { 'if' :  ['!shell, 'WINNT'], "count" : 1} }
    ]
}</pre>
<li>js test with one random-if clause, one fails-if clause and one skip-if clause</li>
<h5>old</h5>
<pre>fails-if(xulRuntime.OS=="WINNT") random-if(xulRuntime.OS=="Linux"&amp;&amp;!XPCOMABI.match(/x86_64/)) skip-if(xulRuntime.OS=="Linux"&amp;&amp;XPCOMABI.match(/x86_64/)) script regress-3649-n.js # No test results on windows, sometimes no test results on 32 bit linux, hangs os/consumes ram/swap on 64bit linux.</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "script" :  'regress-3649-n.js'
           "fails" : { 'if' : ['WINNT']},
           "random" : { 'if' : ['Linux', '!x86_64']},
           "skip" : { 'if' : ['Linux', 'x86_64']}  }
    ]
}</pre>
<li>ref test with one asserts(min,max) clause</li>
<h5>old</h5>
<pre>asserts(0-1) == background-draw-nothing-malformed-images.html background-draw-nothing-ref.html</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "==" : ['background-draw-nothing-malformed-images.html', 'background-draw-nothing-ref.html'],
           "asserts" : {'min' : 0, 'max' : 1}
    ]
}</pre>
<li>ref test with one asserts-if(count) clause</li>
<h5>old</h5>
<pre>asserts-if(MOZ_WIDGET_TOOLKIT=="gtk2",1) == 355548-3.xml 355548-3-ref.xml # bug 456899</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "==" : [' 355548-3.xml', '355548-3-ref.xml],
           "asserts" : { 'if' : ['gtk2'], 'count' : 1}  }
    ]
}</pre>
<li>load test with one asserts-if(count) and one asserts(count) clause</li>
<h5>old</h5>
<pre>asserts(10) asserts-if(MOZ_WIDGET_TOOLKIT=="windows",8) load 265986-1.html</pre>
<h5>proposed</h5>
<pre>{   "tests" :
    [
        {  "load" : '265986-1.html',
           "asserts" : { 'if' : ['windows'], 'count' : 8},
           "asserts" : { 'count' : 10}  }
    ]
}</pre>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/universal-manifest-for-unit-tests-a-proposal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Universal Manifest Format For Unit Tests (part 2)</title>
		<link>http://alice.nodelman.net/blog/post/universal-manifest-format-for-unit-tests-part-2/</link>
		<comments>http://alice.nodelman.net/blog/post/universal-manifest-format-for-unit-tests-part-2/#comments</comments>
		<pubDate>Fri, 14 May 2010 23:14:11 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=92</guid>
		<description><![CDATA[There was a lot of good feedback from the post introducing the concept of universal manifest formats for all unit tests.  I want to continue the discussion based upon those questions/comments.
Why aren&#8217;t we just going to take one of our existing manifest formats and roll it out to the rest of the tests?  Why re-invent [...]]]></description>
			<content:encoded><![CDATA[<p>There was a lot of good feedback from the post introducing the concept of universal manifest formats for all unit tests.  I want to continue the discussion based upon those questions/comments.</p>
<p><strong>Why aren&#8217;t we just going to take one of our existing manifest formats and roll it out to the rest of the tests?  Why re-invent the wheel?</strong><br />
The most suggestions were for adopting the reftest manifest format across the board.  While the reftest manifests are excellent at what they are designed for we are hitting the point where they can&#8217;t handle the growth in terms of 32 vs. 64 bit tests, qt vs. gtk vs. android (which all end up in the same &#8216;linux&#8217; bucket), shell tests vs. full browser, etc.  Here&#8217;s some of the worst offenders that are already in use:<br />
<code><br />
./js/src/tests/js1_5/extensions/jstests.list:<br />
random-if(xulRuntime.OS=="WINNT"&amp;&amp;!isDebugBuild) skip-if(xulRuntime.OS=="Linux") script regress-342960.js # slow<br />
./js/src/tests/js1_5/Regress/jstests.list:<br />
fails-if(xulRuntime.OS=="WINNT") random-if(xulRuntime.OS=="Linux"&amp;&amp;!XPCOMABI.match(/x86_64/)) skip-if(xulRuntime.OS=="Linux"&amp;&amp;XPCOMABI.match(/x86_64/)) script regress-3649-n.js # No test results on windows, sometimes no test results on 32 bit linux, hangs os/consumes ram/swap on 64bit linux.<br />
./js/src/tests/js1_6/extensions/jstests.list:<br />
fails-if(!xulRuntime.shell&amp;&amp;!isDebugBuild) skip-if(!xulRuntime.shell&amp;&amp;isDebugBuild) script regress-455464-04.js # bug xxx - hangs reftests in debug, ### bug xxx - NS_ERROR_DOM_NOT_SUPPORTED_ERR in opt<br />
./layout/reftests/bugs/reftest.list:<br />
fails-if(MOZ_WIDGET_TOOLKIT=="windows") fails-if(MOZ_WIDGET_TOOLKIT=="cocoa") random-if(MOZ_WIDGET_TOOLKIT!="cocoa"&amp;&amp;MOZ_WIDGET_TOOLKIT!="windows") != 399636-quirks-html.html 399636-quirks-ref.html # windows failure bug 429017, mac failure bug 429019<br />
./modules/plugin/test/reftest/reftest.list:<br />
fails-if(!haveTestPlugin) skip-if(!prefs.getBoolPref("dom.ipc.plugins.enabled")) == pluginproblemui-direction-1.html pluginproblemui-direction-ref.html<br />
</code><br />
It&#8217;s all pretty unreadable, and things are just going to get worse as more mobile platforms come online and we have to handle exceptions for each one.</p>
<p><strong>Adding tests is currently easy and I don&#8217;t want to lose that.</strong><br />
Totally in agreement here!  There may end up being a few more keystrokes, but overall things really aren&#8217;t changing much for the simplest case.  Something like this:<br />
<code>#old syntax<br />
== file1.html file1-ref.html<br />
#new syntax<br />
{"type" : "=="<br />
"files" : ["file1.html", "file1-ref.html"]<br />
}</code></p>
<p><strong>What&#8217;s the benefit here? </strong></p>
<ul>
<li>Greater granularity</li>
<p>Make it possible to target specific sections of code for test runs.  Specialized manifests would be easy to create around an area of interest.  For instance, if I make a manifest that includes all content tests, then I can do something like:<br />
<code>&gt; python runtests.py --manfiest=mycontentmanfiest.json</code><br />
and it can run only the tests that I want based on my patch.</p>
<li>Better benchmarks</li>
<p>Enable us to easily benchmark things - run all known [orange] tests, run specific performance intensive tests several times for profiling diagnostic, etc.</p>
<li>Finer filtering</li>
<p>Want to enable a test on maemo only?  Want to never run a test on android?  We want to make this simpler and easier without having to do a bunch of inline javascript hacking.</ul>
<p><strong>Why are you picking on reftests?</strong><br />
We chose refest to be used as a proof of concept.  We wanted to roll the new manifest format out to reftest first to ensure that everything worked the way that we wanted (kick the tires a bit) and then slowly convert over our other test harnesses.</p>
<p><strong>What about inline js calls like for isDebugBuild or checks against MOZ_WIDGET_TOOLKIT?</strong><br />
We no longer want to support js code in manifest files.  We believe that that sort of code should live outside the manifest.  Support would be built into the manifest for the states that these calls check (ie, lists of available platforms to test against, lists of build types, native theme types, etc).  This way every test would use the same check, and if the check needs to be updated to support a new platform/arch/build/theme/etc it can be done in a central location.  This will come in handy for the mobile platforms which would all currently end up identified as &#8216;linux&#8217;.</p>
<p><strong>Where&#8217;s the new format?</strong><br />
This is probably the biggest question.  Truth is, we aren&#8217;t finalized here yet.  We are pretty sure that json is the way to go for the flexibility that we want - but we are still very open to suggestions.  Right now this is what we are considering:</p>
<pre style="font:inherit;">{   "tests" :
    [
        {    "type": "==",
             "files": ["file1.html", file2.html"],
             "skip-if": ["maemo", "android"],
             "prefs": {
                          pref1 : bool1
                          pref2 : bool2
                      },
        },
        {    "type" : "js",
             "files" : ["jsfile.html"],
             "random-if" : ["winnt"],
             "skip-if": ["isdebug"],
        }
        {    "group" : "withTestplugin",
             "plugins": ["plugin1.xpi"],
             "prefs": {
                          enablePlugin : True
                      }
             "tests" :
             [
                 {    "type" : "!=",
                      "files" : ["file1.html", "file6.html"],
                 }
             ]
         }
    ]
}</pre>
<p>This format would allow you to easily set prefs either per-test or per-group of tests.  There is also a means to install/enable plugins and then group tests together that use that plugin.  A lot has been borrowed from reftest manifest (skip-if, random-if) as that is stuff that works - we want to take concepts that work and keep them around.  What do you like about it?  What don&#8217;t you like?  What would you like included as an option?  Would you prefer xml?  yaml?  We are in very early stages here and the end result should be a manifest format that everyone is happy with.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/universal-manifest-format-for-unit-tests-part-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Universal Manifest Format For Unit Tests (and maybe Talos)</title>
		<link>http://alice.nodelman.net/blog/post/universal-manifest-format-for-unit-tests-and-maybe-talos/</link>
		<comments>http://alice.nodelman.net/blog/post/universal-manifest-format-for-unit-tests-and-maybe-talos/#comments</comments>
		<pubDate>Fri, 07 May 2010 21:29:22 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=83</guid>
		<description><![CDATA[Having just joined the Auto-Tools team they thought that they would start me on something fun!  Here&#8217;s the problem that I was presented with:

each type of unit test uses it&#8217;s own manifest file format
there is a different manifest file reader for each type of manifest
we hack each manifest separately when we want to expand functionality [...]]]></description>
			<content:encoded><![CDATA[<p>Having just joined the Auto-Tools team they thought that they would start me on something fun!  Here&#8217;s the problem that I was presented with:</p>
<ul>
<li>each type of unit test uses it&#8217;s own manifest file format</li>
<li>there is a different manifest file reader for each type of manifest</li>
<li>we hack each manifest separately when we want to expand functionality (like skipping a test per-branch, or adding a pref to a test)</li>
</ul>
<p>Here are some examples:</p>
<ul>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/layout/reftests/canvas/reftest.list">canvas/reftest.list</a></li>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/js/src/tests/js1_4/Regress/jstests.list?force=1">Regress/jstests.list</a></li>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/netwerk/test/Makefile.in">xpcshell example Makefile</a></li>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/chrome/Makefile.in">mochitest example Makefile</a></li>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/testing/crashtest/sanity/crashtests.list">sanity/crashtests.list</a></li>
</ul>
<p>So, some tests use Makefiles and some use lists and we don&#8217;t have a standardized means of adding extra information to any given test.  Some test lists are generated on the fly (say as built up in the web browser for <a href="http://mxr.mozilla.org/mozilla-central/source/testing/mochitest/server.js#405">mochitest</a>), some are checked in and static.  Changing which tests mochitest and xpcshell export currently involves Makefile hacking, something that is pretty unpleasant.</p>
<p>Auto-tools proposes that we settle on a universal manifest format for all tests.  Most likely this would be json (we toyed with yaml but that would add extra dependency overhead and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=517950">bug 517950</a> has requested that we remove yaml from talos, so it doesn&#8217;t seem to have many fans).</p>
<p>We&#8217;ve collected proposed formats to the <a href="https://wiki.mozilla.org/Auto-tools/Projects/UniversalManifest">Universal Manifest Project Wiki</a>.  One thing that we don&#8217;t want to do here is design in a bubble.  While there are benefits to the auto-tools team in terms of code re-use, centralizing bug fixes and such the biggest consumer of these tests are developers.  We want to provide all these benefits without sacrificing developer productivity.  Our goal is to keep our test harnesses as simple and as easy-to-use as possible while making them extensible and flexible for whatever the future holds.  Feedback is both requested and highly appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/universal-manifest-format-for-unit-tests-and-maybe-talos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Standalone Talos V1.5</title>
		<link>http://alice.nodelman.net/blog/post/standalone-talos-v15/</link>
		<comments>http://alice.nodelman.net/blog/post/standalone-talos-v15/#comments</comments>
		<pubDate>Thu, 07 May 2009 18:30:02 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[talos]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=79</guid>
		<description><![CDATA[In this version:

Bug 480413 - design test to monitor browser shut down time
Bug 483097 -  have talos use firefox-bin to run the browser on linux/mac

See Standalone Talos documentation for download and installation instructions.
]]></description>
			<content:encoded><![CDATA[<p>In this version:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=480413">Bug 480413 - design test to monitor browser shut down time</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=483097">Bug 483097 -  have talos use firefox-bin to run the browser on linux/mac</a></li>
</ul>
<p>See <a href="https://wiki.mozilla.org/StandaloneTalos">Standalone Talos documentation</a> for download and installation instructions.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/standalone-talos-v15/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tshutdown Goes Live</title>
		<link>http://alice.nodelman.net/blog/post/tshutdown-goes-live/</link>
		<comments>http://alice.nodelman.net/blog/post/tshutdown-goes-live/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 23:42:52 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[talos]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=75</guid>
		<description><![CDATA[If you&#8217;ve been following along with Bug 480413 -  design test to monitor browser shut down time you&#8217;ll know that I attempted to roll out Tshutdown on the 18th.  Unfortunately, there were a couple of bugs that weren&#8217;t discovered in staging and I spent 6 or 7 hours on a beautiful Saturday afternoon [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been following along with <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=480413">Bug 480413 -  design test to monitor browser shut down time</a> you&#8217;ll know that I attempted to roll out Tshutdown on the 18th.  Unfortunately, there were a couple of bugs that weren&#8217;t discovered in staging and I spent 6 or 7 hours on a beautiful Saturday afternoon attempting to fix them on the fly.  Not able to make it work I had to back it all out and fume.</p>
<p>With a clearer head I approached the bugs on Monday morning and resolved both of them.  Then it was just a question of waiting for an appropriate downtime.  Though I&#8217;m as excited about 3.5b4 as anyone, it really gets in the way of arranging Talos code changes.  Finally, yesterday afternoon we were able to shut down everything and check things in.</p>
<p>I&#8217;m glad to say that this landing was successful.  There&#8217;s a good chance that Tshutdown will clean up the issues in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=478603">Bug 478603 -  intermittent orange on Windows mozilla-central talos Ts and Tdhtml tests (&#8221;failed to initialize browser&#8221;)</a>, as we&#8217;ll start to record the longer shutdown times instead of freezing up and reporting orange.</p>
<p>It&#8217;ll be a few more days till we have enough data for Tshutdown to look like anything but a scatter graph, but you can check out the reported results at <a href="http://graphs-new.mozilla.org">graphs-new.mozilla.org</a>.  There&#8217;s actually more to Tshutdown than a single test.  You&#8217;ll see &#8220;Tp3 Shutdown&#8221;, &#8220;Tp3 Nochrome Shutdown&#8221;, &#8220;Tp3 Fast Shutdown&#8221; and &#8220;Ts Shutdown&#8221;.  Basically, we record the shutdown time after running the given test.  Post Ts results in a &#8216;clean&#8217; shutdown time as we run Ts with an empty, new profile; post Tp3 results in a &#8216;dirty&#8217; shutdown time as the browser has just completed cycling 10 times through 400 web pages.  The post Tp3 results will also show greater variance because we only run Tp3 once per full test cycle (the test does take a good hour or more to complete depending on the platform) and we only have that single value to report, with Ts we rapidly open and close the browser 20 times so we have a data set that we can average to get a more consistent value.</p>
<p>I&#8217;m very pleased to get the whole mess put to bed.  There were non-threadsafe python libraries (subprocess, I&#8217;m looking at you) to deal with, twisted banana errors (I kid you not), and a whole mess of timing issues.  You can&#8217;t build what you don&#8217;t monitor and shutdown is an import part of our user&#8217;s experience - hopefully we&#8217;ll be able to start to trim down our shutdown time now that we are reporting results from all our active Talos boxes.</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/tshutdown-goes-live/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sheriffs Take Notice: We Can Retest Builds With Talos Sendchange</title>
		<link>http://alice.nodelman.net/blog/post/sheriffs-take-notice-we-can-retest-builds-with-talos-sendchange/</link>
		<comments>http://alice.nodelman.net/blog/post/sheriffs-take-notice-we-can-retest-builds-with-talos-sendchange/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 01:01:14 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[talos]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=67</guid>
		<description><![CDATA[I&#8217;m a little late in posting anything about this, but Bug 468731 -  talos testing of builds using sendchange  is a big deal.  I had initially thought that we wouldn&#8217;t be able to make use of Buildbot&#8217;s senchange systems due to the weird hacking that Talos does to the Buildbot change object [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a little late in posting anything about this, but <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468731">Bug 468731 -  talos testing of builds using sendchange </a> is a big deal.  I had initially thought that we wouldn&#8217;t be able to make use of Buildbot&#8217;s senchange systems due to the weird hacking that Talos does to the Buildbot change object to move around all the pieces of information required by Talos.  Thankfully, catlee wasn&#8217;t nearly so pessimistic and found a way to make it work.</p>
<p>Mostly it sounds like a bunch of Buildbot nonsense that shouldn&#8217;t really interest anyone outside of the Release Engineering team, but it has huge benefits to sheriffs and developers.  With Talos buildbot now supporting sendchange we can push builds through the Talos testing infrastructure provided only a correctly formatted link to the build in question.  I&#8217;ve already used this to force a re-test of a build that had failed; it immediately failed again on different Talos test boxes and proved that the issue was in the build and not in Talos.</p>
<p>If a build is on stage and downloadable we can make Talos test it as many times as we want.  We still don&#8217;t have the means to push any build we like through, but retesting pretty much any build on staging can be very useful when trying to narrow down a regression range or figure out if a regression is &#8216;real&#8217;.  If you are in a situation where you would like to retest a build contact the Release Engineering team member on buildduty (identified as nick-buildduty on irc) and they&#8217;ll get it going for you.</p>
<p>Thanks, catlee!</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/sheriffs-take-notice-we-can-retest-builds-with-talos-sendchange/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Towards Switching To New Graph Server Full Time</title>
		<link>http://alice.nodelman.net/blog/post/towards-switching-to-new-graph-server-full-time/</link>
		<comments>http://alice.nodelman.net/blog/post/towards-switching-to-new-graph-server-full-time/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 23:53:12 +0000</pubDate>
		<dc:creator>alice</dc:creator>
		
		<category><![CDATA[graphs]]></category>

		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[talos]]></category>

		<guid isPermaLink="false">http://alice.nodelman.net/blog/?p=58</guid>
		<description><![CDATA[Bug 487329 - Graph server migration tracking is almost fixed and complete.  What does this mean for people who use the graph server?

graphs-new.mozilla.org will become graphs.mozilla.org
The current graphs.mozilla.org will become graphs-old.mozilla.org
No new data will be sent to graphs-old.mozilla.org
graphs-old.mozilla.org will remain up so that older data can be viewed/searched

We&#8217;ve been seeding the new graph server [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=487329">Bug 487329 - Graph server migration tracking</a> is almost fixed and complete.  What does this mean for people who use the graph server?</p>
<ol>
<li><a href="http://graphs-new.mozilla.org">graphs-new.mozilla.org</a> will become <a href="http://graphs.mozilla.org">graphs.mozilla.org</a></li>
<li>The current <a href="http://graphs.mozilla.org">graphs.mozilla.org</a> will become <a href="http://graphs-old.mozilla.org">graphs-old.mozilla.org</a></li>
<li>No new data will be sent to <a href="http://graphs-old.mozilla.org">graphs-old.mozilla.org</a></li>
<li><a href="http://graphs-old.mozilla.org">graphs-old.mozilla.org</a> will remain up so that older data can be viewed/searched</li>
</ol>
<p>We&#8217;ve been seeding the new graph server with data for a month now and I think that the majority of people are already using it as their main means of viewing performance data; for the most part the switch over should be painless.</p>
<p>What may be slightly more controversial is that there is no current plan to migrate any data from the old graph server to the new.  There&#8217;s some very good reasons for this:</p>
<ul>
<li>Data in the old graph server was generated by using throttled test slaves, we no longer throttle slaves so the numbers would not be comparable</li>
<li>We are close to rolling out a new Tp test page set, we did not test with this new page set before so the numbers in the old graph server would not be comparable</li>
<li>Most of the numbers on the old graph server were collected before we rolled out reboot-every-test-slave-post-every-test - the numbers have greater variance and there are large swaths of data that aren&#8217;t trustworthy or useful in anyway (basically, long periods of time when the box in question was in serious need of a reboot)</li>
</ul>
<p>Instead of banging our heads against shifting data from the <a href="http://people.mozilla.org/~morgamic/perfomatic.png">old, poorly thought out schema</a> to the <a href="https://wiki.mozilla.org/images/f/f5/Graph_server_new_db_schema.jpg">new, super fast schema</a> we&#8217;re going to consider designing a system whereby we can pick up old builds of interest and push them through the current testing harness.  That way we save ourselves headaches and get data that is actually comparable to current results.</p>
<p>Once all the dependent bugs filed against graph server migration have been fixed we&#8217;ll roll all this out.  I&#8217;m hoping that that will be in the next week or two.  Right now I&#8217;m more interested if anyone has any strong feelings about what builds are &#8216;interesting&#8217; enough that we should come up with the means to re-test them with our current test harness.  Any favorites out there?  Top ten?</p>
]]></content:encoded>
			<wfw:commentRss>http://alice.nodelman.net/blog/post/towards-switching-to-new-graph-server-full-time/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
