<?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>44653</bug_id>
          
          <creation_ts>2010-08-25 17:26:27 -0700</creation_ts>
          <short_desc>don&apos;t delete duplicates needed because of intermediate results</short_desc>
          <delta_ts>2010-09-09 10:10:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269628</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-25 17:26:27 -0700</bug_when>
    <thetext>don&apos;t delete duplicates needed because of intermediate results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269633</commentid>
    <comment_count>1</comment_count>
      <attachid>65506</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-25 17:34:00 -0700</bug_when>
    <thetext>Created attachment 65506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269635</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-25 17:34:49 -0700</bug_when>
    <thetext>Maybe evan or dirk can casually review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269643</commentid>
    <comment_count>3</comment_count>
      <attachid>65506</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-25 17:58:52 -0700</bug_when>
    <thetext>Comment on attachment 65506
Patch

&gt; diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
&gt; index 63e2743fd4f26c1479d22defadf9e794fab972ff..e7e0440c172174c1495c85bc6da5c93e205564bd 100644
&gt; --- a/WebKitTools/ChangeLog
&gt; +++ b/WebKitTools/ChangeLog
&gt; @@ -1,3 +1,15 @@
&gt; +2010-08-25  Tony Chang  &lt;tony@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        don&apos;t delete duplicates needed because of intermediate results
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44653
&gt; +
&gt; +        Also, output the full path so we can pipe the output to rm.
&gt; +
&gt; +        * Scripts/webkitpy/layout_tests/deduplicate_tests.py:
&gt; +        * Scripts/webkitpy/layout_tests/deduplicate_tests_unittest.py:
&gt; +
&gt;  2010-08-25  Dirk Pranke  &lt;dpranke@chromium.org&gt;
&gt;  
&gt;          Reviewed by Ojan Vafai.
&gt; diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py b/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py
&gt; index bb63f5e66930f890d739456d42a833507e4a4681..6c5006ef5924854f5aab71d3defa6c92f2a54809 100644
&gt; --- a/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py
&gt; @@ -130,6 +130,30 @@ def extract_platforms(paths):
&gt;      return platforms
&gt;  
&gt;  
&gt; +def has_intermediate_results(test, fallbacks, matching_platform,
&gt; +                             path_exists=os.path.exists):
&gt; +    &quot;&quot;&quot;Returns True if there is a test result that causes us to not delete
&gt; +    this duplicate.
&gt; +
&gt; +    For example, chromium-linux may be a duplicate of the checked in result,
&gt; +    but chromium-win may have a different result checked in.  In this case,
&gt; +    we need to keep the duplicate results.
&gt; +
&gt; +    Args:
&gt; +        test: The test name.
&gt; +        fallbacks: A list of platforms we fall back on.
&gt; +        matching_platform: The platform that we found the duplicate test
&gt; +            result.  We can stop checking here.
&gt; +    &quot;&quot;&quot;

It would be nice if you added path_exists to the docstring arg list here, if for no other reason that to clarify that it should only be overridden for unit testing (I&apos;m assuming that&apos;s the purpose)? Personally I&apos;d be tempted to mock out os.path.exists() in the unittests themselves and not include the parameter here, but no big deal.


WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:183
 +                          yield test, platform, fallback, path

Why is this path and not platforms[platform] like it was before? Why are you adding &quot;LayoutTests&quot;?

WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests_unittest.py:120
 +                  deduplicate_tests.has_intermediate_results(*inputs))
It might be nice if you added a comment about how this series of tests works, and why this set of combinations is exhaustive (or how it was arrived at). I find people don&apos;t tend to document unit tests very clearly, which aggrevates an already difficult maintenance task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269936</commentid>
    <comment_count>4</comment_count>
      <attachid>65577</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-26 09:54:59 -0700</bug_when>
    <thetext>Created attachment 65577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269937</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-26 09:57:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; It would be nice if you added path_exists to the docstring arg list here, if for no other reason that to clarify that it should only be overridden for unit testing (I&apos;m assuming that&apos;s the purpose)? Personally I&apos;d be tempted to mock out os.path.exists() in the unittests themselves and not include the parameter here, but no big deal.

Added a docstring.  I had tried mocking deduplicate_tests.os.path.exists in the unittest, but the change persisted if the test failed.  It seemed dangerous, so I went with the dependency injection pattern instead.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:183
&gt;  +                          yield test, platform, fallback, path
&gt; 
&gt; Why is this path and not platforms[platform] like it was before? Why are you adding &quot;LayoutTests&quot;?

I mentioned in the ChangeLog this is so you can pipe the results to &apos;rm&apos;.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests_unittest.py:120
&gt;  +                  deduplicate_tests.has_intermediate_results(*inputs))
&gt; It might be nice if you added a comment about how this series of tests works, and why this set of combinations is exhaustive (or how it was arrived at). I find people don&apos;t tend to document unit tests very clearly, which aggrevates an already difficult maintenance task.

I added comments for each test case.  Did you want something more general?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270027</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-26 12:28:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; It would be nice if you added path_exists to the docstring arg list here, if for no other reason that to clarify that it should only be overridden for unit testing (I&apos;m assuming that&apos;s the purpose)? Personally I&apos;d be tempted to mock out os.path.exists() in the unittests themselves and not include the parameter here, but no big deal.
&gt; 
&gt; Added a docstring.  I had tried mocking deduplicate_tests.os.path.exists in the unittest, but the change persisted if the test failed.  It seemed dangerous, so I went with the dependency injection pattern instead.
&gt; 

You can either wrap the code in a try/finally (see test_reset_results() in run_webkit_tests_unittest, or use a tearDown fixture (see port/factory_unittest); both of those approaches are (I think) reliable.

But, the dependency injection approach is fine, too.

&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:183
&gt; &gt;  +                          yield test, platform, fallback, path
&gt; &gt; 
&gt; &gt; Why is this path and not platforms[platform] like it was before? Why are you adding &quot;LayoutTests&quot;?
&gt; 
&gt; I mentioned in the ChangeLog this is so you can pipe the results to &apos;rm&apos;.
&gt; 

But doesn&apos;t that only work if you&apos;re running from the top of the checkout? Wouldn&apos;t the previous version work just as well if you were running from the LayoutTests dir?

I didn&apos;t notice the ChangeLog comment before, but I normally think of &quot;full path&quot; as &quot;abspath&quot;, so I would think you&apos;d want something like os.path.join(webkitpy.checkout.scm.find_checkout_path(), &quot;LayoutTests&quot;, ...) instead, no?

&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests_unittest.py:120
&gt; &gt;  +                  deduplicate_tests.has_intermediate_results(*inputs))
&gt; &gt; It might be nice if you added a comment about how this series of tests works, and why this set of combinations is exhaustive (or how it was arrived at). I find people don&apos;t tend to document unit tests very clearly, which aggrevates an already difficult maintenance task.
&gt; 
&gt; I added comments for each test case.  Did you want something more general?

Nope, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270035</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-26 12:35:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; But doesn&apos;t that only work if you&apos;re running from the top of the checkout? Wouldn&apos;t the previous version work just as well if you were running from the LayoutTests dir?

It seems like the test has to be run from WebKit/.  If you run it from the LayoutTests dir, I get a python error.  I can try to fix that in a different change, but for now, it&apos;s not possible to run the script and pipe the results to xargs rm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270041</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-26 12:42:21 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; But doesn&apos;t that only work if you&apos;re running from the top of the checkout? Wouldn&apos;t the previous version work just as well if you were running from the LayoutTests dir?
&gt; 
&gt; It seems like the test has to be run from WebKit/.  If you run it from the LayoutTests dir, I get a python error.  I can try to fix that in a different change, but for now, it&apos;s not possible to run the script and pipe the results to xargs rm.

Okay. Well, piping the results to rm is certainly useful, so this sounds like an improvement. It would be nice to file a separate bug so we don&apos;t forget the other enhancement.

LGTM otherwise (but I&apos;m not a reviewer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276129</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-08 15:46:47 -0700</bug_when>
    <thetext>I filed bug 44709, which I will fix in a follow up as Dirk requested.  Eric, can you review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276294</commentid>
    <comment_count>10</comment_count>
      <attachid>65577</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-09-08 20:37:24 -0700</bug_when>
    <thetext>Comment on attachment 65577
Patch

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

Does this do the right thing if the intermediate result is the same as the current result? e.g. what if there are results for a test in each of platform/mac, platform-mac-leopard and platform-mac-chromium-leopard, but they&apos;re all the same? The ones the two leopard specific results should be listed as redundant, right?

It&apos;s hard for me to tell from this code whether this does that or not. Can you add a test for this case? Otherwise, this looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276505</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-09 09:25:28 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 65577 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=65577&amp;action=prettypatch
&gt; 
&gt; Does this do the right thing if the intermediate result is the same as the current result? e.g. what if there are results for a test in each of platform/mac, platform-mac-leopard and platform-mac-chromium-leopard, but they&apos;re all the same? The ones the two leopard specific results should be listed as redundant, right?
&gt; 
&gt; It&apos;s hard for me to tell from this code whether this does that or not. Can you add a test for this case? Otherwise, this looks good.

Only kind of.  I had discussed this with evan.  If A fallsback to B fallsback to C and they all the same result, the first time you run deduplicate-results, A won&apos;t be removed because B exists, but B will be removed.  The second time you run it, A will be removed.  This isn&apos;t ideal, but it simplifies the logic and this is a relatively rare case.

I&apos;ve filed bug 45463 about this and will fix in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276544</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-09 10:10:48 -0700</bug_when>
    <thetext>Committed r67092: &lt;http://trac.webkit.org/changeset/67092&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65506</attachid>
            <date>2010-08-25 17:34:00 -0700</date>
            <delta_ts>2010-08-26 09:54:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44653-20100825173349.patch</filename>
            <type>text/plain</type>
            <size>7653</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA2M2UyNzQzZmQ0ZjI2YzE0NzlkMjJkZWZhZGY5ZTc5NGZhYjk3MmZmLi5lN2UwNDQw
YzE3MjE3NGMxNDk1Yzg1YmM2ZGE1YzkzZTIwNTU2NGJkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMjUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkb24ndCBkZWxldGUgZHVwbGlj
YXRlcyBuZWVkZWQgYmVjYXVzZSBvZiBpbnRlcm1lZGlhdGUgcmVzdWx0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2NTMKKworICAgICAgICBBbHNv
LCBvdXRwdXQgdGhlIGZ1bGwgcGF0aCBzbyB3ZSBjYW4gcGlwZSB0aGUgb3V0cHV0IHRvIHJtLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVz
dHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNh
dGVfdGVzdHNfdW5pdHRlc3QucHk6CisKIDIwMTAtMDgtMjUgIERpcmsgUHJhbmtlICA8ZHByYW5r
ZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGlj
YXRlX3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
ZGVkdXBsaWNhdGVfdGVzdHMucHkKaW5kZXggYmI2M2Y1ZTY2OTMwZjg5MGQ3Mzk0NTZkNDJhODMz
NTA3ZTRhNDY4MS4uNmM1MDA2ZWY1OTI0ODU0ZjVhYWI3MWQzZGVmYTZjOTJmMmE1NDgwOSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBs
aWNhdGVfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkKQEAgLTEzMCw2ICsxMzAsMzAgQEAgZGVmIGV4dHJh
Y3RfcGxhdGZvcm1zKHBhdGhzKToKICAgICByZXR1cm4gcGxhdGZvcm1zCiAKIAorZGVmIGhhc19p
bnRlcm1lZGlhdGVfcmVzdWx0cyh0ZXN0LCBmYWxsYmFja3MsIG1hdGNoaW5nX3BsYXRmb3JtLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2V4aXN0cz1vcy5wYXRoLmV4aXN0cyk6
CisgICAgIiIiUmV0dXJucyBUcnVlIGlmIHRoZXJlIGlzIGEgdGVzdCByZXN1bHQgdGhhdCBjYXVz
ZXMgdXMgdG8gbm90IGRlbGV0ZQorICAgIHRoaXMgZHVwbGljYXRlLgorCisgICAgRm9yIGV4YW1w
bGUsIGNocm9taXVtLWxpbnV4IG1heSBiZSBhIGR1cGxpY2F0ZSBvZiB0aGUgY2hlY2tlZCBpbiBy
ZXN1bHQsCisgICAgYnV0IGNocm9taXVtLXdpbiBtYXkgaGF2ZSBhIGRpZmZlcmVudCByZXN1bHQg
Y2hlY2tlZCBpbi4gIEluIHRoaXMgY2FzZSwKKyAgICB3ZSBuZWVkIHRvIGtlZXAgdGhlIGR1cGxp
Y2F0ZSByZXN1bHRzLgorCisgICAgQXJnczoKKyAgICAgICAgdGVzdDogVGhlIHRlc3QgbmFtZS4K
KyAgICAgICAgZmFsbGJhY2tzOiBBIGxpc3Qgb2YgcGxhdGZvcm1zIHdlIGZhbGwgYmFjayBvbi4K
KyAgICAgICAgbWF0Y2hpbmdfcGxhdGZvcm06IFRoZSBwbGF0Zm9ybSB0aGF0IHdlIGZvdW5kIHRo
ZSBkdXBsaWNhdGUgdGVzdAorICAgICAgICAgICAgcmVzdWx0LiAgV2UgY2FuIHN0b3AgY2hlY2tp
bmcgaGVyZS4KKyAgICAiIiIKKyAgICBmb3IgcGxhdGZvcm0gaW4gZmFsbGJhY2tzOgorICAgICAg
ICBpZiBwbGF0Zm9ybSA9PSBtYXRjaGluZ19wbGF0Zm9ybToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICB0ZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oJ0xheW91dFRlc3RzJywgJ3Bs
YXRmb3JtJywgcGxhdGZvcm0sIHRlc3QpCisgICAgICAgIGlmIHBhdGhfZXhpc3RzKHRlc3RfcGF0
aCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCisKIGRlZiBm
aW5kX2R1cHMoaGFzaGVzLCBwb3J0X2ZhbGxiYWNrcyk6CiAgICAgIiIiWWllbGRzIGluZm8gYWJv
dXQgcmVkdW5kYW50IHRlc3QgZXhwZWN0YXRpb25zLgogICAgIEFyZ3M6CkBAIC0xNTEsNyArMTc1
LDEyIEBAIGRlZiBmaW5kX2R1cHMoaGFzaGVzLCBwb3J0X2ZhbGxiYWNrcyk6CiAgICAgICAgIGZv
ciBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXMua2V5cygpOgogICAgICAgICAgICAgZm9yIGZhbGxiYWNr
IGluIHBvcnRfZmFsbGJhY2tzW3BsYXRmb3JtXToKICAgICAgICAgICAgICAgICBpZiBmYWxsYmFj
ayBpbiBwbGF0Zm9ybXMua2V5cygpOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0LCBw
bGF0Zm9ybSwgZmFsbGJhY2ssIHBsYXRmb3Jtc1twbGF0Zm9ybV0KKyAgICAgICAgICAgICAgICAg
ICAgIyBXZSBoYXZlIHRvIHZlcmlmeSB0aGF0IHRoZXJlIGlzbid0IGFuIGludGVybWVkaWF0ZSBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgIyB0aGF0IGNhdXNlcyB0aGlzIGR1cGxpY2F0ZSBo
YXNoIHRvIGV4aXN0LgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgaGFzX2ludGVybWVkaWF0
ZV9yZXN1bHRzKHRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydF9mYWxsYmFj
a3NbcGxhdGZvcm1dLCBmYWxsYmFjayk6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0g
b3MucGF0aC5qb2luKCdMYXlvdXRUZXN0cycsIHBsYXRmb3Jtc1twbGF0Zm9ybV0pCisgICAgICAg
ICAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0LCBwbGF0Zm9ybSwgZmFsbGJhY2ssIHBhdGgKIAog
CiBkZWYgZGVkdXBsaWNhdGUoZ2xvYl9wYXR0ZXJuKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNh
dGVfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNjZkZGEzMmEwNzg2YmVkZjA0M2RkNGRkMDg0Mjlh
YjE5ZmJkMDI4NC4uNDA0YzQ1NDYzZTk3MDZkMTllZGI0Nzg3MDNlNDJlZDYwYmYyOTk2MyAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBs
aWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKQEAgLTg5LDYgKzg5
LDM2IEBAIGNsYXNzIExpc3REdXBsaWNhdGVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWR1cGxpY2F0ZV90ZXN0cy5fQkFTRV9QTEFURk9STTog
J3doYXQvJ30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWR1cGxpY2F0ZV90ZXN0cy5l
eHRyYWN0X3BsYXRmb3JtcyhbJ3BsYXRmb3JtL2Zvby9iYXInLCAnd2hhdC8nXSkpCiAKKyAgICBk
ZWYgdGVzdF9oYXNfaW50ZXJtZWRpYXRlX3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHRlc3RfY2Fz
ZXMgPSAoKEZhbHNlLCAoJ2Zhc3QvZm9vLWV4cGVjdGVkLnR4dCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnYmFzZSddLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaHJvbWl1bS13aW4nLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxhbWJkYSBwYXRoOiBUcnVlKSksCisgICAgICAgICAgICAgICAg
ICAgICAgKFRydWUsICAoJ2Zhc3QvZm9vLWV4cGVjdGVkLnR4dCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnYmFzZSddLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaHJvbWl1bScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGFtYmRhIHBhdGg6IFRydWUpKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAoRmFsc2UsICgnZmFzdC9mb28tZXhwZWN0ZWQudHh0JywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICdiYXNlJ10sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsYW1iZGEgcGF0aDogRmFsc2UpKSwKKyAgICAgICAgICAgICAgICAgICAgICAo
RmFsc2UsICgnZmFzdC9mb28tZXhwZWN0ZWQudHh0JywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICdiYXNlJ10sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsYW1iZGEgcGF0aDogcGF0aCA9PSAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9mb28tZXhwZWN0ZWQudHh0JykpLAorICAgICAgICAgICAgICAgICAgICAgIChUcnVl
LCAgKCdmYXN0L2Zvby1leHBlY3RlZC50eHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsnY2hyb21pdW0td2luJywgJ2Nocm9taXVtJywgJ2Jhc2UnXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnYmFzZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGFtYmRhIHBhdGg6IHBhdGggPT0gJ0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
Zm9vLWV4cGVjdGVkLnR4dCcpKSwKKyAgICAgICAgICAgICAgICAgICAgICAoVHJ1ZSwgICgnZmFz
dC9mb28tZXhwZWN0ZWQudHh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2No
cm9taXVtLXdpbicsICdjaHJvbWl1bScsICdiYXNlJ10sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Jhc2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBw
YXRoOiBwYXRoID09ICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9mb28t
ZXhwZWN0ZWQudHh0JykpLAorICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBmb3IgZXhw
ZWN0ZWQsIGlucHV0cyBpbiB0ZXN0X2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgZGVkdXBsaWNhdGVfdGVzdHMuaGFzX2ludGVy
bWVkaWF0ZV9yZXN1bHRzKCppbnB1dHMpKQorCiAgICAgZGVmIHRlc3RfdW5pcXVlKHNlbGYpOgog
ICAgICAgICBNb2NrRXhlY3V0aXZlLnJlc3BvbnNlID0gKAogICAgICAgICAgICAgJzEwMDY0NCBi
bG9iIDUwNTMyNDBiMzM1M2Y2ZWIzOWY3Y2IwMDI1OTc4NWYxNmQxMjFkZjJcdExheW91dFRlc3Rz
L21hYy9mb28tZXhwZWN0ZWQudHh0XG4nCkBAIC0xMTYsMTIgKzE0NiwxMiBAQCBjbGFzcyBMaXN0
RHVwbGljYXRlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygoJ2dpdCcsICdscy10cmVlJywgJy1yJywgJ0hFQUQnLCAnTGF5b3V0VGVzdHMnKSwgTW9j
a0V4ZWN1dGl2ZS5sYXN0X3J1bl9jb21tYW5kWy0xXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoMiwgbGVuKHJlc3VsdCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHsndGVzdCc6ICdh
bmltYWdlLnBuZycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdwbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9hbmltYWdlLnBuZycsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAncGF0aCc6ICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9hbmltYWdlLnBu
ZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiAnY2hyb21pdW0td2lu
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdjaHJvbWl1bS1saW51
eCd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0pCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHsndGVzdCc6ICdmb28tZXhwZWN0ZWQudHh0JywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdwYXRoJzogJ3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zvby1leHBlY3Rl
ZC50eHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAnTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvZm9vLWV4cGVjdGVkLnR4dCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZmFsbGJhY2snOiAnY2hyb21pdW0td2luJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdjaHJvbWl1bS1saW51eCd9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHRbMV0pCkBAIC0xMzEsNyArMTYxLDcgQEAgY2xhc3MgTGlzdER1
cGxpY2F0ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoKCdnaXQnLCAnbHMtdHJlZScsICctcicsICdIRUFEJywgJ0xheW91dFRlc3RzJyksIE1vY2tF
eGVjdXRpdmUubGFzdF9ydW5fY29tbWFuZFstMV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDEsIGxlbihyZXN1bHQpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh7J3Rlc3QnOiAnZm9v
LWV4cGVjdGVkLnR4dCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9mb28tZXhwZWN0ZWQudHh0JywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdwYXRoJzogJ0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zv
by1leHBlY3RlZC50eHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhbGxiYWNrJzog
J2Nocm9taXVtLXdpbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAn
Y2hyb21pdW0tbGludXgnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0WzBdKQpA
QCAtMTQxLDcgKzE3MSw3IEBAIGNsYXNzIExpc3REdXBsaWNhdGVzVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCgnZ2l0JywgJ2xzLXRyZWUnLCAnLXIn
LCAnSEVBRCcsICdMYXlvdXRUZXN0cycpLCBNb2NrRXhlY3V0aXZlLmxhc3RfcnVuX2NvbW1hbmRb
LTFdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4ocmVzdWx0KSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoeyd0ZXN0JzogJ2FuaW1hZ2UucG5nJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdwYXRoJzogJ3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2FuaW1hZ2UucG5n
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXRoJzogJ0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2FuaW1hZ2UucG5nJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdmYWxsYmFjayc6ICdjaHJvbWl1bS13aW4nLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3BsYXRmb3JtJzogJ2Nocm9taXVtLWxpbnV4J30sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdFswXSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65577</attachid>
            <date>2010-08-26 09:54:59 -0700</date>
            <delta_ts>2010-09-08 20:37:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44653-20100826095443.patch</filename>
            <type>text/plain</type>
            <size>8161</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ODExZWYzMWRlOGY3M2U3YmY4Zjg4MmNhM2M3ZWFhNDhlZTlhMTE2Li5jNmNiMzVk
ODBhM2E2ZTQwNTQ2ODE5NDQwMDdlMzU3MmRhZjRlOTZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMjUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkb24ndCBkZWxldGUgZHVwbGlj
YXRlcyBuZWVkZWQgYmVjYXVzZSBvZiBpbnRlcm1lZGlhdGUgcmVzdWx0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2NTMKKworICAgICAgICBBbHNv
LCBvdXRwdXQgdGhlIGZ1bGwgcGF0aCBzbyB3ZSBjYW4gcGlwZSB0aGUgb3V0cHV0IHRvIHJtLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVz
dHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNh
dGVfdGVzdHNfdW5pdHRlc3QucHk6CisKIDIwMTAtMDgtMjYgIE1haGVzaCBLdWxrYXJuaSAgPG1h
aGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CmluZGV4IGJiNjNm
NWU2NjkzMGY4OTBkNzM5NDU2ZDQyYTgzMzUwN2U0YTQ2ODEuLmM1NDNkOTE4M2E0MDZlNzg3MTQy
MDJlODNjOTk1NjU0NTIzNTc0MDkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CkBAIC0x
MzAsNiArMTMwLDMyIEBAIGRlZiBleHRyYWN0X3BsYXRmb3JtcyhwYXRocyk6CiAgICAgcmV0dXJu
IHBsYXRmb3JtcwogCiAKK2RlZiBoYXNfaW50ZXJtZWRpYXRlX3Jlc3VsdHModGVzdCwgZmFsbGJh
Y2tzLCBtYXRjaGluZ19wbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0
aF9leGlzdHM9b3MucGF0aC5leGlzdHMpOgorICAgICIiIlJldHVybnMgVHJ1ZSBpZiB0aGVyZSBp
cyBhIHRlc3QgcmVzdWx0IHRoYXQgY2F1c2VzIHVzIHRvIG5vdCBkZWxldGUKKyAgICB0aGlzIGR1
cGxpY2F0ZS4KKworICAgIEZvciBleGFtcGxlLCBjaHJvbWl1bS1saW51eCBtYXkgYmUgYSBkdXBs
aWNhdGUgb2YgdGhlIGNoZWNrZWQgaW4gcmVzdWx0LAorICAgIGJ1dCBjaHJvbWl1bS13aW4gbWF5
IGhhdmUgYSBkaWZmZXJlbnQgcmVzdWx0IGNoZWNrZWQgaW4uICBJbiB0aGlzIGNhc2UsCisgICAg
d2UgbmVlZCB0byBrZWVwIHRoZSBkdXBsaWNhdGUgcmVzdWx0cy4KKworICAgIEFyZ3M6CisgICAg
ICAgIHRlc3Q6IFRoZSB0ZXN0IG5hbWUuCisgICAgICAgIGZhbGxiYWNrczogQSBsaXN0IG9mIHBs
YXRmb3JtcyB3ZSBmYWxsIGJhY2sgb24uCisgICAgICAgIG1hdGNoaW5nX3BsYXRmb3JtOiBUaGUg
cGxhdGZvcm0gdGhhdCB3ZSBmb3VuZCB0aGUgZHVwbGljYXRlIHRlc3QKKyAgICAgICAgICAgIHJl
c3VsdC4gIFdlIGNhbiBzdG9wIGNoZWNraW5nIGhlcmUuCisgICAgICAgIHBhdGhfZXhpc3RzOiBP
cHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBhbGxvd3MgdXMgdG8gc3R1YiBvdXQKKyAgICAgICAgICAg
IG9zLnBhdGguZXhpc3RzIGZvciB0ZXN0aW5nLgorICAgICIiIgorICAgIGZvciBwbGF0Zm9ybSBp
biBmYWxsYmFja3M6CisgICAgICAgIGlmIHBsYXRmb3JtID09IG1hdGNoaW5nX3BsYXRmb3JtOgor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHRlc3RfcGF0aCA9IG9zLnBhdGguam9p
bignTGF5b3V0VGVzdHMnLCAncGxhdGZvcm0nLCBwbGF0Zm9ybSwgdGVzdCkKKyAgICAgICAgaWYg
cGF0aF9leGlzdHModGVzdF9wYXRoKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0
dXJuIEZhbHNlCisKKwogZGVmIGZpbmRfZHVwcyhoYXNoZXMsIHBvcnRfZmFsbGJhY2tzKToKICAg
ICAiIiJZaWVsZHMgaW5mbyBhYm91dCByZWR1bmRhbnQgdGVzdCBleHBlY3RhdGlvbnMuCiAgICAg
QXJnczoKQEAgLTE1MSw3ICsxNzcsMTIgQEAgZGVmIGZpbmRfZHVwcyhoYXNoZXMsIHBvcnRfZmFs
bGJhY2tzKToKICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAgICAg
ICAgICAgICBmb3IgZmFsbGJhY2sgaW4gcG9ydF9mYWxsYmFja3NbcGxhdGZvcm1dOgogICAgICAg
ICAgICAgICAgIGlmIGZhbGxiYWNrIGluIHBsYXRmb3Jtcy5rZXlzKCk6Ci0gICAgICAgICAgICAg
ICAgICAgIHlpZWxkIHRlc3QsIHBsYXRmb3JtLCBmYWxsYmFjaywgcGxhdGZvcm1zW3BsYXRmb3Jt
XQorICAgICAgICAgICAgICAgICAgICAjIFdlIGhhdmUgdG8gdmVyaWZ5IHRoYXQgdGhlcmUgaXNu
J3QgYW4gaW50ZXJtZWRpYXRlIHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAjIHRoYXQgY2F1
c2VzIHRoaXMgZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCisgICAgICAgICAgICAgICAgICAgIGlm
IG5vdCBoYXNfaW50ZXJtZWRpYXRlX3Jlc3VsdHModGVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3J0X2ZhbGxiYWNrc1twbGF0Zm9ybV0sIGZhbGxiYWNrKToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oJ0xheW91dFRlc3RzJywgcGxhdGZvcm1z
W3BsYXRmb3JtXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRlc3QsIHBsYXRmb3Jt
LCBmYWxsYmFjaywgcGF0aAogCiAKIGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBs
aWNhdGVfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0dGVzdC5weQppbmRleCA2NmRkYTMyYTA3
ODZiZWRmMDQzZGQ0ZGQwODQyOWFiMTlmYmQwMjg0Li5iZTJlMzgxMmVjOTFmODcyOTNhMDRjNTg0
NDcxNGM3MjFjYTgwOTU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0dGVzdC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0
dGVzdC5weQpAQCAtODksNiArODksNDcgQEAgY2xhc3MgTGlzdER1cGxpY2F0ZXNUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZHVwbGljYXRlX3Rl
c3RzLl9CQVNFX1BMQVRGT1JNOiAnd2hhdC8nfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlZHVwbGljYXRlX3Rlc3RzLmV4dHJhY3RfcGxhdGZvcm1zKFsncGxhdGZvcm0vZm9vL2Jhcics
ICd3aGF0LyddKSkKIAorICAgIGRlZiB0ZXN0X2hhc19pbnRlcm1lZGlhdGVfcmVzdWx0cyhzZWxm
KToKKyAgICAgICAgdGVzdF9jYXNlcyA9ICgKKyAgICAgICAgICAgICMgSWYgd2UgZm91bmQgYSBk
dXBsaWNhdGUgaW4gb3VyIGZpcnN0IGZhbGxiYWNrLCB3ZSBoYXZlIG5vCisgICAgICAgICAgICAj
IGludGVybWVkaWF0ZSByZXN1bHRzLgorICAgICAgICAgICAgKEZhbHNlLCAoJ2Zhc3QvZm9vLWV4
cGVjdGVkLnR4dCcsCisgICAgICAgICAgICAgICAgICAgICBbJ2Nocm9taXVtLXdpbicsICdjaHJv
bWl1bScsICdiYXNlJ10sCisgICAgICAgICAgICAgICAgICAgICAnY2hyb21pdW0td2luJywKKyAg
ICAgICAgICAgICAgICAgICAgIGxhbWJkYSBwYXRoOiBUcnVlKSksCisgICAgICAgICAgICAjIFNp
bmNlIGNocm9taXVtLXdpbiBoYXMgYSByZXN1bHQsIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXRlIHJl
c3VsdC4KKyAgICAgICAgICAgIChUcnVlLCAgKCdmYXN0L2Zvby1leHBlY3RlZC50eHQnLAorICAg
ICAgICAgICAgICAgICAgICAgWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnYmFzZSddLAor
ICAgICAgICAgICAgICAgICAgICAgJ2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAgICAgIGxh
bWJkYSBwYXRoOiBUcnVlKSksCisgICAgICAgICAgICAjIFRoZXJlIGFyZSBubyBpbnRlcm1lZGlh
dGUgcmVzdWx0cy4KKyAgICAgICAgICAgIChGYWxzZSwgKCdmYXN0L2Zvby1leHBlY3RlZC50eHQn
LAorICAgICAgICAgICAgICAgICAgICAgWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnYmFz
ZSddLAorICAgICAgICAgICAgICAgICAgICAgJ2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAg
ICAgIGxhbWJkYSBwYXRoOiBGYWxzZSkpLAorICAgICAgICAgICAgIyBUaGVyZSBhcmUgbm8gaW50
ZXJtZWRpYXRlIHJlc3VsdHMgc2luY2UgYSByZXN1bHQgZm9yIGNocm9taXVtIGlzCisgICAgICAg
ICAgICAjIG91ciBkdXBsaWNhdGUgZmlsZS4KKyAgICAgICAgICAgIChGYWxzZSwgKCdmYXN0L2Zv
by1leHBlY3RlZC50eHQnLAorICAgICAgICAgICAgICAgICAgICAgWydjaHJvbWl1bS13aW4nLCAn
Y2hyb21pdW0nLCAnYmFzZSddLAorICAgICAgICAgICAgICAgICAgICAgJ2Nocm9taXVtJywKKyAg
ICAgICAgICAgICAgICAgICAgIGxhbWJkYSBwYXRoOiBwYXRoID09ICdMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvby1leHBlY3RlZC50eHQnKSksCisgICAgICAgICAgICAjIFdl
IGhhdmUgYW4gaW50ZXJtZWRpYXRlIHJlc3VsdCBpbiAnY2hyb21pdW0nIGV2ZW4gdGhvdWdoIG91
cgorICAgICAgICAgICAgIyBkdXBsaWNhdGUgaXMgd2l0aCB0aGUgZmlsZSBpbiAnYmFzZScuCisg
ICAgICAgICAgICAoVHJ1ZSwgICgnZmFzdC9mb28tZXhwZWN0ZWQudHh0JywKKyAgICAgICAgICAg
ICAgICAgICAgIFsnY2hyb21pdW0td2luJywgJ2Nocm9taXVtJywgJ2Jhc2UnXSwKKyAgICAgICAg
ICAgICAgICAgICAgICdiYXNlJywKKyAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBwYXRoOiBw
YXRoID09ICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvby1leHBlY3RlZC50
eHQnKSksCisgICAgICAgICAgICAjIFdlIGhhdmUgYW4gaW50ZXJtZWRpYXRlIHJlc3VsdCBpbiAn
Y2hyb21pdW0td2luJyBldmVuIHRob3VnaCBvdXIKKyAgICAgICAgICAgICMgZHVwbGljYXRlIGlz
IGluICdiYXNlJy4KKyAgICAgICAgICAgIChUcnVlLCAgKCdmYXN0L2Zvby1leHBlY3RlZC50eHQn
LAorICAgICAgICAgICAgICAgICAgICAgWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnYmFz
ZSddLAorICAgICAgICAgICAgICAgICAgICAgJ2Jhc2UnLAorICAgICAgICAgICAgICAgICAgICAg
bGFtYmRhIHBhdGg6IHBhdGggPT0gJ0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9m
YXN0L2Zvby1leHBlY3RlZC50eHQnKSksCisgICAgICAgICkKKyAgICAgICAgZm9yIGV4cGVjdGVk
LCBpbnB1dHMgaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4
cGVjdGVkLAorICAgICAgICAgICAgICAgIGRlZHVwbGljYXRlX3Rlc3RzLmhhc19pbnRlcm1lZGlh
dGVfcmVzdWx0cygqaW5wdXRzKSkKKwogICAgIGRlZiB0ZXN0X3VuaXF1ZShzZWxmKToKICAgICAg
ICAgTW9ja0V4ZWN1dGl2ZS5yZXNwb25zZSA9ICgKICAgICAgICAgICAgICcxMDA2NDQgYmxvYiA1
MDUzMjQwYjMzNTNmNmViMzlmN2NiMDAyNTk3ODVmMTZkMTIxZGYyXHRMYXlvdXRUZXN0cy9tYWMv
Zm9vLWV4cGVjdGVkLnR4dFxuJwpAQCAtMTE2LDEyICsxNTcsMTIgQEAgY2xhc3MgTGlzdER1cGxp
Y2F0ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
KCdnaXQnLCAnbHMtdHJlZScsICctcicsICdIRUFEJywgJ0xheW91dFRlc3RzJyksIE1vY2tFeGVj
dXRpdmUubGFzdF9ydW5fY29tbWFuZFstMV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDIs
IGxlbihyZXN1bHQpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh7J3Rlc3QnOiAnYW5pbWFn
ZS5wbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAncGxhdGZvcm0vY2hy
b21pdW0tbGludXgvYW5pbWFnZS5wbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bh
dGgnOiAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvYW5pbWFnZS5wbmcnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhbGxiYWNrJzogJ2Nocm9taXVtLXdpbicsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAnY2hyb21pdW0tbGludXgnfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0WzBdKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyh7J3Rlc3QnOiAnZm9vLWV4cGVjdGVkLnR4dCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAncGF0aCc6ICdwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mb28tZXhwZWN0ZWQudHh0
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXRoJzogJ0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2Zvby1leHBlY3RlZC50eHQnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2ZhbGxiYWNrJzogJ2Nocm9taXVtLXdpbicsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncGxhdGZvcm0nOiAnY2hyb21pdW0tbGludXgnfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0WzFdKQpAQCAtMTMxLDcgKzE3Miw3IEBAIGNsYXNzIExpc3REdXBsaWNh
dGVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCgn
Z2l0JywgJ2xzLXRyZWUnLCAnLXInLCAnSEVBRCcsICdMYXlvdXRUZXN0cycpLCBNb2NrRXhlY3V0
aXZlLmxhc3RfcnVuX2NvbW1hbmRbLTFdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBs
ZW4ocmVzdWx0KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoeyd0ZXN0JzogJ2Zvby1leHBl
Y3RlZC50eHQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAncGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvZm9vLWV4cGVjdGVkLnR4dCcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAncGF0aCc6ICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mb28tZXhw
ZWN0ZWQudHh0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmYWxsYmFjayc6ICdjaHJv
bWl1bS13aW4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtJzogJ2Nocm9t
aXVtLWxpbnV4J30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFswXSkKQEAgLTE0
MSw3ICsxODIsNyBAQCBjbGFzcyBMaXN0RHVwbGljYXRlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoJ2dpdCcsICdscy10cmVlJywgJy1yJywgJ0hF
QUQnLCAnTGF5b3V0VGVzdHMnKSwgTW9ja0V4ZWN1dGl2ZS5sYXN0X3J1bl9jb21tYW5kWy0xXSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlc3VsdCkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHsndGVzdCc6ICdhbmltYWdlLnBuZycsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAncGF0aCc6ICdwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9hbmltYWdlLnBuZycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9hbmltYWdlLnBuZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
ZmFsbGJhY2snOiAnY2hyb21pdW0td2luJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdw
bGF0Zm9ybSc6ICdjaHJvbWl1bS1saW51eCd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHRbMF0pCg==
</data>
<flag name="review"
          id="54381"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>