<?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>77685</bug_id>
          
          <creation_ts>2012-02-02 14:49:14 -0800</creation_ts>
          <short_desc>Ref Tests should support plain SVG files</short_desc>
          <delta_ts>2012-02-03 19:52:31 -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>Tools / Tests</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="Dirk Schulze">krit</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>hayato</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>548177</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-02-02 14:49:14 -0800</bug_when>
    <thetext>Ref Tests should support plain SVG files with the ending .svg. It would be great to have them for SVG tests as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548304</commentid>
    <comment_count>1</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-02 18:03:12 -0800</bug_when>
    <thetext>That sounds reasonable.

My initial thought is if we have foo.svg and foo-expected.svg, we should consider it as a reftest.
Is this a feasible idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548307</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-02 18:06:32 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; That sounds reasonable.
&gt; 
&gt; My initial thought is if we have foo.svg and foo-expected.svg, we should consider it as a reftest.
&gt; Is this a feasible idea?

Yes, that sounds reasonable. As I said on IRC, we just need to modify functions in base.py that find reference files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548610</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 03:10:04 -0800</bug_when>
    <thetext>A patch coming...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548612</commentid>
    <comment_count>4</comment_count>
      <attachid>125301</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 03:21:31 -0800</bug_when>
    <thetext>Created attachment 125301
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548883</commentid>
    <comment_count>5</comment_count>
      <attachid>125301</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-03 11:23:08 -0800</bug_when>
    <thetext>Comment on attachment 125301
fixes the bug

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:472
&gt; +            for (expectation, prefix) in [(&apos;==&apos;, &apos;&apos;), (&apos;!=&apos;, &apos;-mismatch&apos;)]:

Nit: Remove unnecessary () and use () instead of []:
  for expectation, prefix in ((&apos;==&apos;, &apos;&apos;), (&apos;!=&apos;, &apos;-mismatch&apos;)):

&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:482
&gt; +        return any(self.reference_files(test_name))

Do you need any() here?  Don&apos;t you just want to see if the return value is not empty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548923</commentid>
    <comment_count>6</comment_count>
      <attachid>125301</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 12:00:35 -0800</bug_when>
    <thetext>Comment on attachment 125301
fixes the bug

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:472
&gt;&gt; +            for (expectation, prefix) in [(&apos;==&apos;, &apos;&apos;), (&apos;!=&apos;, &apos;-mismatch&apos;)]:
&gt; 
&gt; Nit: Remove unnecessary () and use () instead of []:
&gt;   for expectation, prefix in ((&apos;==&apos;, &apos;&apos;), (&apos;!=&apos;, &apos;-mismatch&apos;)):

Okay, will fix.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:482
&gt;&gt; +        return any(self.reference_files(test_name))
&gt; 
&gt; Do you need any() here?  Don&apos;t you just want to see if the return value is not empty?

Oh oops, you&apos;re right. No need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548925</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 12:08:09 -0800</bug_when>
    <thetext>I&apos;m gonna just get rid of is_reftest. It&apos;s a useless function now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548926</commentid>
    <comment_count>8</comment_count>
      <attachid>125379</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 12:08:47 -0800</bug_when>
    <thetext>Created attachment 125379
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549036</commentid>
    <comment_count>9</comment_count>
      <attachid>125379</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 13:48:40 -0800</bug_when>
    <thetext>Comment on attachment 125379
fixes the bug

Clearing flags on attachment: 125379

Committed r106692: &lt;http://trac.webkit.org/changeset/106692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549038</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 13:48:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549327</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 19:31:05 -0800</bug_when>
    <thetext>This broke webkitpy tests on chromium win:

http://build.webkit.org/builders/Chromium%20Win%20Release%20%28Tests%29/builds/23418/steps/webkitpy-test/logs/stdio

FAIL: test_reference_files (webkitpy.layout_tests.port.base_unittest.PortTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;E:\b\chromium-win-release-tests\build\Tools\Scripts\webkitpy\layout_tests\port\base_unittest.py&quot;, line 360, in test_reference_files
    self.assertEqual(port.reference_files(&apos;passes/svgreftest.svg&apos;), [(&apos;==&apos;, &apos;/test.checkout/LayoutTests/passes/svgreftest-expected.svg&apos;)])
AssertionError: [(&apos;==&apos;, &apos;c:/test.checkout/LayoutTests/passes/svgreftest-expected.svg&apos;)] != [(&apos;==&apos;, &apos;/test.checkout/LayoutTests/passes/svgreftest-expected.svg&apos;)]

----------------------------------------------------------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549329</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 19:33:38 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; This broke webkitpy tests on chromium win:
&gt; 
&gt; http://build.webkit.org/builders/Chromium%20Win%20Release%20%28Tests%29/builds/23418/steps/webkitpy-test/logs/stdio
&gt; 
&gt; FAIL: test_reference_files (webkitpy.layout_tests.port.base_unittest.PortTest)
&gt; ----------------------------------------------------------------------
&gt; Traceback (most recent call last):
&gt;   File &quot;E:\b\chromium-win-release-tests\build\Tools\Scripts\webkitpy\layout_tests\port\base_unittest.py&quot;, line 360, in test_reference_files
&gt;     self.assertEqual(port.reference_files(&apos;passes/svgreftest.svg&apos;), [(&apos;==&apos;, &apos;/test.checkout/LayoutTests/passes/svgreftest-expected.svg&apos;)])
&gt; AssertionError: [(&apos;==&apos;, &apos;c:/test.checkout/LayoutTests/passes/svgreftest-expected.svg&apos;)] != [(&apos;==&apos;, &apos;/test.checkout/LayoutTests/passes/svgreftest-expected.svg&apos;)]
&gt; 
&gt; ----------------------------------------------------------------------

:-(  i knew it. will fix ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549333</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-03 19:52:31 -0800</bug_when>
    <thetext>Fix landed in http://trac.webkit.org/changeset/106726.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125301</attachid>
            <date>2012-02-03 03:21:31 -0800</date>
            <delta_ts>2012-02-03 12:08:42 -0800</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-77685-20120203032130.patch</filename>
            <type>text/plain</type>
            <size>8023</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwNjY0NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDEyLTAyLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIFJlZiBUZXN0cyBzaG91bGQgc3VwcG9ydCBwbGFpbiBTVkcgZmlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3Njg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgYXNzdW1lIHJl
ZmVyZW5jZSBmaWxlcyBhbHdheXMgdXNlIC5odG1sIGFzIHRoZSBleHRlbnNpb24uCisgICAgICAg
IEluc3RlYWQsIHVzZSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZXh0ZW5zaW9uIHRvIGxvb2sgZm9y
IC1leHBlY3RlZC4qIGFuZCAtbWlzbWF0Y2guKgorCisgICAgICAgIEFsc28gZml4IHZhcmlvdXMg
YnVncyBpbiBNb2NrRmlsZVN5c3RlbSBhbmQgVGVzdFBvcnQuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5OgorICAgICAgICAoTW9j
a0ZpbGVTeXN0ZW0uaXNkaXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQucmVmZXJlbmNlX2ZpbGVzKToKKyAgICAg
ICAgKFBvcnQuaXNfcmVmdGVzdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUG9ydFRlc3QudGVzdF9pc190
ZXN0X2ZpbGUpOgorICAgICAgICAoUG9ydFRlc3QudGVzdF9yZWZlcmVuY2VfZmlsZXMpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAg
ICAgKFRlc3RJbnN0YW5jZS5fX2luaXRfXyk6CisKIDIwMTItMDItMDIgIEpvY2hlbiBFaXNpbmdl
ciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBhZGQgc3VwcG9y
dCBmb3IgLS1tYWtlYXJncyB0byB0aGUgbmluamEtYmFzZWQgYnVpbGQKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9j
ay5weQkocmV2aXNpb24gMTA2NjI0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weQkod29ya2luZyBjb3B5KQpAQCAtMTgwLDcgKzE4MCw3
IEBAIGNsYXNzIE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgICAgICMgdG8gYSBkaWZmZXJl
bnQgdGhyZWFkIGFuZCBwb3RlbnRpYWxseSBtb2RpZnlpbmcgdGhlIGRpY3QgaW4KICAgICAgICAg
IyBtaWQtaXRlcmF0aW9uLgogICAgICAgICBmaWxlcyA9IHNlbGYuZmlsZXMua2V5cygpWzpdCi0g
ICAgICAgIHJlc3VsdCA9IGFueShmLnN0YXJ0c3dpdGgocGF0aCkgZm9yIGYgaW4gZmlsZXMpCisg
ICAgICAgIHJlc3VsdCA9IGFueShmLnN0YXJ0c3dpdGgocGF0aCkgYW5kIGxlbihzZWxmLnNwbGl0
KGYpWzBdKSA+PSBsZW4ocGF0aCkgZm9yIGYgaW4gZmlsZXMpCiAgICAgICAgIGlmIHJlc3VsdDoK
ICAgICAgICAgICAgIHNlbGYuZGlycy5hZGQocGF0aCkKICAgICAgICAgcmV0dXJuIHJlc3VsdApJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFz
ZS5weQkocmV2aXNpb24gMTA2NjI0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00NjgsMTggKzQ2OCwxOCBAQCBj
bGFzcyBQb3J0KG9iamVjdCk6CiAKICAgICAgICAgcmVmdGVzdF9saXN0ID0gc2VsZi5fZ2V0X3Jl
ZnRlc3RfbGlzdCh0ZXN0X25hbWUpCiAgICAgICAgIGlmIG5vdCByZWZ0ZXN0X2xpc3Q6Ci0gICAg
ICAgICAgICBleHBlY3RlZF9maWxlbmFtZXMgPSBbKCc9PScsIHNlbGYuZXhwZWN0ZWRfZmlsZW5h
bWUodGVzdF9uYW1lLCAnLmh0bWwnKSksICgnIT0nLCBzZWxmLmV4cGVjdGVkX2ZpbGVuYW1lKHRl
c3RfbmFtZSwgJy1taXNtYXRjaC5odG1sJykpXQotICAgICAgICAgICAgcmV0dXJuIFsoZXhwZWN0
YXRpb24sIGZpbGVuYW1lKSBmb3IgZXhwZWN0YXRpb24sIGZpbGVuYW1lIGluIGV4cGVjdGVkX2Zp
bGVuYW1lcyBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhmaWxlbmFtZSldCisgICAgICAgICAg
ICByZWZ0ZXN0X2xpc3QgPSBbXQorICAgICAgICAgICAgZm9yIChleHBlY3RhdGlvbiwgcHJlZml4
KSBpbiBbKCc9PScsICcnKSwgKCchPScsICctbWlzbWF0Y2gnKV06CisgICAgICAgICAgICAgICAg
Zm9yIGV4dGVudGlvbiBpbiBQb3J0Ll9zdXBwb3J0ZWRfZmlsZV9leHRlbnNpb25zOgorICAgICAg
ICAgICAgICAgICAgICBwYXRoID0gc2VsZi5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsIHBy
ZWZpeCArIGV4dGVudGlvbikKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3Rl
bS5leGlzdHMocGF0aCk6CisgICAgICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X2xpc3QuYXBw
ZW5kKChleHBlY3RhdGlvbiwgcGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcmVmdGVzdF9saXN0
CiAKICAgICAgICAgcmV0dXJuIHJlZnRlc3RfbGlzdC5nZXQoc2VsZi5fZmlsZXN5c3RlbS5qb2lu
KHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCB0ZXN0X25hbWUpLCBbXSkKIAogICAgIGRlZiBpc19y
ZWZ0ZXN0KHNlbGYsIHRlc3RfbmFtZSk6Ci0gICAgICAgIHJlZnRlc3RfbGlzdCA9IHNlbGYuX2dl
dF9yZWZ0ZXN0X2xpc3QodGVzdF9uYW1lKQotICAgICAgICBpZiBub3QgcmVmdGVzdF9saXN0Ogot
ICAgICAgICAgICAgaGFzX2V4cGVjdGVkID0gc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5l
eHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICcuaHRtbCcpKQotICAgICAgICAgICAgcmV0dXJu
IGhhc19leHBlY3RlZCBvciBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhzZWxmLmV4cGVjdGVkX2Zp
bGVuYW1lKHRlc3RfbmFtZSwgJy1taXNtYXRjaC5odG1sJykpCi0gICAgICAgIGZpbGVuYW1lID0g
c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCB0ZXN0X25hbWUp
Ci0gICAgICAgIHJldHVybiBmaWxlbmFtZSBpbiByZWZ0ZXN0X2xpc3QKKyAgICAgICAgcmV0dXJu
IGFueShzZWxmLnJlZmVyZW5jZV9maWxlcyh0ZXN0X25hbWUpKQogCiAgICAgZGVmIHRlc3RzKHNl
bGYsIHBhdGhzKToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBsaXN0IG9mIHRlc3RzIGZvdW5kLiIi
IgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQkocmV2aXNpb24gMTA2NjI0KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0zMjQsMTAgKzMyNCwxNSBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIGZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSgpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShQb3J0Ll9pc190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28uaHRt
bCcpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoUG9ydC5faXNfdGVzdF9maWxlKGZpbGVzeXN0
ZW0sICcnLCAnZm9vLnNodG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQb3J0Ll9pc190
ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28uc3ZnJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShQb3J0Ll9pc190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICd0ZXN0LXJlZi10ZXN0Lmh0
bWwnKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQb3J0Ll9pc190ZXN0X2ZpbGUoZmlsZXN5
c3RlbSwgJycsICdmb28ucG5nJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUG9ydC5faXNf
dGVzdF9maWxlKGZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLmh0bWwnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShQb3J0Ll9pc190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28t
ZXhwZWN0ZWQuc3ZnJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUG9ydC5faXNfdGVzdF9m
aWxlKGZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLnhodCcpKQogICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3Rl
ZC1taXNtYXRjaC5odG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUG9ydC5faXNfdGVz
dF9maWxlKGZpbGVzeXN0ZW0sICcnLCAnZm9vLWV4cGVjdGVkLW1pc21hdGNoLnN2ZycpKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAnJywg
J2Zvby1leHBlY3RlZC1taXNtYXRjaC54aHRtbCcpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1yZWYuaHRtbCcpKQogICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAnJywg
J2Zvby1ub3RyZWYuaHRtbCcpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFBvcnQuX2lzX3Rl
c3RfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1ub3RyZWYueGh0JykpCkBAIC0zNTAsNiArMzU1
LDEyIEBAIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdi
YXIvdGVzdC0yLmh0bWwnOiBbKCchPScsICdiYXIvdGVzdC1ub3RyZWYuaHRtbCcpXSwKICAgICAg
ICAgICAgICdiYXIvdGVzdC0zLmh0bWwnOiBbKCc9PScsICdiYXIvdGVzdC1yZWYuaHRtbCcpLCAo
Jz09JywgJ2Jhci90ZXN0LXJlZjIuaHRtbCcpLCAoJyE9JywgJ2Jhci90ZXN0LW5vdHJlZi5odG1s
JyldfSkKIAorICAgIGRlZiB0ZXN0X3JlZmVyZW5jZV9maWxlcyhzZWxmKToKKyAgICAgICAgcG9y
dCA9IHNlbGYubWFrZV9wb3J0KHdpdGhfdGVzdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwb3J0LnJlZmVyZW5jZV9maWxlcygncGFzc2VzL3N2Z3JlZnRlc3Quc3ZnJyksIFsoJz09
JywgJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Bhc3Nlcy9zdmdyZWZ0ZXN0LWV4cGVjdGVk
LnN2ZycpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJlZmVyZW5jZV9maWxlcygn
cGFzc2VzL3hodHJlZnRlc3Quc3ZnJyksIFsoJz09JywgJy90ZXN0LmNoZWNrb3V0L0xheW91dFRl
c3RzL3Bhc3Nlcy94aHRyZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnKV0pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5yZWZlcmVuY2VfZmlsZXMoJ3Bhc3Nlcy9waHByZWZ0ZXN0LnBocCcpLCBb
KCchPScsICcvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wYXNzZXMvcGhwcmVmdGVzdC1leHBl
Y3RlZC1taXNtYXRjaC5zdmcnKV0pCisKICAgICBkZWYgdGVzdF9vcGVyYXRpbmdfc3lzdGVtKHNl
bGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdtYWMnLCBzZWxmLm1ha2VfcG9ydCgpLm9w
ZXJhdGluZ19zeXN0ZW0oKSkKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC90ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQkocmV2aXNpb24gMTA2NjI0KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBA
IC00NCw3ICs0NCw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX20K
IGNsYXNzIFRlc3RJbnN0YW5jZShvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
KToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAgICBzZWxmLmJhc2UgPSBuYW1lWyhu
YW1lLnJmaW5kKCIvIikgKyAxKTpuYW1lLnJmaW5kKCIuaHRtbCIpXQorICAgICAgICBzZWxmLmJh
c2UgPSBuYW1lWyhuYW1lLnJmaW5kKCIvIikgKyAxKTpuYW1lLnJmaW5kKCIuIildCiAgICAgICAg
IHNlbGYuY3Jhc2ggPSBGYWxzZQogICAgICAgICBzZWxmLndlYl9wcm9jZXNzX2NyYXNoID0gRmFs
c2UKICAgICAgICAgc2VsZi5leGNlcHRpb24gPSBGYWxzZQpAQCAtMTgyLDYgKzE4Miw5IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDM0CiAgICAgIyBGb3IgcmVmdGVzdHMuCiAgICAgdGVzdHMu
YWRkX3JlZnRlc3QoJ3Bhc3Nlcy9yZWZ0ZXN0Lmh0bWwnLCAncGFzc2VzL3JlZnRlc3QtZXhwZWN0
ZWQuaHRtbCcsIHNhbWVfaW1hZ2U9VHJ1ZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgncGFzc2Vz
L21pc21hdGNoLmh0bWwnLCAncGFzc2VzL21pc21hdGNoLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwn
LCBzYW1lX2ltYWdlPUZhbHNlKQorICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdwYXNzZXMvc3ZncmVm
dGVzdC5zdmcnLCAncGFzc2VzL3N2Z3JlZnRlc3QtZXhwZWN0ZWQuc3ZnJywgc2FtZV9pbWFnZT1U
cnVlKQorICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdwYXNzZXMveGh0cmVmdGVzdC54aHQnLCAncGFz
c2VzL3hodHJlZnRlc3QtZXhwZWN0ZWQuaHRtbCcsIHNhbWVfaW1hZ2U9VHJ1ZSkKKyAgICB0ZXN0
cy5hZGRfcmVmdGVzdCgncGFzc2VzL3BocHJlZnRlc3QucGhwJywgJ3Bhc3Nlcy9waHByZWZ0ZXN0
LWV4cGVjdGVkLW1pc21hdGNoLnN2ZycsIHNhbWVfaW1hZ2U9RmFsc2UpCiAgICAgdGVzdHMuYWRk
X3JlZnRlc3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QuaHRtbCcsICdmYWlsdXJlcy9leHBl
Y3RlZC9yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPUZhbHNlKQogICAgIHRlc3Rz
LmFkZF9yZWZ0ZXN0KCdmYWlsdXJlcy9leHBlY3RlZC9taXNtYXRjaC5odG1sJywgJ2ZhaWx1cmVz
L2V4cGVjdGVkL21pc21hdGNoLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnLCBzYW1lX2ltYWdlPVRy
dWUpCiAgICAgdGVzdHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC5o
dG1sJywgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC1leHBlY3RlZC5odG1sJywgc2FtZV9p
bWFnZT1GYWxzZSkKQEAgLTI5Miw3ICsyOTUsNyBAQCBXT05URklYIFNLSVAgOiBmYWlsdXJlcy9l
eHBlY3RlZC9leGNlcHRpCiAgICAgIyBBZGQgZWFjaCB0ZXN0IGFuZCB0aGUgZXhwZWN0ZWQgb3V0
cHV0LCBpZiBhbnkuCiAgICAgdGVzdF9saXN0ID0gdW5pdF90ZXN0X2xpc3QoKQogICAgIGZvciB0
ZXN0IGluIHRlc3RfbGlzdC50ZXN0cy52YWx1ZXMoKToKLSAgICAgICAgYWRkX2ZpbGUodGVzdCwg
Jy5odG1sJywgJycpCisgICAgICAgIGFkZF9maWxlKHRlc3QsIHRlc3QubmFtZVt0ZXN0Lm5hbWUu
cmZpbmQoJy4nKTpdLCAnJykKICAgICAgICAgaWYgdGVzdC5pc19yZWZ0ZXN0OgogICAgICAgICAg
ICAgY29udGludWUKICAgICAgICAgaWYgdGVzdC5hY3R1YWxfYXVkaW86Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125379</attachid>
            <date>2012-02-03 12:08:47 -0800</date>
            <delta_ts>2012-02-03 13:48:40 -0800</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-77685-20120203120846.patch</filename>
            <type>text/plain</type>
            <size>9848</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwNjY0NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDEyLTAyLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIFJlZiBUZXN0cyBzaG91bGQgc3VwcG9ydCBwbGFpbiBTVkcgZmlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3Njg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgYXNzdW1lIHJl
ZmVyZW5jZSBmaWxlcyBhbHdheXMgdXNlIC5odG1sIGFzIHRoZSBleHRlbnNpb24uCisgICAgICAg
IEluc3RlYWQsIHVzZSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZXh0ZW5zaW9uIHRvIGxvb2sgZm9y
IC1leHBlY3RlZC4qIGFuZCAtbWlzbWF0Y2guKgorCisgICAgICAgIEFsc28gZml4IHZhcmlvdXMg
YnVncyBpbiBNb2NrRmlsZVN5c3RlbSBhbmQgVGVzdFBvcnQuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5OgorICAgICAgICAoTW9j
a0ZpbGVTeXN0ZW0uaXNkaXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQucmVmZXJlbmNlX2ZpbGVzKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHk6
CisgICAgICAgIChQb3J0VGVzdC50ZXN0X2lzX3Rlc3RfZmlsZSk6CisgICAgICAgIChQb3J0VGVz
dC50ZXN0X3JlZmVyZW5jZV9maWxlcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAoVGVzdEluc3RhbmNlLl9faW5pdF9fKToK
KwogMjAxMi0wMi0wMiAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIGFkZCBzdXBwb3J0IGZvciAtLW1ha2VhcmdzIHRvIHRoZSBuaW5q
YS1iYXNlZCBidWlsZApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L2ZpbGVzeXN0ZW1fbW9jay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CShyZXZpc2lvbiAxMDY2MjQpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0xODAsNyArMTgwLDcgQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2Jq
ZWN0KToKICAgICAgICAgIyB0byBhIGRpZmZlcmVudCB0aHJlYWQgYW5kIHBvdGVudGlhbGx5IG1v
ZGlmeWluZyB0aGUgZGljdCBpbgogICAgICAgICAjIG1pZC1pdGVyYXRpb24uCiAgICAgICAgIGZp
bGVzID0gc2VsZi5maWxlcy5rZXlzKClbOl0KLSAgICAgICAgcmVzdWx0ID0gYW55KGYuc3RhcnRz
d2l0aChwYXRoKSBmb3IgZiBpbiBmaWxlcykKKyAgICAgICAgcmVzdWx0ID0gYW55KGYuc3RhcnRz
d2l0aChwYXRoKSBhbmQgbGVuKHNlbGYuc3BsaXQoZilbMF0pID49IGxlbihwYXRoKSBmb3IgZiBp
biBmaWxlcykKICAgICAgICAgaWYgcmVzdWx0OgogICAgICAgICAgICAgc2VsZi5kaXJzLmFkZChw
YXRoKQogICAgICAgICByZXR1cm4gcmVzdWx0CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CShyZXZpc2lvbiAxMDY2MjQpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2OCwxOSArNDY4LDE2IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgICAg
ICByZWZ0ZXN0X2xpc3QgPSBzZWxmLl9nZXRfcmVmdGVzdF9saXN0KHRlc3RfbmFtZSkKICAgICAg
ICAgaWYgbm90IHJlZnRlc3RfbGlzdDoKLSAgICAgICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1lcyA9
IFsoJz09Jywgc2VsZi5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICcuaHRtbCcpKSwgKCch
PScsIHNlbGYuZXhwZWN0ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLW1pc21hdGNoLmh0bWwnKSld
Ci0gICAgICAgICAgICByZXR1cm4gWyhleHBlY3RhdGlvbiwgZmlsZW5hbWUpIGZvciBleHBlY3Rh
dGlvbiwgZmlsZW5hbWUgaW4gZXhwZWN0ZWRfZmlsZW5hbWVzIGlmIHNlbGYuX2ZpbGVzeXN0ZW0u
ZXhpc3RzKGZpbGVuYW1lKV0KKyAgICAgICAgICAgIHJlZnRlc3RfbGlzdCA9IFtdCisgICAgICAg
ICAgICBmb3IgZXhwZWN0YXRpb24sIHByZWZpeCBpbiAoKCc9PScsICcnKSwgKCchPScsICctbWlz
bWF0Y2gnKSk6CisgICAgICAgICAgICAgICAgZm9yIGV4dGVudGlvbiBpbiBQb3J0Ll9zdXBwb3J0
ZWRfZmlsZV9leHRlbnNpb25zOgorICAgICAgICAgICAgICAgICAgICBwYXRoID0gc2VsZi5leHBl
Y3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsIHByZWZpeCArIGV4dGVudGlvbikKKyAgICAgICAgICAg
ICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMocGF0aCk6CisgICAgICAgICAgICAg
ICAgICAgICAgICByZWZ0ZXN0X2xpc3QuYXBwZW5kKChleHBlY3RhdGlvbiwgcGF0aCkpCisgICAg
ICAgICAgICByZXR1cm4gcmVmdGVzdF9saXN0CiAKICAgICAgICAgcmV0dXJuIHJlZnRlc3RfbGlz
dC5nZXQoc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCB0ZXN0
X25hbWUpLCBbXSkKIAotICAgIGRlZiBpc19yZWZ0ZXN0KHNlbGYsIHRlc3RfbmFtZSk6Ci0gICAg
ICAgIHJlZnRlc3RfbGlzdCA9IHNlbGYuX2dldF9yZWZ0ZXN0X2xpc3QodGVzdF9uYW1lKQotICAg
ICAgICBpZiBub3QgcmVmdGVzdF9saXN0OgotICAgICAgICAgICAgaGFzX2V4cGVjdGVkID0gc2Vs
Zi5fZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICcu
aHRtbCcpKQotICAgICAgICAgICAgcmV0dXJuIGhhc19leHBlY3RlZCBvciBzZWxmLl9maWxlc3lz
dGVtLmV4aXN0cyhzZWxmLmV4cGVjdGVkX2ZpbGVuYW1lKHRlc3RfbmFtZSwgJy1taXNtYXRjaC5o
dG1sJykpCi0gICAgICAgIGZpbGVuYW1lID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYubGF5
b3V0X3Rlc3RzX2RpcigpLCB0ZXN0X25hbWUpCi0gICAgICAgIHJldHVybiBmaWxlbmFtZSBpbiBy
ZWZ0ZXN0X2xpc3QKLQogICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgICIiIlJl
dHVybiB0aGUgbGlzdCBvZiB0ZXN0cyBmb3VuZC4iIiIKICAgICAgICAgIyBXaGVuIGNvbGxlY3Rp
bmcgdGVzdCBjYXNlcywgc2tpcCB0aGVzZSBkaXJlY3RvcmllcwpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVz
dC5weQkocmV2aXNpb24gMTA2NjI0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsMTAgKzMy
NCwxNSBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZpbGVz
eXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQb3J0Ll9p
c190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28uaHRtbCcpKQogICAgICAgICBzZWxmLmFz
c2VydFRydWUoUG9ydC5faXNfdGVzdF9maWxlKGZpbGVzeXN0ZW0sICcnLCAnZm9vLnNodG1sJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQb3J0Ll9pc190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwg
JycsICdmb28uc3ZnJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQb3J0Ll9pc190ZXN0X2Zp
bGUoZmlsZXN5c3RlbSwgJycsICd0ZXN0LXJlZi10ZXN0Lmh0bWwnKSkKICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShQb3J0Ll9pc190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28ucG5nJykp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUG9ydC5faXNfdGVzdF9maWxlKGZpbGVzeXN0ZW0s
ICcnLCAnZm9vLWV4cGVjdGVkLmh0bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQb3J0
Ll9pc190ZXN0X2ZpbGUoZmlsZXN5c3RlbSwgJycsICdmb28tZXhwZWN0ZWQuc3ZnJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoUG9ydC5faXNfdGVzdF9maWxlKGZpbGVzeXN0ZW0sICcnLCAn
Zm9vLWV4cGVjdGVkLnhodCcpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFBvcnQuX2lzX3Rl
c3RfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3RlZC1taXNtYXRjaC5odG1sJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUG9ydC5faXNfdGVzdF9maWxlKGZpbGVzeXN0ZW0sICcn
LCAnZm9vLWV4cGVjdGVkLW1pc21hdGNoLnN2ZycpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1leHBlY3RlZC1taXNtYXRj
aC54aHRtbCcpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFBvcnQuX2lzX3Rlc3RfZmlsZShm
aWxlc3lzdGVtLCAnJywgJ2Zvby1yZWYuaHRtbCcpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAnJywgJ2Zvby1ub3RyZWYuaHRtbCcpKQog
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFBvcnQuX2lzX3Rlc3RfZmlsZShmaWxlc3lzdGVtLCAn
JywgJ2Zvby1ub3RyZWYueGh0JykpCkBAIC0zNTAsNiArMzU1LDEyIEBAIGNsYXNzIFBvcnRUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdiYXIvdGVzdC0yLmh0bWwnOiBbKCch
PScsICdiYXIvdGVzdC1ub3RyZWYuaHRtbCcpXSwKICAgICAgICAgICAgICdiYXIvdGVzdC0zLmh0
bWwnOiBbKCc9PScsICdiYXIvdGVzdC1yZWYuaHRtbCcpLCAoJz09JywgJ2Jhci90ZXN0LXJlZjIu
aHRtbCcpLCAoJyE9JywgJ2Jhci90ZXN0LW5vdHJlZi5odG1sJyldfSkKIAorICAgIGRlZiB0ZXN0
X3JlZmVyZW5jZV9maWxlcyhzZWxmKToKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHdp
dGhfdGVzdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJlZmVyZW5jZV9m
aWxlcygncGFzc2VzL3N2Z3JlZnRlc3Quc3ZnJyksIFsoJz09JywgJy90ZXN0LmNoZWNrb3V0L0xh
eW91dFRlc3RzL3Bhc3Nlcy9zdmdyZWZ0ZXN0LWV4cGVjdGVkLnN2ZycpXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwb3J0LnJlZmVyZW5jZV9maWxlcygncGFzc2VzL3hodHJlZnRlc3Quc3Zn
JyksIFsoJz09JywgJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Bhc3Nlcy94aHRyZWZ0ZXN0
LWV4cGVjdGVkLmh0bWwnKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5yZWZlcmVu
Y2VfZmlsZXMoJ3Bhc3Nlcy9waHByZWZ0ZXN0LnBocCcpLCBbKCchPScsICcvdGVzdC5jaGVja291
dC9MYXlvdXRUZXN0cy9wYXNzZXMvcGhwcmVmdGVzdC1leHBlY3RlZC1taXNtYXRjaC5zdmcnKV0p
CisKICAgICBkZWYgdGVzdF9vcGVyYXRpbmdfc3lzdGVtKHNlbGYpOgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdtYWMnLCBzZWxmLm1ha2VfcG9ydCgpLm9wZXJhdGluZ19zeXN0ZW0oKSkKIApJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L21vY2tfZHJ0LnB5CShyZXZpc2lvbiAxMDY2MjQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsNyAr
MjAzLDcgQEAgY2xhc3MgTW9ja0RSVChvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgdGVzdF9uYW1lID0gc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHVyaSkKIAot
ICAgICAgICBpc19yZWZ0ZXN0ID0gKHNlbGYuX3BvcnQuaXNfcmVmdGVzdCh0ZXN0X25hbWUpIG9y
CisgICAgICAgIGlzX3JlZnRlc3QgPSAoc2VsZi5fcG9ydC5yZWZlcmVuY2VfZmlsZXModGVzdF9u
YW1lKSBvcgogICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLWV4cGVj
dGVkLmh0bWwnKSBvcgogICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgn
LW1pc21hdGNoLmh0bWwnKSkKICAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwg
MCwgY2hlY2tzdW0sIGlzX3JlZnRlc3QpCkBAIC0yNjcsNyArMjY3LDcgQEAgY2xhc3MgTW9ja0No
cm9taXVtRFJUKE1vY2tEUlQpOgogICAgICAgICAgICAgY2hlY2tzdW0gPSBOb25lCiAKICAgICAg
ICAgdGVzdF9uYW1lID0gc2VsZi5fZHJpdmVyLnVyaV90b190ZXN0KHVyaSkKLSAgICAgICAgaXNf
cmVmdGVzdCA9IChzZWxmLl9wb3J0LmlzX3JlZnRlc3QodGVzdF9uYW1lKSBvcgorICAgICAgICBp
c19yZWZ0ZXN0ID0gKHNlbGYuX3BvcnQucmVmZXJlbmNlX2ZpbGVzKHRlc3RfbmFtZSkgb3IKICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUuZW5kc3dpdGgoJy1leHBlY3RlZC5odG1sJykg
b3IKICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUuZW5kc3dpdGgoJy1taXNtYXRjaC5o
dG1sJykpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3QucHkJKHJldmlzaW9uIDEwNjYyNCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQs
NyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tCiBjbGFzcyBUZXN0
SW5zdGFuY2Uob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CiAgICAgICAg
IHNlbGYubmFtZSA9IG5hbWUKLSAgICAgICAgc2VsZi5iYXNlID0gbmFtZVsobmFtZS5yZmluZCgi
LyIpICsgMSk6bmFtZS5yZmluZCgiLmh0bWwiKV0KKyAgICAgICAgc2VsZi5iYXNlID0gbmFtZVso
bmFtZS5yZmluZCgiLyIpICsgMSk6bmFtZS5yZmluZCgiLiIpXQogICAgICAgICBzZWxmLmNyYXNo
ID0gRmFsc2UKICAgICAgICAgc2VsZi53ZWJfcHJvY2Vzc19jcmFzaCA9IEZhbHNlCiAgICAgICAg
IHNlbGYuZXhjZXB0aW9uID0gRmFsc2UKQEAgLTE4Miw2ICsxODIsOSBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHgzNAogICAgICMgRm9yIHJlZnRlc3RzLgogICAgIHRlc3RzLmFkZF9yZWZ0ZXN0
KCdwYXNzZXMvcmVmdGVzdC5odG1sJywgJ3Bhc3Nlcy9yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBz
YW1lX2ltYWdlPVRydWUpCiAgICAgdGVzdHMuYWRkX3JlZnRlc3QoJ3Bhc3Nlcy9taXNtYXRjaC5o
dG1sJywgJ3Bhc3Nlcy9taXNtYXRjaC1leHBlY3RlZC1taXNtYXRjaC5odG1sJywgc2FtZV9pbWFn
ZT1GYWxzZSkKKyAgICB0ZXN0cy5hZGRfcmVmdGVzdCgncGFzc2VzL3N2Z3JlZnRlc3Quc3ZnJywg
J3Bhc3Nlcy9zdmdyZWZ0ZXN0LWV4cGVjdGVkLnN2ZycsIHNhbWVfaW1hZ2U9VHJ1ZSkKKyAgICB0
ZXN0cy5hZGRfcmVmdGVzdCgncGFzc2VzL3hodHJlZnRlc3QueGh0JywgJ3Bhc3Nlcy94aHRyZWZ0
ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPVRydWUpCisgICAgdGVzdHMuYWRkX3JlZnRl
c3QoJ3Bhc3Nlcy9waHByZWZ0ZXN0LnBocCcsICdwYXNzZXMvcGhwcmVmdGVzdC1leHBlY3RlZC1t
aXNtYXRjaC5zdmcnLCBzYW1lX2ltYWdlPUZhbHNlKQogICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdm
YWlsdXJlcy9leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVz
dC1leHBlY3RlZC5odG1sJywgc2FtZV9pbWFnZT1GYWxzZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVz
dCgnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzbWF0Y2guaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9t
aXNtYXRjaC1leHBlY3RlZC1taXNtYXRjaC5odG1sJywgc2FtZV9pbWFnZT1UcnVlKQogICAgIHRl
c3RzLmFkZF9yZWZ0ZXN0KCdmYWlsdXJlcy91bmV4cGVjdGVkL3JlZnRlc3QuaHRtbCcsICdmYWls
dXJlcy91bmV4cGVjdGVkL3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCcsIHNhbWVfaW1hZ2U9RmFsc2Up
CkBAIC0yOTIsNyArMjk1LDcgQEAgV09OVEZJWCBTS0lQIDogZmFpbHVyZXMvZXhwZWN0ZWQvZXhj
ZXB0aQogICAgICMgQWRkIGVhY2ggdGVzdCBhbmQgdGhlIGV4cGVjdGVkIG91dHB1dCwgaWYgYW55
LgogICAgIHRlc3RfbGlzdCA9IHVuaXRfdGVzdF9saXN0KCkKICAgICBmb3IgdGVzdCBpbiB0ZXN0
X2xpc3QudGVzdHMudmFsdWVzKCk6Ci0gICAgICAgIGFkZF9maWxlKHRlc3QsICcuaHRtbCcsICcn
KQorICAgICAgICBhZGRfZmlsZSh0ZXN0LCB0ZXN0Lm5hbWVbdGVzdC5uYW1lLnJmaW5kKCcuJyk6
XSwgJycpCiAgICAgICAgIGlmIHRlc3QuaXNfcmVmdGVzdDoKICAgICAgICAgICAgIGNvbnRpbnVl
CiAgICAgICAgIGlmIHRlc3QuYWN0dWFsX2F1ZGlvOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b19iZV9tb3ZlZC9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3JlYmFzZWxpbmVf
Y2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CShyZXZpc2lvbiAxMDY2MjQpCisrKyBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNyArMjQ3LDcgQEAgY2xhc3MgUmViYXNlbGluZXIo
b2JqZWN0KToKIAogICAgICAgICBmcyA9IHNlbGYuX3RhcmdldF9wb3J0Ll9maWxlc3lzdGVtCiAg
ICAgICAgIGZvciB0ZXN0IGluIHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0czoKLSAgICAgICAgICAg
IGlmIHNlbGYuX3RhcmdldF9wb3J0LmlzX3JlZnRlc3QodGVzdCk6CisgICAgICAgICAgICBpZiBz
ZWxmLl90YXJnZXRfcG9ydC5yZWZlcmVuY2VfZmlsZXModGVzdCk6CiAgICAgICAgICAgICAgICAg
X2xvZy5lcnJvcignJXMgc2VlbXMgdG8gYmUgYSByZWZ0ZXN0LiBXZSBjYW4gbm90IHJlYmFzZSBm
b3IgcmVmdGVzdHMuJywgdGVzdCkKICAgICAgICAgICAgICAgICBzZWxmLl9yZWJhc2VsaW5pbmdf
dGVzdHMgPSBzZXQoKQogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>