<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>76976</bug_id>
          
          <creation_ts>2012-01-24 19:16:54 -0800</creation_ts>
          <short_desc>Only store the SVN revision in the summarized results if we&apos;re on a builder</short_desc>
          <delta_ts>2012-01-26 13:26:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>541960</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-24 19:16:54 -0800</bug_when>
    <thetext>Only store the SVN revision in the summarized results if we&apos;re on a builder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541961</commentid>
    <comment_count>1</comment_count>
      <attachid>123874</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-24 19:17:40 -0800</bug_when>
    <thetext>Created attachment 123874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541963</commentid>
    <comment_count>2</comment_count>
      <attachid>123874</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-24 19:23:23 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123874&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:413
&gt; +        return unexpected_results

Do lines 377-413 have anything to do with this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542195</commentid>
    <comment_count>3</comment_count>
      <attachid>123874</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 04:42:34 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

Attachment 123874 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11159496

New failing tests:
media/audio-garbage-collect.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542318</commentid>
    <comment_count>4</comment_count>
      <attachid>123874</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-25 08:55:35 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123874&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:237
&gt; -        results[&apos;revision&apos;] = port_obj.host.scm().head_svn_revision()
&gt; +        # We only use the svn revision if we&apos;re uploading the results to a server.
&gt; +        # Don&apos;t do this by default since it takes &gt;100ms.
&gt; +        # Use builder_name as a check that we&apos;re on a builder and so will upload the
&gt; +        # results. This is only used for making trac links point to the test at
&gt; +        # the revision the test was run at.
&gt; +        if port_obj.get_option(&quot;builder_name&quot;):
&gt; +            results[&apos;revision&apos;] = port_obj.host.scm().head_svn_revision()

It would be nice if we had some higher-level logic that decided when to use Trac links or not. Then this code could ask that logic rather than having to have special knowledge of what other parts of the code do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542472</commentid>
    <comment_count>5</comment_count>
      <attachid>123874</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-25 11:17:02 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123874&amp;action=review

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:237
&gt;&gt; +        if port_obj.get_option(&quot;builder_name&quot;):
&gt;&gt; +            results[&apos;revision&apos;] = port_obj.host.scm().head_svn_revision()
&gt; 
&gt; It would be nice if we had some higher-level logic that decided when to use Trac links or not. Then this code could ask that logic rather than having to have special knowledge of what other parts of the code do.

Yeah, I&apos;m torn. We already have --use-remote-links-to-tests that is currently a noop and all the non-Chromium bots pass. I was hoping to get rid of that though. We have too many command-line flags as it is.

Or was your point that this code should be cleaner? e.g. have something like and is_on_builder method on the port object that happens to be implemented as port_obj.get_option(&quot;builder_name&quot;)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542536</commentid>
    <comment_count>6</comment_count>
      <attachid>123874</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-25 12:42:03 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123874&amp;action=review

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:413
&gt;&gt; +        return unexpected_results
&gt; 
&gt; Do lines 377-413 have anything to do with this patch?

They are needed to test summarize_results. Currently the only tests for summarize_results are in printing_unittest. I mostly just copy-pasted from there to here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542540</commentid>
    <comment_count>7</comment_count>
      <attachid>123874</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-25 12:47:17 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123874&amp;action=review

&gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:237
&gt;&gt;&gt; +            results[&apos;revision&apos;] = port_obj.host.scm().head_svn_revision()
&gt;&gt; 
&gt;&gt; It would be nice if we had some higher-level logic that decided when to use Trac links or not. Then this code could ask that logic rather than having to have special knowledge of what other parts of the code do.
&gt; 
&gt; Yeah, I&apos;m torn. We already have --use-remote-links-to-tests that is currently a noop and all the non-Chromium bots pass. I was hoping to get rid of that though. We have too many command-line flags as it is.
&gt; 
&gt; Or was your point that this code should be cleaner? e.g. have something like and is_on_builder method on the port object that happens to be implemented as port_obj.get_option(&quot;builder_name&quot;)?

I meant that we should have some way of directly asking &quot;will we be using Trac links to tests?&quot;. That&apos;s a lot less confusing than having this code know &quot;having a builder_name means we&apos;re using Trac links to tests&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542556</commentid>
    <comment_count>8</comment_count>
      <attachid>123874</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-25 13:05:32 -0800</bug_when>
    <thetext>Comment on attachment 123874
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123874&amp;action=review

&gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:413
&gt;&gt;&gt; +        return unexpected_results
&gt;&gt; 
&gt;&gt; Do lines 377-413 have anything to do with this patch?
&gt; 
&gt; They are needed to test summarize_results. Currently the only tests for summarize_results are in printing_unittest. I mostly just copy-pasted from there to here.

Oh, duh, right :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542581</commentid>
    <comment_count>9</comment_count>
      <attachid>124000</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-25 13:33:39 -0800</bug_when>
    <thetext>Created attachment 124000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542582</commentid>
    <comment_count>10</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-25 13:33:53 -0800</bug_when>
    <thetext>Did you mean something like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542612</commentid>
    <comment_count>11</comment_count>
      <attachid>124000</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-25 14:12:54 -0800</bug_when>
    <thetext>Comment on attachment 124000
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124000&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:234
&gt; +        # We only use the svn revision for using trac links in the results.html file,
&gt; +        # which we only need on the buildbots. Don&apos;t do this by default since it takes &gt;100ms.
&gt; +        if port_obj.use_trac_links_in_results_html():
&gt; +            results[&apos;revision&apos;] = port_obj.host.scm().head_svn_revision()

So much nicer! Though the &quot;which we only need on the buildbots&quot; part of the comment would probably be more appropriate inside the use_trac_links_in_results_html() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542627</commentid>
    <comment_count>12</comment_count>
      <attachid>124000</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-25 14:25:41 -0800</bug_when>
    <thetext>Comment on attachment 124000
Patch

I don&apos;t think this method belongs on the Port object - different ports aren&apos;t likely to override it. Can you just put it on the Manager?

I also wonder if it would be better to have a more generic concept like &quot;running_on_a_bot()&quot; rather than the specific concept like &quot;use_trac_links_in_results_html&quot;, but I&apos;m not sure what the best name would be here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542628</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-25 14:26:04 -0800</bug_when>
    <thetext>Oh, I meant to say that it looks fine otherwise, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542783</commentid>
    <comment_count>14</comment_count>
      <attachid>124036</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-25 17:01:28 -0800</bug_when>
    <thetext>Created attachment 124036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542787</commentid>
    <comment_count>15</comment_count>
      <attachid>124036</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-25 17:05:31 -0800</bug_when>
    <thetext>Comment on attachment 124036
Patch

close enough. summarize_results() should probably be a method on the Manager as well, but that function is way too big and has other problems anyway, so this is fine for now. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543427</commentid>
    <comment_count>16</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-26 13:26:18 -0800</bug_when>
    <thetext>Committed r106035: &lt;http://trac.webkit.org/changeset/106035&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123874</attachid>
            <date>2012-01-24 19:17:40 -0800</date>
            <delta_ts>2012-01-25 13:33:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76976-20120124191739.patch</filename>
            <type>text/plain</type>
            <size>7144</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NzcwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmM5ZWQ4Y2E3NzQ3MGFmYWMxMjFmNDE1MzY5ZjNhZmVi
ODMyYWU3YS4uMThhNjNhN2U5ZGNlZDQ0ZDlkZWI2ODNjNWRkYTRkZjFiN2E1MTU2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTAxLTI0ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgT25seSBzdG9yZSB0aGUgU1ZOIHJldmlzaW9uIGluIHRoZSBzdW1tYXJpemVkIHJlc3VsdHMg
aWYgd2UncmUgb24gYSBidWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03Njk3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgc2hhdmVzIGFub3RoZXIgfjEzMG1zIG9mZiB0aGUgc2luZ2xlIHRl
c3QgcnVuLXdlYmtpdC10ZXN0cyBydW50aW1lLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKHN1bW1hcml6
ZV9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUmVzdWx0U3VtbWFyeVRlc3Qu
Z2V0X3Jlc3VsdCk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdCk6CisgICAgICAgIChSZXN1
bHRTdW1tYXJ5VGVzdC5nZXRfcmVzdWx0X3N1bW1hcnkpOgorICAgICAgICAoUmVzdWx0U3VtbWFy
eVRlc3QuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVz
dC50ZXN0X25vX3N2bl9yZXZpc2lvbik6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdC50ZXN0
X3N2bl9yZXZpc2lvbik6CisKIDIwMTItMDEtMjAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBjaGVjay13ZWJraXQtc3R5bGUgb2YgdGhlIGNocm9taXVtIHRlc3Rf
ZXhwZWN0YXRpb25zLnR4dCBmaWxlIHRha2VzIHRvbyBsb25nCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpp
bmRleCBjZjM1ZjI0Y2NlMDNhNmJiODUwMmIxZGFlMTEyNzczMzdkMWE5N2Q2Li45ZWZlYTE5ZmQ4
YjdiNmQ4ZDk3YmFkMTA3MThkMDA3ZmJiNTAzYjBlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAg
LTIyOCw3ICsyMjgsMTMgQEAgZGVmIHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRfb2JqLCBleHBlY3Rh
dGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCB0ZXMKICAgICByZXN1bHRzWydo
YXNfd2RpZmYnXSA9IHBvcnRfb2JqLndkaWZmX2F2YWlsYWJsZSgpCiAgICAgcmVzdWx0c1snaGFz
X3ByZXR0eV9wYXRjaCddID0gcG9ydF9vYmoucHJldHR5X3BhdGNoX2F2YWlsYWJsZSgpCiAgICAg
dHJ5OgotICAgICAgICByZXN1bHRzWydyZXZpc2lvbiddID0gcG9ydF9vYmouaG9zdC5zY20oKS5o
ZWFkX3N2bl9yZXZpc2lvbigpCisgICAgICAgICMgV2Ugb25seSB1c2UgdGhlIHN2biByZXZpc2lv
biBpZiB3ZSdyZSB1cGxvYWRpbmcgdGhlIHJlc3VsdHMgdG8gYSBzZXJ2ZXIuCisgICAgICAgICMg
RG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IHNpbmNlIGl0IHRha2VzID4xMDBtcy4KKyAgICAgICAg
IyBVc2UgYnVpbGRlcl9uYW1lIGFzIGEgY2hlY2sgdGhhdCB3ZSdyZSBvbiBhIGJ1aWxkZXIgYW5k
IHNvIHdpbGwgdXBsb2FkIHRoZQorICAgICAgICAjIHJlc3VsdHMuIFRoaXMgaXMgb25seSB1c2Vk
IGZvciBtYWtpbmcgdHJhYyBsaW5rcyBwb2ludCB0byB0aGUgdGVzdCBhdAorICAgICAgICAjIHRo
ZSByZXZpc2lvbiB0aGUgdGVzdCB3YXMgcnVuIGF0LgorICAgICAgICBpZiBwb3J0X29iai5nZXRf
b3B0aW9uKCJidWlsZGVyX25hbWUiKToKKyAgICAgICAgICAgIHJlc3VsdHNbJ3JldmlzaW9uJ10g
PSBwb3J0X29iai5ob3N0LnNjbSgpLmhlYWRfc3ZuX3JldmlzaW9uKCkKICAgICBleGNlcHQgRXhj
ZXB0aW9uLCBlOgogICAgICAgICBfbG9nLndhcm4oIkZhaWxlZCB0byBkZXRlcm1pbmUgc3ZuIHJl
dmlzaW9uIGZvciBjaGVja291dCAoY3dkOiAlcywgd2Via2l0X2Jhc2U6ICVzKSwgbGVhdmluZyAn
cmV2aXNpb24nIGtleSBibGFuayBpbiBmdWxsX3Jlc3VsdHMuanNvbi5cbiVzIiAlIChwb3J0X29i
ai5fZmlsZXN5c3RlbS5nZXRjd2QoKSwgcG9ydF9vYmoucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCks
IGUpKQogICAgICAgICAjIEhhbmRsZSBjYXNlcyB3aGVyZSB3ZSdyZSBydW5uaW5nIG91dHNpZGUg
b2YgdmVyc2lvbiBjb250cm9sLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkK
aW5kZXggZTI5MmQyOWE0MmJlNGQ0MDVjZjdlNTk0MmE5NzcyMTdhZWQxYTcyNC4uNWU5NjVjYTRh
YjRiNDZmMWYzOWVmOGNlZTQ3NDg3MDk0NmI1NmMwNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5h
Z2VyX3VuaXR0ZXN0LnB5CkBAIC00Miw4ICs0MiwxMiBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5wb3J0IGltcG9ydCBwb3J0X3Rlc3RjYXNlCiAKIGZyb20gd2Via2l0cHkgaW1wb3J0IGxh
eW91dF90ZXN0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMgaW1wb3J0IHJ1bl93ZWJraXRf
dGVzdHMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzIGltcG9ydCBtYW5h
Z2VyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5tYW5hZ2VyIGltcG9y
dCBpbnRlcnByZXRfdGVzdF9mYWlsdXJlcywgIE1hbmFnZXIsIG5hdHVyYWxfc29ydF9rZXksIHRl
c3Rfa2V5LCBUZXN0UnVuSW50ZXJydXB0ZWRFeGNlcHRpb24sIFRlc3RTaGFyZAorZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCByZXN1bHRfc3VtbWFyeQorZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCitmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnJlc3VsdF9zdW1tYXJ5IGltcG9ydCBSZXN1bHRTdW1t
YXJ5CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMg
aW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVs
cy50ZXN0X3Jlc3VsdHMgaW1wb3J0IFRlc3RSZXN1bHQKQEAgLTM3MCw2ICszNzQsNTYgQEAgY2xh
c3MgUmVzdWx0U3VtbWFyeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFz
c2VydFRydWUodGVzdF9kaWN0Wydpc19taXNtYXRjaF9yZWZ0ZXN0J10pCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodGVzdF9kaWN0WydyZWZfZmlsZSddLCAnZm9vL2NvbW1vbi5odG1sJykKIAor
ICAgIGRlZiBnZXRfcmVzdWx0KHNlbGYsIHRlc3RfbmFtZSwgcmVzdWx0X3R5cGU9dGVzdF9leHBl
Y3RhdGlvbnMuUEFTUywgcnVuX3RpbWU9MCk6CisgICAgICAgIGZhaWx1cmVzID0gW10KKyAgICAg
ICAgaWYgcmVzdWx0X3R5cGUgPT0gdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVDoKKyAgICAgICAg
ICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKV0KKyAgICAgICAg
ZWxpZiByZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSDoKKyAgICAgICAgICAg
IGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUNyYXNoKCldCisgICAgICAgIHJldHVy
biB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0X25hbWUsIGZhaWx1cmVzPWZhaWx1cmVzLCB0
ZXN0X3J1bl90aW1lPXJ1bl90aW1lKQorCisgICAgZGVmIGdldF9yZXN1bHRfc3VtbWFyeShzZWxm
LCBwb3J0LCB0ZXN0X25hbWVzLCBleHBlY3RhdGlvbnNfc3RyKToKKyAgICAgICAgZXhwZWN0YXRp
b25zID0gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyhwb3J0LCB0ZXN0X25hbWVz
LCBleHBlY3RhdGlvbnNfc3RyLCBwb3J0LnRlc3RfY29uZmlndXJhdGlvbigpLCBpc19saW50X21v
ZGU9RmFsc2UpCisgICAgICAgIHJldHVybiB0ZXN0X25hbWVzLCByZXN1bHRfc3VtbWFyeS5SZXN1
bHRTdW1tYXJ5KGV4cGVjdGF0aW9ucywgdGVzdF9uYW1lcyksIGV4cGVjdGF0aW9ucworCisgICAg
IyBGSVhNRTogVXNlIHRoaXMgdG8gdGVzdCBtb3JlIG9mIHN1bW1hcml6ZV9yZXN1bHRzLiBUaGlz
IHdhcyBtb3ZlZCBmcm9tIHByaW50aW5nX3VuaXR0ZXN0LnB5LgorICAgIGRlZiBnZXRfdW5leHBl
Y3RlZF9yZXN1bHRzKHNlbGYsIHBvcnQsIGV4cGVjdGVkLCBwYXNzaW5nLCBmbGFreSk6CisgICAg
ICAgIHRlc3RzID0gWydwYXNzZXMvdGV4dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVv
dXQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJ10KKyAgICAgICAgZXhwZWN0
YXRpb25zID0gJycKKyAgICAgICAgcGF0aHMsIHJzLCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3Vt
bWFyeShwb3J0LCB0ZXN0cywgZXhwZWN0YXRpb25zKQorICAgICAgICBpZiBleHBlY3RlZDoKKyAg
ICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0
X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0
aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JB
U0gpLCBleHBlY3RlZCkKKyAgICAgICAgZWxpZiBwYXNzaW5nOgorICAgICAgICAgICAgcnMuYWRk
KHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBleHBlY3RlZCkKKyAgICAgICAg
ICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRt
bCcpLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnKSwgZXhwZWN0ZWQpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9l
eHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuQ1JBU0gpLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1
bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1F
T1VUKSwgZXhwZWN0ZWQpCisgICAgICAgIHJldHJ5ID0gcnMKKyAgICAgICAgaWYgZmxha3k6Cisg
ICAgICAgICAgICBwYXRocywgcmV0cnksIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHBv
cnQsIHRlc3RzLCBleHBlY3RhdGlvbnMpCisgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIFRydWUpCisgICAgICAgICAgICByZXRyeS5hZGQo
c2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSkK
KyAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVk
L2NyYXNoLmh0bWwnKSwgVHJ1ZSkKKyAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gbWFuYWdl
ci5zdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9
LCBvbmx5X3VuZXhwZWN0ZWQ9VHJ1ZSwgaW50ZXJydXB0ZWQ9RmFsc2UpCisgICAgICAgIHJldHVy
biB1bmV4cGVjdGVkX3Jlc3VsdHMKKworICAgIGRlZiB0ZXN0X25vX3N2bl9yZXZpc2lvbihzZWxm
KToKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKKyAgICAgICAgcG9ydCA9IGhvc3QucG9ydF9m
YWN0b3J5LmdldCgndGVzdCcpCisgICAgICAgIHJlc3VsdHMgPSBzZWxmLmdldF91bmV4cGVjdGVk
X3Jlc3VsdHMocG9ydCwgZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNl
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3JldmlzaW9uJyBub3QgaW4gcmVzdWx0cykKKwor
ICAgIGRlZiB0ZXN0X3N2bl9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0
KCkKKyAgICAgICAgcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgndGVzdCcpCisgICAgICAg
IHBvcnQuX29wdGlvbnMuYnVpbGRlcl9uYW1lID0gJ2R1bW15IGJ1aWxkZXInCisgICAgICAgIHJl
c3VsdHMgPSBzZWxmLmdldF91bmV4cGVjdGVkX3Jlc3VsdHMocG9ydCwgZXhwZWN0ZWQ9RmFsc2Us
IHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Jl
dmlzaW9uJyBpbiByZXN1bHRzKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHBv
cnRfdGVzdGNhc2UubWFpbigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124000</attachid>
            <date>2012-01-25 13:33:39 -0800</date>
            <delta_ts>2012-01-25 17:01:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76976-20120125133338.patch</filename>
            <type>text/plain</type>
            <size>7888</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTIxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmE1MTFlNzMzMTI0NDA1NTBhYjYyNjQwMDMyZDk0MjJk
ZDczNWEyOS4uNTgyMmQ3MWJlZDExZTg0YzA0ZWJiOTZmN2I2OWRmZDdjOGMzMTZhMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTAxLTI1ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgT25seSBzdG9yZSB0aGUgU1ZOIHJldmlzaW9uIGluIHRoZSBzdW1tYXJpemVkIHJlc3VsdHMg
aWYgd2UncmUgb24gYSBidWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03Njk3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgc2hhdmVzIGFub3RoZXIgfjEzMG1zIG9mZiB0aGUgc2luZ2xlIHRl
c3QgcnVuLXdlYmtpdC10ZXN0cyBydW50aW1lLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKHN1bW1hcml6
ZV9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUmVzdWx0U3VtbWFyeVRlc3Qu
Z2V0X3Jlc3VsdCk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdCk6CisgICAgICAgIChSZXN1
bHRTdW1tYXJ5VGVzdC5nZXRfcmVzdWx0X3N1bW1hcnkpOgorICAgICAgICAoUmVzdWx0U3VtbWFy
eVRlc3QuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVz
dC50ZXN0X25vX3N2bl9yZXZpc2lvbik6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdC50ZXN0
X3N2bl9yZXZpc2lvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC51c2VfdHJhY19saW5rc19pbl9yZXN1bHRzX2h0
bWwpOgorCiAyMDEyLTAxLTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV0syXSBOYXZpZ2F0aW9uIGV2ZW50cyBub3QgdHJpZ2dlcmVkIGJ5IGEg
bW91c2UgZXZlbnQgY2xhaW0gdG8gYmUgdHJpZ2dlcmVkIGJ5IHRoZSBsZWZ0IG1vdXNlIGJ1dHRv
biBkdXJpbmcgcG9saWN5IGRlY2lzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggY2YzNWYy
NGNjZTAzYTZiYjg1MDJiMWRhZTExMjc3MzM3ZDFhOTdkNi4uYjRjZWMxZDc3ZTQ2NDFmZDU2OGFi
ZDA0ZmRjMWIyZmFjZGU2MWI3NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC0yMjgsNyArMjI4
LDEwIEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhwZWN0YXRpb25zLCByZXN1
bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVzCiAgICAgcmVzdWx0c1snaGFzX3dkaWZmJ10g
PSBwb3J0X29iai53ZGlmZl9hdmFpbGFibGUoKQogICAgIHJlc3VsdHNbJ2hhc19wcmV0dHlfcGF0
Y2gnXSA9IHBvcnRfb2JqLnByZXR0eV9wYXRjaF9hdmFpbGFibGUoKQogICAgIHRyeToKLSAgICAg
ICAgcmVzdWx0c1sncmV2aXNpb24nXSA9IHBvcnRfb2JqLmhvc3Quc2NtKCkuaGVhZF9zdm5fcmV2
aXNpb24oKQorICAgICAgICAjIFdlIG9ubHkgdXNlIHRoZSBzdm4gcmV2aXNpb24gZm9yIHVzaW5n
IHRyYWMgbGlua3MgaW4gdGhlIHJlc3VsdHMuaHRtbCBmaWxlLAorICAgICAgICAjIHdoaWNoIHdl
IG9ubHkgbmVlZCBvbiB0aGUgYnVpbGRib3RzLiBEb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgc2lu
Y2UgaXQgdGFrZXMgPjEwMG1zLgorICAgICAgICBpZiBwb3J0X29iai51c2VfdHJhY19saW5rc19p
bl9yZXN1bHRzX2h0bWwoKToKKyAgICAgICAgICAgIHJlc3VsdHNbJ3JldmlzaW9uJ10gPSBwb3J0
X29iai5ob3N0LnNjbSgpLmhlYWRfc3ZuX3JldmlzaW9uKCkKICAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgogICAgICAgICBfbG9nLndhcm4oIkZhaWxlZCB0byBkZXRlcm1pbmUgc3ZuIHJldmlzaW9u
IGZvciBjaGVja291dCAoY3dkOiAlcywgd2Via2l0X2Jhc2U6ICVzKSwgbGVhdmluZyAncmV2aXNp
b24nIGtleSBibGFuayBpbiBmdWxsX3Jlc3VsdHMuanNvbi5cbiVzIiAlIChwb3J0X29iai5fZmls
ZXN5c3RlbS5nZXRjd2QoKSwgcG9ydF9vYmoucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCksIGUpKQog
ICAgICAgICAjIEhhbmRsZSBjYXNlcyB3aGVyZSB3ZSdyZSBydW5uaW5nIG91dHNpZGUgb2YgdmVy
c2lvbiBjb250cm9sLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKaW5kZXgg
ZTI5MmQyOWE0MmJlNGQ0MDVjZjdlNTk0MmE5NzcyMTdhZWQxYTcyNC4uNWU5NjVjYTRhYjRiNDZm
MWYzOWVmOGNlZTQ3NDg3MDk0NmI1NmMwNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3Vu
aXR0ZXN0LnB5CkBAIC00Miw4ICs0MiwxMiBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5w
b3J0IGltcG9ydCBwb3J0X3Rlc3RjYXNlCiAKIGZyb20gd2Via2l0cHkgaW1wb3J0IGxheW91dF90
ZXN0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMgaW1wb3J0IHJ1bl93ZWJraXRfdGVzdHMK
K2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzIGltcG9ydCBtYW5hZ2VyCiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5tYW5hZ2VyIGltcG9ydCBpbnRl
cnByZXRfdGVzdF9mYWlsdXJlcywgIE1hbmFnZXIsIG5hdHVyYWxfc29ydF9rZXksIHRlc3Rfa2V5
LCBUZXN0UnVuSW50ZXJydXB0ZWRFeGNlcHRpb24sIFRlc3RTaGFyZAorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCByZXN1bHRfc3VtbWFyeQorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCitmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubW9kZWxzLnJlc3VsdF9zdW1tYXJ5IGltcG9ydCBSZXN1bHRTdW1tYXJ5CiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0
IFRlc3RFeHBlY3RhdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0
X3Jlc3VsdHMgaW1wb3J0IFRlc3RSZXN1bHQKQEAgLTM3MCw2ICszNzQsNTYgQEAgY2xhc3MgUmVz
dWx0U3VtbWFyeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRy
dWUodGVzdF9kaWN0Wydpc19taXNtYXRjaF9yZWZ0ZXN0J10pCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGVzdF9kaWN0WydyZWZfZmlsZSddLCAnZm9vL2NvbW1vbi5odG1sJykKIAorICAgIGRl
ZiBnZXRfcmVzdWx0KHNlbGYsIHRlc3RfbmFtZSwgcmVzdWx0X3R5cGU9dGVzdF9leHBlY3RhdGlv
bnMuUEFTUywgcnVuX3RpbWU9MCk6CisgICAgICAgIGZhaWx1cmVzID0gW10KKyAgICAgICAgaWYg
cmVzdWx0X3R5cGUgPT0gdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVDoKKyAgICAgICAgICAgIGZh
aWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKV0KKyAgICAgICAgZWxpZiBy
ZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSDoKKyAgICAgICAgICAgIGZhaWx1
cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUNyYXNoKCldCisgICAgICAgIHJldHVybiB0ZXN0
X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0X25hbWUsIGZhaWx1cmVzPWZhaWx1cmVzLCB0ZXN0X3J1
bl90aW1lPXJ1bl90aW1lKQorCisgICAgZGVmIGdldF9yZXN1bHRfc3VtbWFyeShzZWxmLCBwb3J0
LCB0ZXN0X25hbWVzLCBleHBlY3RhdGlvbnNfc3RyKToKKyAgICAgICAgZXhwZWN0YXRpb25zID0g
dGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyhwb3J0LCB0ZXN0X25hbWVzLCBleHBl
Y3RhdGlvbnNfc3RyLCBwb3J0LnRlc3RfY29uZmlndXJhdGlvbigpLCBpc19saW50X21vZGU9RmFs
c2UpCisgICAgICAgIHJldHVybiB0ZXN0X25hbWVzLCByZXN1bHRfc3VtbWFyeS5SZXN1bHRTdW1t
YXJ5KGV4cGVjdGF0aW9ucywgdGVzdF9uYW1lcyksIGV4cGVjdGF0aW9ucworCisgICAgIyBGSVhN
RTogVXNlIHRoaXMgdG8gdGVzdCBtb3JlIG9mIHN1bW1hcml6ZV9yZXN1bHRzLiBUaGlzIHdhcyBt
b3ZlZCBmcm9tIHByaW50aW5nX3VuaXR0ZXN0LnB5LgorICAgIGRlZiBnZXRfdW5leHBlY3RlZF9y
ZXN1bHRzKHNlbGYsIHBvcnQsIGV4cGVjdGVkLCBwYXNzaW5nLCBmbGFreSk6CisgICAgICAgIHRl
c3RzID0gWydwYXNzZXMvdGV4dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRt
bCcsICdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJ10KKyAgICAgICAgZXhwZWN0YXRpb25z
ID0gJycKKyAgICAgICAgcGF0aHMsIHJzLCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3VtbWFyeShw
b3J0LCB0ZXN0cywgZXhwZWN0YXRpb25zKQorICAgICAgICBpZiBleHBlY3RlZDoKKyAgICAgICAg
ICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5U
SU1FT1VUKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBl
eHBlY3RlZCkKKyAgICAgICAgZWxpZiBwYXNzaW5nOgorICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJz
LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBl
eHBlY3RlZCkKKyAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwnKSwgZXhwZWN0ZWQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMu
Q1JBU0gpLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2Zh
aWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwg
ZXhwZWN0ZWQpCisgICAgICAgIHJldHJ5ID0gcnMKKyAgICAgICAgaWYgZmxha3k6CisgICAgICAg
ICAgICBwYXRocywgcmV0cnksIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHBvcnQsIHRl
c3RzLCBleHBlY3RhdGlvbnMpCisgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdwYXNzZXMvdGV4dC5odG1sJyksIFRydWUpCisgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSkKKyAgICAg
ICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNo
Lmh0bWwnKSwgVHJ1ZSkKKyAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gbWFuYWdlci5zdW1t
YXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9LCBvbmx5
X3VuZXhwZWN0ZWQ9VHJ1ZSwgaW50ZXJydXB0ZWQ9RmFsc2UpCisgICAgICAgIHJldHVybiB1bmV4
cGVjdGVkX3Jlc3VsdHMKKworICAgIGRlZiB0ZXN0X25vX3N2bl9yZXZpc2lvbihzZWxmKToKKyAg
ICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKKyAgICAgICAgcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5
LmdldCgndGVzdCcpCisgICAgICAgIHJlc3VsdHMgPSBzZWxmLmdldF91bmV4cGVjdGVkX3Jlc3Vs
dHMocG9ydCwgZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZhbHNlKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoJ3JldmlzaW9uJyBub3QgaW4gcmVzdWx0cykKKworICAgIGRl
ZiB0ZXN0X3N2bl9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKKyAg
ICAgICAgcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgndGVzdCcpCisgICAgICAgIHBvcnQu
X29wdGlvbnMuYnVpbGRlcl9uYW1lID0gJ2R1bW15IGJ1aWxkZXInCisgICAgICAgIHJlc3VsdHMg
PSBzZWxmLmdldF91bmV4cGVjdGVkX3Jlc3VsdHMocG9ydCwgZXhwZWN0ZWQ9RmFsc2UsIHBhc3Np
bmc9RmFsc2UsIGZsYWt5PUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3JldmlzaW9u
JyBpbiByZXN1bHRzKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHBvcnRfdGVz
dGNhc2UubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkKaW5kZXggZWE4NmVjNmY2MTNiMjkzNmYyNTFkOTdmMDZmMzE2Y2I5N2VlOTk2
NS4uYmZiNDg1ODE5YzA3OWEyNDM1NmQzYWE3MWEwNWRmNzdkNjg1MzdhNSAxMDA3NTUKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtNjY2LDYg
KzY2Niw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuX29wdGlvbnMsIG5hbWUpCiAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlCiAKKyAg
ICBkZWYgdXNlX3RyYWNfbGlua3NfaW5fcmVzdWx0c19odG1sKHNlbGYpOgorICAgICAgICByZXR1
cm4gaGFzYXR0cihzZWxmLl9vcHRpb25zLCAiYnVpbGRlcl9uYW1lIikKKwogICAgIGRlZiBzZXRf
b3B0aW9uX2RlZmF1bHQoc2VsZiwgbmFtZSwgZGVmYXVsdF92YWx1ZSk6CiAgICAgICAgICMgRklY
TUU6IENhbGxlcnMgY291bGQgYWxzbyB1c2Ugb3B0cGFyc2VfcGFyc2VyLlZhbHVlcy5lbnN1cmVf
dmFsdWUsCiAgICAgICAgICMgc2luY2UgdGhpcyBzaG91bGQgYWx3YXlzIGJlIGEgb3B0cGFyc2Vf
cGFyc2VyLlZhbHVlcyBvYmplY3QuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124036</attachid>
            <date>2012-01-25 17:01:28 -0800</date>
            <delta_ts>2012-01-25 17:05:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76976-20120125170127.patch</filename>
            <type>text/plain</type>
            <size>7604</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjEzN2M5MTZlYzdlNjY5M2M0NWMyODk1YmE0MDM0OWI5
MDk3ODU4Mi4uNTUxMTliZTFiOTY0ZmRhM2JjYTYwNDgyY2NhNWRjNjJiMGE0NGVmYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTAxLTI1ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgT25seSBzdG9yZSB0aGUgU1ZOIHJldmlzaW9uIGluIHRoZSBzdW1tYXJpemVkIHJlc3VsdHMg
aWYgd2UncmUgb24gYSBidWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03Njk3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgc2hhdmVzIGFub3RoZXIgfjEzMG1zIG9mZiB0aGUgc2luZ2xlIHRl
c3QgcnVuLXdlYmtpdC10ZXN0cyBydW50aW1lLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKHN1bW1hcml6
ZV9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUmVzdWx0U3VtbWFyeVRlc3Qu
Z2V0X3Jlc3VsdCk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdCk6CisgICAgICAgIChSZXN1
bHRTdW1tYXJ5VGVzdC5nZXRfcmVzdWx0X3N1bW1hcnkpOgorICAgICAgICAoUmVzdWx0U3VtbWFy
eVRlc3QuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVz
dC50ZXN0X25vX3N2bl9yZXZpc2lvbik6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdC50ZXN0
X3N2bl9yZXZpc2lvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC51c2VfdHJhY19saW5rc19pbl9yZXN1bHRzX2h0
bWwpOgorCiAyMDEyLTAxLTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIG5yd3Q6IHNob3VsZCBiZSBhYmxlIHRvIHJ1biAtLXBsYXRmb3JtIHRlc3QgaW50
ZXJhY3RpdmVseQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggODA5MGUyYmU0NTEyNWZlN2M0YzJj
YWUxYTU2NDg5YjgzZTk3NmU3Zi4uYjFkZjc4MGFjOTg2MzY0MzIwY2RlZDQ0NjhiNjMyZTRiZGRl
ZmU0MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC0xMDIsNiArMTAyLDExIEBAIGRlZiBpbnRl
cnByZXRfdGVzdF9mYWlsdXJlcyhwb3J0LCB0ZXN0X25hbWUsIGZhaWx1cmVzKToKICAgICByZXR1
cm4gdGVzdF9kaWN0CiAKIAorZGVmIHVzZV90cmFjX2xpbmtzX2luX3Jlc3VsdHNfaHRtbChwb3J0
X29iaik6CisgICAgIyBXZSBvbmx5IHVzZSB0cmFjIGxpbmtzIG9uIHRoZSBidWlsZGJvdHMuCisg
ICAgIyBVc2UgZXhpc3RlbmNlIG9mIGJ1aWxkZXJfbmFtZSBhcyBhIHByb3h5IGZvciBrbm93aW5n
IHdlJ3JlIG9uIGEgYm90LgorICAgIHJldHVybiBwb3J0X29iai5nZXRfb3B0aW9uKCJidWlsZGVy
X25hbWUiKQorCiAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvbiB0aGUgTWFuYWdlciBjbGFzcyAo
c2luY2UgdGhhdCdzIHRoZSBvbmx5IGNhbGxlcikKICMgb3Igc3BsaXQgb2ZmIGZyb20gTWFuYWdl
ciBvbnRvIGFub3RoZXIgaGVscGVyIGNsYXNzLCBidXQgc2hvdWxkIG5vdCBiZSBhIGZyZWUgZnVu
Y3Rpb24uCiAjIE1vc3QgbGlrZWx5IHRoaXMgc2hvdWxkIGJlIG1hZGUgaW50byBpdHMgb3duIGNs
YXNzLCBhbmQgdGhpcyBzdXBlci1sb25nIGZ1bmN0aW9uCkBAIC0yMjgsNyArMjMzLDEwIEBAIGRl
ZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFy
eSwgcmV0cnlfc3VtbWFyeSwgdGVzCiAgICAgcmVzdWx0c1snaGFzX3dkaWZmJ10gPSBwb3J0X29i
ai53ZGlmZl9hdmFpbGFibGUoKQogICAgIHJlc3VsdHNbJ2hhc19wcmV0dHlfcGF0Y2gnXSA9IHBv
cnRfb2JqLnByZXR0eV9wYXRjaF9hdmFpbGFibGUoKQogICAgIHRyeToKLSAgICAgICAgcmVzdWx0
c1sncmV2aXNpb24nXSA9IHBvcnRfb2JqLmhvc3Quc2NtKCkuaGVhZF9zdm5fcmV2aXNpb24oKQor
ICAgICAgICAjIFdlIG9ubHkgdXNlIHRoZSBzdm4gcmV2aXNpb24gZm9yIHVzaW5nIHRyYWMgbGlu
a3MgaW4gdGhlIHJlc3VsdHMuaHRtbCBmaWxlLAorICAgICAgICAjIERvbid0IGRvIHRoaXMgYnkg
ZGVmYXVsdCBzaW5jZSBpdCB0YWtlcyA+MTAwbXMuCisgICAgICAgIGlmIHVzZV90cmFjX2xpbmtz
X2luX3Jlc3VsdHNfaHRtbChwb3J0X29iaik6CisgICAgICAgICAgICByZXN1bHRzWydyZXZpc2lv
biddID0gcG9ydF9vYmouaG9zdC5zY20oKS5oZWFkX3N2bl9yZXZpc2lvbigpCiAgICAgZXhjZXB0
IEV4Y2VwdGlvbiwgZToKICAgICAgICAgX2xvZy53YXJuKCJGYWlsZWQgdG8gZGV0ZXJtaW5lIHN2
biByZXZpc2lvbiBmb3IgY2hlY2tvdXQgKGN3ZDogJXMsIHdlYmtpdF9iYXNlOiAlcyksIGxlYXZp
bmcgJ3JldmlzaW9uJyBrZXkgYmxhbmsgaW4gZnVsbF9yZXN1bHRzLmpzb24uXG4lcyIgJSAocG9y
dF9vYmouX2ZpbGVzeXN0ZW0uZ2V0Y3dkKCksIHBvcnRfb2JqLnBhdGhfZnJvbV93ZWJraXRfYmFz
ZSgpLCBlKSkKICAgICAgICAgIyBIYW5kbGUgY2FzZXMgd2hlcmUgd2UncmUgcnVubmluZyBvdXRz
aWRlIG9mIHZlcnNpb24gY29udHJvbC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0
LnB5CmluZGV4IGUyOTJkMjlhNDJiZTRkNDA1Y2Y3ZTU5NDJhOTc3MjE3YWVkMWE3MjQuLjVlOTY1
Y2E0YWI0YjQ2ZjFmMzllZjhjZWU0NzQ4NzA5NDZiNTZjMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bWFuYWdlcl91bml0dGVzdC5weQpAQCAtNDIsOCArNDIsMTIgQEAgZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQogCiBmcm9tIHdlYmtpdHB5IGltcG9y
dCBsYXlvdXRfdGVzdHMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBydW5fd2Vi
a2l0X3Rlc3RzCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycyBpbXBvcnQg
bWFuYWdlcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMubWFuYWdlciBp
bXBvcnQgaW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMsICBNYW5hZ2VyLCBuYXR1cmFsX3NvcnRfa2V5
LCB0ZXN0X2tleSwgVGVzdFJ1bkludGVycnVwdGVkRXhjZXB0aW9uLCBUZXN0U2hhcmQKK2Zyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgcmVzdWx0X3N1bW1hcnkKK2Zyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcworZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy5yZXN1bHRfc3VtbWFyeSBpbXBvcnQgUmVzdWx0
U3VtbWFyeQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfZXhwZWN0YXRp
b25zIGltcG9ydCBUZXN0RXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMudGVzdF9yZXN1bHRzIGltcG9ydCBUZXN0UmVzdWx0CkBAIC0zNzAsNiArMzc0LDU2IEBA
IGNsYXNzIFJlc3VsdFN1bW1hcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHRlc3RfZGljdFsnaXNfbWlzbWF0Y2hfcmVmdGVzdCddKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRlc3RfZGljdFsncmVmX2ZpbGUnXSwgJ2Zvby9jb21tb24uaHRtbCcp
CiAKKyAgICBkZWYgZ2V0X3Jlc3VsdChzZWxmLCB0ZXN0X25hbWUsIHJlc3VsdF90eXBlPXRlc3Rf
ZXhwZWN0YXRpb25zLlBBU1MsIHJ1bl90aW1lPTApOgorICAgICAgICBmYWlsdXJlcyA9IFtdCisg
ICAgICAgIGlmIHJlc3VsdF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQ6CisgICAg
ICAgICAgICBmYWlsdXJlcyA9IFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1lb3V0KCldCisgICAg
ICAgIGVsaWYgcmVzdWx0X3R5cGUgPT0gdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0g6CisgICAgICAg
ICAgICBmYWlsdXJlcyA9IFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVDcmFzaCgpXQorICAgICAgICBy
ZXR1cm4gdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQodGVzdF9uYW1lLCBmYWlsdXJlcz1mYWlsdXJl
cywgdGVzdF9ydW5fdGltZT1ydW5fdGltZSkKKworICAgIGRlZiBnZXRfcmVzdWx0X3N1bW1hcnko
c2VsZiwgcG9ydCwgdGVzdF9uYW1lcywgZXhwZWN0YXRpb25zX3N0cik6CisgICAgICAgIGV4cGVj
dGF0aW9ucyA9IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMocG9ydCwgdGVzdF9u
YW1lcywgZXhwZWN0YXRpb25zX3N0ciwgcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24oKSwgaXNfbGlu
dF9tb2RlPUZhbHNlKQorICAgICAgICByZXR1cm4gdGVzdF9uYW1lcywgcmVzdWx0X3N1bW1hcnku
UmVzdWx0U3VtbWFyeShleHBlY3RhdGlvbnMsIHRlc3RfbmFtZXMpLCBleHBlY3RhdGlvbnMKKwor
ICAgICMgRklYTUU6IFVzZSB0aGlzIHRvIHRlc3QgbW9yZSBvZiBzdW1tYXJpemVfcmVzdWx0cy4g
VGhpcyB3YXMgbW92ZWQgZnJvbSBwcmludGluZ191bml0dGVzdC5weS4KKyAgICBkZWYgZ2V0X3Vu
ZXhwZWN0ZWRfcmVzdWx0cyhzZWxmLCBwb3J0LCBleHBlY3RlZCwgcGFzc2luZywgZmxha3kpOgor
ICAgICAgICB0ZXN0cyA9IFsncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC90
aW1lb3V0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCddCisgICAgICAgIGV4
cGVjdGF0aW9ucyA9ICcnCisgICAgICAgIHBhdGhzLCBycywgZXhwID0gc2VsZi5nZXRfcmVzdWx0
X3N1bW1hcnkocG9ydCwgdGVzdHMsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgaWYgZXhwZWN0ZWQ6
CisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywg
dGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNl
bGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBl
Y3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0
X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25z
LkNSQVNIKSwgZXhwZWN0ZWQpCisgICAgICAgIGVsaWYgcGFzc2luZzoKKyAgICAgICAgICAgIHJz
LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQpCisgICAg
ICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0
Lmh0bWwnKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVkKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRl
c3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJzLmFkZChz
ZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsIHRlc3RfZXhw
ZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMu
VElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICByZXRyeSA9IHJzCisgICAgICAgIGlmIGZsYWt5
OgorICAgICAgICAgICAgcGF0aHMsIHJldHJ5LCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3VtbWFy
eShwb3J0LCB0ZXN0cywgZXhwZWN0YXRpb25zKQorICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlKQorICAgICAgICAgICAgcmV0cnku
YWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRy
dWUpCisgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBl
Y3RlZC9jcmFzaC5odG1sJyksIFRydWUpCisgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0cyA9IG1h
bmFnZXIuc3VtbWFyaXplX3Jlc3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3RfdGltaW5n
cz17fSwgb25seV91bmV4cGVjdGVkPVRydWUsIGludGVycnVwdGVkPUZhbHNlKQorICAgICAgICBy
ZXR1cm4gdW5leHBlY3RlZF9yZXN1bHRzCisKKyAgICBkZWYgdGVzdF9ub19zdm5fcmV2aXNpb24o
c2VsZik6CisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCisgICAgICAgIHBvcnQgPSBob3N0LnBv
cnRfZmFjdG9yeS5nZXQoJ3Rlc3QnKQorICAgICAgICByZXN1bHRzID0gc2VsZi5nZXRfdW5leHBl
Y3RlZF9yZXN1bHRzKHBvcnQsIGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1G
YWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdyZXZpc2lvbicgbm90IGluIHJlc3VsdHMp
CisKKyAgICBkZWYgdGVzdF9zdm5fcmV2aXNpb24oc2VsZik6CisgICAgICAgIGhvc3QgPSBNb2Nr
SG9zdCgpCisgICAgICAgIHBvcnQgPSBob3N0LnBvcnRfZmFjdG9yeS5nZXQoJ3Rlc3QnKQorICAg
ICAgICBwb3J0Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSA9ICdkdW1teSBidWlsZGVyJworICAgICAg
ICByZXN1bHRzID0gc2VsZi5nZXRfdW5leHBlY3RlZF9yZXN1bHRzKHBvcnQsIGV4cGVjdGVkPUZh
bHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KCdyZXZpc2lvbicgaW4gcmVzdWx0cykKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAg
ICBwb3J0X3Rlc3RjYXNlLm1haW4oKQo=
</data>
<flag name="review"
          id="125205"
          type_id="1"
          status="+"
          setter="dpranke"
    />
          </attachment>
      

    </bug>

</bugzilla>