<?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>92693</bug_id>
          
          <creation_ts>2012-07-30 17:10:03 -0700</creation_ts>
          <short_desc>nrwt: split test-finding code out from manager.py</short_desc>
          <delta_ts>2012-07-30 18:02:24 -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>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>
          
          <blocked>89267</blocked>
    
    <blocked>92694</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>682543</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-30 17:10:03 -0700</bug_when>
    <thetext>nrwt: split test-finding code out from manager.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682544</commentid>
    <comment_count>1</comment_count>
      <attachid>155402</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-30 17:11:14 -0700</bug_when>
    <thetext>Created attachment 155402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682565</commentid>
    <comment_count>2</comment_count>
      <attachid>155402</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-30 17:31:56 -0700</bug_when>
    <thetext>Comment on attachment 155402
Patch

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

r=me provided the naming nits are addressed.

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/finder.py:38
&gt; +class Finder(object):

&quot;Finder&quot; is a very generic name. I would have named this TestsFinder or TestsEnumerator.

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/finder.py:64
&gt; +    def _read_test_files(self, filenames, test_path_separator):

_read_test_files is obnoxious name for what it does. Maybe _lint_test_files?

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/finder.py:73
&gt; +                    line = test_expectations.strip_comments(line)

Why are we calling a function in test_expectations!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682578</commentid>
    <comment_count>3</comment_count>
      <attachid>155410</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-30 17:56:26 -0700</bug_when>
    <thetext>Created attachment 155410
update names, move strip_comments after review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682579</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-30 18:00:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 155402 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155402&amp;action=review
&gt; 
&gt; r=me provided the naming nits are addressed.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/controllers/finder.py:38
&gt; &gt; +class Finder(object):
&gt; 
&gt; &quot;Finder&quot; is a very generic name. I would have named this TestsFinder or TestsEnumerator.
&gt; 

Thanks for the review!

I&apos;ve renamed the class to LayoutTestFinder. We have too many kinds of tests for TestFinder to work.

Also, as discussed it would be good to rename the file to layout_test_finder to match the class name, but I&apos;ll do that at the end of this series of patches to avoid having to rebase six more patches :).

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/controllers/finder.py:64
&gt; &gt; +    def _read_test_files(self, filenames, test_path_separator):
&gt; 
&gt; _read_test_files is obnoxious name for what it does. Maybe _lint_test_files?
&gt;

As discussed on IRC, this isn&apos;t linting anything, this is reading in a text file containing a list of test names (as specified via --test-file) and parsing it. Renamed to _read_test_names_from_file.
 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/controllers/finder.py:73
&gt; &gt; +                    line = test_expectations.strip_comments(line)
&gt; 
&gt; Why are we calling a function in test_expectations!?

This used to be shared between manager and test_expectations, but apparently they rewrote the calling code in test expectations but didn&apos;t bother to move this to manager; I&apos;ve moved it to Finder now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682580</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-30 18:02:24 -0700</bug_when>
    <thetext>Committed r124131: &lt;http://trac.webkit.org/changeset/124131&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155402</attachid>
            <date>2012-07-30 17:11:14 -0700</date>
            <delta_ts>2012-07-30 17:56:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92693-20120730171058.patch</filename>
            <type>text/plain</type>
            <size>8492</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTE2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjVlZGQyZGM0NDdjZWE2ZmEyMjU1MTAwM2JkOTk1MTE1
ZjlmZDA0Yy4uYzYzMTQ4ZjE2OTE5MzAwMWM3MTk4ZDIyNTY1OTU2OWJiNThjNjhlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4
IEBACiAyMDEyLTA3LTMwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHNwbGl0IHRlc3QtZmluZGluZyBjb2RlIG91dCBmcm9tIG1hbmFnZXIucHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhlIGlu
dGVyZXN0IG9mIG1ha2luZyBtYW5hZ2VyLnB5IHNtYWxsZXIsIHRoaXMgcGF0Y2ggbW92ZXMKKyAg
ICAgICAgdGhlIGNvZGUgdGhhdCBhY3R1YWxseSB0YWtlcyB0aGUgY29tbWFuZCBsaW5lIGFyZ3Vt
ZW50cyBhbmQKKyAgICAgICAgLS10ZXN0LWZpbGUgbGlzdHMgb2YgdGVzdHMgdG8gcnVuIGFuZCBl
eHBhbmRzIHRoZW0gaW50byBhbgorICAgICAgICBhY3R1YWwgbGlzdCBvZiB0ZXN0cyBvdXQgaW50
byBhIHNlcGFyYXRlIG1vZHVsZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2ZpbmRlci5weTogQWRkZWQuCisgICAgICAgIChGaW5kZXIpOgor
ICAgICAgICAoRmluZGVyLl9faW5pdF9fKToKKyAgICAgICAgKEZpbmRlci5maW5kX3Rlc3RzKToK
KyAgICAgICAgKEZpbmRlci5fc3RyaXBfdGVzdF9kaXJfcHJlZml4ZXMpOgorICAgICAgICAoRmlu
ZGVyLl9zdHJpcF90ZXN0X2Rpcl9wcmVmaXgpOgorICAgICAgICAoRmluZGVyLl9yZWFkX3Rlc3Rf
ZmlsZXMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL21hbmFnZXIucHk6CisgICAgICAgIChNYW5hZ2VyLl9jb2xsZWN0X3Rlc3RzKToKKyAgICAg
ICAgKE1hbmFnZXIuX2hhbmRsZV9maW5pc2hlZF90ZXN0KToKKworMjAxMi0wNy0zMCAgRGlyayBQ
cmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICBucnd0OiBjbGVhbiB1cCBo
YW5kbGluZyBvZiAnZXhwZWN0ZWQnIHN0YXRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MjUyNwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9maW5kZXIucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9maW5kZXIucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDkxMDAxZTNjN2FhZDE2NjkwZDM4NzdlM2U1MWZkOTM2MzY5NDQ1MgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2ZpbmRl
ci5weQpAQCAtMCwwICsxLDgxIEBACisjIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisj
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGVycm5vCitp
bXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0
IHRlc3RfZXhwZWN0YXRpb25zCisKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQorCisKK2NsYXNzIEZpbmRlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0
KToKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9
IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtCisgICAgICAgIHNlbGYuTEFZT1VUX1RFU1RTX0RJ
UkVDVE9SWSA9ICdMYXlvdXRUZXN0cycKKworICAgIGRlZiBmaW5kX3Rlc3RzKHNlbGYsIG9wdGlv
bnMsIGFyZ3MpOgorICAgICAgICBwYXRocyA9IHNlbGYuX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVz
KGFyZ3MpCisgICAgICAgIGlmIG9wdGlvbnMudGVzdF9saXN0OgorICAgICAgICAgICAgcGF0aHMg
Kz0gc2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4ZXMoc2VsZi5fcmVhZF90ZXN0X2ZpbGVzKG9w
dGlvbnMudGVzdF9saXN0LCBzZWxmLl9wb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IpKQorICAgICAg
ICBwYXRocyA9IHNldChwYXRocykKKyAgICAgICAgdGVzdF9maWxlcyA9IHNlbGYuX3BvcnQudGVz
dHMocGF0aHMpCisgICAgICAgIHJldHVybiAocGF0aHMsIHRlc3RfZmlsZXMpCisKKyAgICBkZWYg
X3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVzKHNlbGYsIHBhdGhzKToKKyAgICAgICAgcmV0dXJuIFtz
ZWxmLl9zdHJpcF90ZXN0X2Rpcl9wcmVmaXgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHMgaWYgcGF0
aF0KKworICAgIGRlZiBfc3RyaXBfdGVzdF9kaXJfcHJlZml4KHNlbGYsIHBhdGgpOgorICAgICAg
ICAjIEhhbmRsZSBib3RoICJMYXlvdXRUZXN0cy9mb28vYmFyLmh0bWwiIGFuZCAiTGF5b3V0VGVz
dHNcZm9vXGJhci5odG1sIiBpZgorICAgICAgICAjIHRoZSBmaWxlc3lzdGVtIHVzZXMgJ1xcJyBh
cyBhIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisgICAgICAgIGlmIHBhdGguc3RhcnRzd2l0aChzZWxm
LkxBWU9VVF9URVNUU19ESVJFQ1RPUlkgKyBzZWxmLl9wb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1Ip
OgorICAgICAgICAgICAgcmV0dXJuIHBhdGhbbGVuKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9S
WSArIHNlbGYuX3BvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUik6XQorICAgICAgICBpZiBwYXRoLnN0
YXJ0c3dpdGgoc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZICsgc2VsZi5fZmlsZXN5c3RlbS5z
ZXApOgorICAgICAgICAgICAgcmV0dXJuIHBhdGhbbGVuKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVD
VE9SWSArIHNlbGYuX2ZpbGVzeXN0ZW0uc2VwKTpdCisgICAgICAgIHJldHVybiBwYXRoCisKKyAg
ICBkZWYgX3JlYWRfdGVzdF9maWxlcyhzZWxmLCBmaWxlbmFtZXMsIHRlc3RfcGF0aF9zZXBhcmF0
b3IpOgorICAgICAgICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0KKyAgICAgICAgdGVzdHMgPSBbXQor
ICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIGlmIHRlc3RfcGF0aF9zZXBhcmF0b3IgIT0gZnMuc2VwOgorICAgICAgICAg
ICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UodGVzdF9wYXRoX3NlcGFyYXRv
ciwgZnMuc2VwKQorICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmcy5yZWFkX3RleHRf
ZmlsZShmaWxlbmFtZSkuc3BsaXQoJ1xuJykKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBm
aWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgICAgICAgICBsaW5lID0gdGVzdF9leHBlY3RhdGlv
bnMuc3RyaXBfY29tbWVudHMobGluZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RzLmFwcGVuZChsaW5lKQorICAgICAgICAgICAgZXhj
ZXB0IElPRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9F
TlQ6CisgICAgICAgICAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJycpCisgICAgICAgICAgICAg
ICAgICAgIF9sb2cuY3JpdGljYWwoJy0tdGVzdC1saXN0IGZpbGUgIiVzIiBub3QgZm91bmQnICUg
ZmlsZSkKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICByZXR1cm4gdGVzdHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21h
bmFnZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyLnB5CmluZGV4IDJjYzA0OGFjMzMyYzhmOTlhZDM0MmQ1NzkxNTAwZWJmYjI0YTlk
NzUuLmUyNTYzNzcwM2I1OTZhMDM2MGI3YzI5OTRjYmU4MGMzZDA4OGMxYjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bWFuYWdlci5weQpAQCAtNDYsNiArNDYsNyBAQCBpbXBvcnQgdGltZQogCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbiBpbXBvcnQgbWVzc2FnZV9wb29sCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5j
b250cm9sbGVycyBpbXBvcnQgd29ya2VyCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250
cm9sbGVycy5maW5kZXIgaW1wb3J0IEZpbmRlcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
Y29udHJvbGxlcnMudGVzdF9yZXN1bHRfd3JpdGVyIGltcG9ydCBUZXN0UmVzdWx0V3JpdGVyCiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQganNvbl9sYXlv
dXRfcmVzdWx0c19nZW5lcmF0b3IKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9w
YWNrYWdlIGltcG9ydCBqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yCkBAIC0zMzYsMjMgKzMzNyw3IEBA
IGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICBhcmdzOiBsaXN0IG9mIHRlc3QgYXJn
dW1lbnRzIGZyb20gdGhlIGNvbW1hbmQgbGluZQogCiAgICAgICAgICIiIgotICAgICAgICBwYXRo
cyA9IHNlbGYuX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVzKGFyZ3MpCi0gICAgICAgIGlmIHNlbGYu
X29wdGlvbnMudGVzdF9saXN0OgotICAgICAgICAgICAgcGF0aHMgKz0gc2VsZi5fc3RyaXBfdGVz
dF9kaXJfcHJlZml4ZXMocmVhZF90ZXN0X2ZpbGVzKHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX29w
dGlvbnMudGVzdF9saXN0LCBzZWxmLl9wb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IpKQotICAgICAg
ICBzZWxmLl9wYXRocyA9IHNldChwYXRocykKLSAgICAgICAgc2VsZi5fdGVzdF9maWxlcyA9IHNl
bGYuX3BvcnQudGVzdHMocGF0aHMpCi0KLSAgICBkZWYgX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVz
KHNlbGYsIHBhdGhzKToKLSAgICAgICAgcmV0dXJuIFtzZWxmLl9zdHJpcF90ZXN0X2Rpcl9wcmVm
aXgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHMgaWYgcGF0aF0KLQotICAgIGRlZiBfc3RyaXBfdGVz
dF9kaXJfcHJlZml4KHNlbGYsIHBhdGgpOgotICAgICAgICAjIEhhbmRsZSBib3RoICJMYXlvdXRU
ZXN0cy9mb28vYmFyLmh0bWwiIGFuZCAiTGF5b3V0VGVzdHNcZm9vXGJhci5odG1sIiBpZgotICAg
ICAgICAjIHRoZSBmaWxlc3lzdGVtIHVzZXMgJ1xcJyBhcyBhIGRpcmVjdG9yeSBzZXBhcmF0b3Iu
Ci0gICAgICAgIGlmIHBhdGguc3RhcnRzd2l0aChzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlkg
KyBzZWxmLl9wb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IpOgotICAgICAgICAgICAgcmV0dXJuIHBh
dGhbbGVuKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSArIHNlbGYuX3BvcnQuVEVTVF9QQVRI
X1NFUEFSQVRPUik6XQotICAgICAgICBpZiBwYXRoLnN0YXJ0c3dpdGgoc2VsZi5MQVlPVVRfVEVT
VFNfRElSRUNUT1JZICsgc2VsZi5fZmlsZXN5c3RlbS5zZXApOgotICAgICAgICAgICAgcmV0dXJu
IHBhdGhbbGVuKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSArIHNlbGYuX2ZpbGVzeXN0ZW0u
c2VwKTpdCi0gICAgICAgIHJldHVybiBwYXRoCisgICAgICAgIHNlbGYuX3BhdGhzLCBzZWxmLl90
ZXN0X2ZpbGVzID0gRmluZGVyKHNlbGYuX3BvcnQpLmZpbmRfdGVzdHMoc2VsZi5fb3B0aW9ucywg
YXJncykKIAogICAgIGRlZiBfaXNfaHR0cF90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICByZXR1
cm4gc2VsZi5IVFRQX1NVQkRJUiBpbiB0ZXN0IG9yIHNlbGYuV0VCU09DS0VUX1NVQkRJUiBpbiB0
ZXN0CkBAIC0xMTMxLDI1ICsxMTE2LDYgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAg
ICBzZWxmLl91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChzZWxmLl9jdXJyZW50X3Jlc3VsdF9z
dW1tYXJ5LCByZXN1bHQpCiAKIAotZGVmIHJlYWRfdGVzdF9maWxlcyhmcywgZmlsZW5hbWVzLCB0
ZXN0X3BhdGhfc2VwYXJhdG9yKToKLSAgICB0ZXN0cyA9IFtdCi0gICAgZm9yIGZpbGVuYW1lIGlu
IGZpbGVuYW1lczoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgdGVzdF9wYXRoX3NlcGFy
YXRvciAhPSBmcy5zZXA6Ci0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZS5yZXBs
YWNlKHRlc3RfcGF0aF9zZXBhcmF0b3IsIGZzLnNlcCkKLSAgICAgICAgICAgIGZpbGVfY29udGVu
dHMgPSBmcy5yZWFkX3RleHRfZmlsZShmaWxlbmFtZSkuc3BsaXQoJ1xuJykKLSAgICAgICAgICAg
IGZvciBsaW5lIGluIGZpbGVfY29udGVudHM6Ci0gICAgICAgICAgICAgICAgbGluZSA9IHRlc3Rf
ZXhwZWN0YXRpb25zLnN0cmlwX2NvbW1lbnRzKGxpbmUpCi0gICAgICAgICAgICAgICAgaWYgbGlu
ZToKLSAgICAgICAgICAgICAgICAgICAgdGVzdHMuYXBwZW5kKGxpbmUpCi0gICAgICAgIGV4Y2Vw
dCBJT0Vycm9yLCBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6Ci0g
ICAgICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnJykKLSAgICAgICAgICAgICAgICBfbG9nLmNy
aXRpY2FsKCctLXRlc3QtbGlzdCBmaWxlICIlcyIgbm90IGZvdW5kJyAlIGZpbGVuYW1lKQotICAg
ICAgICAgICAgcmFpc2UKLSAgICByZXR1cm4gdGVzdHMKLQotCiAjIEZJWE1FOiBUaGVzZSB0d28g
ZnJlZSBmdW5jdGlvbnMgYmVsb25nIGVpdGhlciBvbiBtYW5hZ2VyIChzaW5jZSBpdCdzIHRoZSBv
bmx5IG9uZQogIyB3aGljaCB1c2VzIHRoZW0pIG9yIGluIGEgZGlmZmVyZW50IGZpbGUgKGlmIHRo
ZXkgbmVlZCB0byBiZSByZS11c2VkKS4KIGRlZiB0ZXN0X2tleShwb3J0LCB0ZXN0X25hbWUpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155410</attachid>
            <date>2012-07-30 17:56:26 -0700</date>
            <delta_ts>2012-07-30 17:58:11 -0700</delta_ts>
            <desc>update names, move strip_comments after review feedback</desc>
            <filename>bug-92693-20120730175609.patch</filename>
            <type>text/plain</type>
            <size>10312</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTE2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjVlZGQyZGM0NDdjZWE2ZmEyMjU1MTAwM2JkOTk1MTE1
ZjlmZDA0Yy4uZDJkNWEwM2I1MGY2MTliZmRmZGVhZmI4ZTRhNjM1OWY3ZTIyMGNiZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMw
IEBACiAyMDEyLTA3LTMwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHNwbGl0IHRlc3QtZmluZGluZyBjb2RlIG91dCBmcm9tIG1hbmFnZXIucHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEluIHRoZSBpbnRl
cmVzdCBvZiBtYWtpbmcgbWFuYWdlci5weSBzbWFsbGVyLCB0aGlzIHBhdGNoIG1vdmVzCisgICAg
ICAgIHRoZSBjb2RlIHRoYXQgYWN0dWFsbHkgdGFrZXMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVu
dHMgYW5kCisgICAgICAgIC0tdGVzdC1maWxlIGxpc3RzIG9mIHRlc3RzIHRvIHJ1biBhbmQgZXhw
YW5kcyB0aGVtIGludG8gYW4KKyAgICAgICAgYWN0dWFsIGxpc3Qgb2YgdGVzdHMgb3V0IGludG8g
YSBzZXBhcmF0ZSBtb2R1bGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9maW5kZXIucHk6IEFkZGVkLgorICAgICAgICAoTGF5b3V0VGVzdEZp
bmRlcik6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyLl9faW5pdF9fKToKKyAgICAgICAgKExh
eW91dFRlc3RGaW5kZXIuZmluZF90ZXN0cyk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyLl9z
dHJpcF90ZXN0X2Rpcl9wcmVmaXhlcyk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyLl9zdHJp
cF90ZXN0X2Rpcl9wcmVmaXgpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5fcmVhZF90ZXN0
X25hbWVzX2Zyb21fZmlsZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIuX2NvbGxlY3RfdGVz
dHMpOgorICAgICAgICAoTWFuYWdlci5faGFuZGxlX2ZpbmlzaGVkX3Rlc3QpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5w
eToKKyAgICAgICAgKHN0cmlwX2NvbW1lbnRzKToKKworMjAxMi0wNy0zMCAgRGlyayBQcmFua2Ug
IDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICBucnd0OiBjbGVhbiB1cCBoYW5kbGlu
ZyBvZiAnZXhwZWN0ZWQnIHN0YXRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MjUyNwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9maW5kZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9maW5kZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDIxMDAw
YWVkOWU3NTYzOTI2MjMxYjVmMTMzZjI2OWJjZTA4NGMzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2ZpbmRlci5weQpA
QCAtMCwwICsxLDk0IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBGSVhNRTogcmVuYW1lIHRoaXMg
dG8gbGF5b3V0X3Rlc3RfZmluZGVyLnB5LgorCitpbXBvcnQgZXJybm8KK2ltcG9ydCBsb2dnaW5n
CitpbXBvcnQgcmUKKworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKwor
Y2xhc3MgTGF5b3V0VGVzdEZpbmRlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
b3J0KToKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bSA9IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtCisgICAgICAgIHNlbGYuTEFZT1VUX1RFU1RT
X0RJUkVDVE9SWSA9ICdMYXlvdXRUZXN0cycKKworICAgIGRlZiBmaW5kX3Rlc3RzKHNlbGYsIG9w
dGlvbnMsIGFyZ3MpOgorICAgICAgICBwYXRocyA9IHNlbGYuX3N0cmlwX3Rlc3RfZGlyX3ByZWZp
eGVzKGFyZ3MpCisgICAgICAgIGlmIG9wdGlvbnMudGVzdF9saXN0OgorICAgICAgICAgICAgcGF0
aHMgKz0gc2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4ZXMoc2VsZi5fcmVhZF90ZXN0X25hbWVz
X2Zyb21fZmlsZShvcHRpb25zLnRlc3RfbGlzdCwgc2VsZi5fcG9ydC5URVNUX1BBVEhfU0VQQVJB
VE9SKSkKKyAgICAgICAgcGF0aHMgPSBzZXQocGF0aHMpCisgICAgICAgIHRlc3RfZmlsZXMgPSBz
ZWxmLl9wb3J0LnRlc3RzKHBhdGhzKQorICAgICAgICByZXR1cm4gKHBhdGhzLCB0ZXN0X2ZpbGVz
KQorCisgICAgZGVmIF9zdHJpcF90ZXN0X2Rpcl9wcmVmaXhlcyhzZWxmLCBwYXRocyk6CisgICAg
ICAgIHJldHVybiBbc2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4KHBhdGgpIGZvciBwYXRoIGlu
IHBhdGhzIGlmIHBhdGhdCisKKyAgICBkZWYgX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeChzZWxmLCBw
YXRoKToKKyAgICAgICAgIyBIYW5kbGUgYm90aCAiTGF5b3V0VGVzdHMvZm9vL2Jhci5odG1sIiBh
bmQgIkxheW91dFRlc3RzXGZvb1xiYXIuaHRtbCIgaWYKKyAgICAgICAgIyB0aGUgZmlsZXN5c3Rl
bSB1c2VzICdcXCcgYXMgYSBkaXJlY3Rvcnkgc2VwYXJhdG9yLgorICAgICAgICBpZiBwYXRoLnN0
YXJ0c3dpdGgoc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZICsgc2VsZi5fcG9ydC5URVNUX1BB
VEhfU0VQQVJBVE9SKToKKyAgICAgICAgICAgIHJldHVybiBwYXRoW2xlbihzZWxmLkxBWU9VVF9U
RVNUU19ESVJFQ1RPUlkgKyBzZWxmLl9wb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IpOl0KKyAgICAg
ICAgaWYgcGF0aC5zdGFydHN3aXRoKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSArIHNlbGYu
X2ZpbGVzeXN0ZW0uc2VwKToKKyAgICAgICAgICAgIHJldHVybiBwYXRoW2xlbihzZWxmLkxBWU9V
VF9URVNUU19ESVJFQ1RPUlkgKyBzZWxmLl9maWxlc3lzdGVtLnNlcCk6XQorICAgICAgICByZXR1
cm4gcGF0aAorCisgICAgZGVmIF9yZWFkX3Rlc3RfbmFtZXNfZnJvbV9maWxlKHNlbGYsIGZpbGVu
YW1lcywgdGVzdF9wYXRoX3NlcGFyYXRvcik6CisgICAgICAgIGZzID0gc2VsZi5fZmlsZXN5c3Rl
bQorICAgICAgICB0ZXN0cyA9IFtdCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgdGVzdF9wYXRoX3NlcGFyYXRv
ciAhPSBmcy5zZXA6CisgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVw
bGFjZSh0ZXN0X3BhdGhfc2VwYXJhdG9yLCBmcy5zZXApCisgICAgICAgICAgICAgICAgZmlsZV9j
b250ZW50cyA9IGZzLnJlYWRfdGV4dF9maWxlKGZpbGVuYW1lKS5zcGxpdCgnXG4nKQorICAgICAg
ICAgICAgICAgIGZvciBsaW5lIGluIGZpbGVfY29udGVudHM6CisgICAgICAgICAgICAgICAgICAg
IGxpbmUgPSBzZWxmLl9zdHJpcF9jb21tZW50cyhsaW5lKQorICAgICAgICAgICAgICAgICAgICBp
ZiBsaW5lOgorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHMuYXBwZW5kKGxpbmUpCisgICAg
ICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAgICAgICAgICBpZiBlLmVycm5vID09
IGVycm5vLkVOT0VOVDoKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnJykKKyAg
ICAgICAgICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnLS10ZXN0LWxpc3QgZmlsZSAiJXMiIG5v
dCBmb3VuZCcgJSBmaWxlKQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIHJldHVybiB0
ZXN0cworCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfc3RyaXBfY29tbWVudHMobGluZSk6
CisgICAgICAgIGNvbW1lbnRJbmRleCA9IGxpbmUuZmluZCgnLy8nKQorICAgICAgICBpZiBjb21t
ZW50SW5kZXggaXMgLTE6CisgICAgICAgICAgICBjb21tZW50SW5kZXggPSBsZW4obGluZSkKKwor
ICAgICAgICBsaW5lID0gcmUuc3ViKHInXHMrJywgJyAnLCBsaW5lWzpjb21tZW50SW5kZXhdLnN0
cmlwKCkpCisgICAgICAgIGlmIGxpbmUgPT0gJyc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGxpbmUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5
CmluZGV4IDJjYzA0OGFjMzMyYzhmOTlhZDM0MmQ1NzkxNTAwZWJmYjI0YTlkNzUuLjZlZTc2NDE2
MWM1ODhjMDdkZTYzOWYyODRjNTU2ZTc3NjkxNTQyNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpA
QCAtNDYsNiArNDYsNyBAQCBpbXBvcnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBv
cnQgbWVzc2FnZV9wb29sCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycyBp
bXBvcnQgd29ya2VyCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5maW5k
ZXIgaW1wb3J0IExheW91dFRlc3RGaW5kZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmNv
bnRyb2xsZXJzLnRlc3RfcmVzdWx0X3dyaXRlciBpbXBvcnQgVGVzdFJlc3VsdFdyaXRlcgogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IGpzb25fbGF5b3V0
X3Jlc3VsdHNfZ2VuZXJhdG9yCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFj
a2FnZSBpbXBvcnQganNvbl9yZXN1bHRzX2dlbmVyYXRvcgpAQCAtMzMwLDI5ICszMzEsNyBAQCBj
bGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1h
cnkgPSBOb25lCiAKICAgICBkZWYgX2NvbGxlY3RfdGVzdHMoc2VsZiwgYXJncyk6Ci0gICAgICAg
ICIiIkZpbmQgYWxsIHRoZSBmaWxlcyB0byB0ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAg
ICAgYXJnczogbGlzdCBvZiB0ZXN0IGFyZ3VtZW50cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKLQot
ICAgICAgICAiIiIKLSAgICAgICAgcGF0aHMgPSBzZWxmLl9zdHJpcF90ZXN0X2Rpcl9wcmVmaXhl
cyhhcmdzKQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnRlc3RfbGlzdDoKLSAgICAgICAgICAg
IHBhdGhzICs9IHNlbGYuX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVzKHJlYWRfdGVzdF9maWxlcyhz
ZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9vcHRpb25zLnRlc3RfbGlzdCwgc2VsZi5fcG9ydC5URVNU
X1BBVEhfU0VQQVJBVE9SKSkKLSAgICAgICAgc2VsZi5fcGF0aHMgPSBzZXQocGF0aHMpCi0gICAg
ICAgIHNlbGYuX3Rlc3RfZmlsZXMgPSBzZWxmLl9wb3J0LnRlc3RzKHBhdGhzKQotCi0gICAgZGVm
IF9zdHJpcF90ZXN0X2Rpcl9wcmVmaXhlcyhzZWxmLCBwYXRocyk6Ci0gICAgICAgIHJldHVybiBb
c2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4KHBhdGgpIGZvciBwYXRoIGluIHBhdGhzIGlmIHBh
dGhdCi0KLSAgICBkZWYgX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeChzZWxmLCBwYXRoKToKLSAgICAg
ICAgIyBIYW5kbGUgYm90aCAiTGF5b3V0VGVzdHMvZm9vL2Jhci5odG1sIiBhbmQgIkxheW91dFRl
c3RzXGZvb1xiYXIuaHRtbCIgaWYKLSAgICAgICAgIyB0aGUgZmlsZXN5c3RlbSB1c2VzICdcXCcg
YXMgYSBkaXJlY3Rvcnkgc2VwYXJhdG9yLgotICAgICAgICBpZiBwYXRoLnN0YXJ0c3dpdGgoc2Vs
Zi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZICsgc2VsZi5fcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9S
KToKLSAgICAgICAgICAgIHJldHVybiBwYXRoW2xlbihzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RP
UlkgKyBzZWxmLl9wb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IpOl0KLSAgICAgICAgaWYgcGF0aC5z
dGFydHN3aXRoKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSArIHNlbGYuX2ZpbGVzeXN0ZW0u
c2VwKToKLSAgICAgICAgICAgIHJldHVybiBwYXRoW2xlbihzZWxmLkxBWU9VVF9URVNUU19ESVJF
Q1RPUlkgKyBzZWxmLl9maWxlc3lzdGVtLnNlcCk6XQotICAgICAgICByZXR1cm4gcGF0aAorICAg
ICAgICBzZWxmLl9wYXRocywgc2VsZi5fdGVzdF9maWxlcyA9IExheW91dFRlc3RGaW5kZXIoc2Vs
Zi5fcG9ydCkuZmluZF90ZXN0cyhzZWxmLl9vcHRpb25zLCBhcmdzKQogCiAgICAgZGVmIF9pc19o
dHRwX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJldHVybiBzZWxmLkhUVFBfU1VCRElSIGlu
IHRlc3Qgb3Igc2VsZi5XRUJTT0NLRVRfU1VCRElSIGluIHRlc3QKQEAgLTExMzEsMjUgKzExMTAs
NiBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdW1tYXJ5
X3dpdGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnksIHJlc3VsdCkKIAogCi1k
ZWYgcmVhZF90ZXN0X2ZpbGVzKGZzLCBmaWxlbmFtZXMsIHRlc3RfcGF0aF9zZXBhcmF0b3IpOgot
ICAgIHRlc3RzID0gW10KLSAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBpZiB0ZXN0X3BhdGhfc2VwYXJhdG9yICE9IGZzLnNlcDoKLSAgICAg
ICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UodGVzdF9wYXRoX3NlcGFyYXRv
ciwgZnMuc2VwKQotICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IGZzLnJlYWRfdGV4dF9maWxl
KGZpbGVuYW1lKS5zcGxpdCgnXG4nKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gZmlsZV9jb250
ZW50czoKLSAgICAgICAgICAgICAgICBsaW5lID0gdGVzdF9leHBlY3RhdGlvbnMuc3RyaXBfY29t
bWVudHMobGluZSkKLSAgICAgICAgICAgICAgICBpZiBsaW5lOgotICAgICAgICAgICAgICAgICAg
ICB0ZXN0cy5hcHBlbmQobGluZSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6Ci0gICAgICAg
ICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgICAgICBfbG9nLmNy
aXRpY2FsKCcnKQotICAgICAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJy0tdGVzdC1saXN0IGZp
bGUgIiVzIiBub3QgZm91bmQnICUgZmlsZW5hbWUpCi0gICAgICAgICAgICByYWlzZQotICAgIHJl
dHVybiB0ZXN0cwotCi0KICMgRklYTUU6IFRoZXNlIHR3byBmcmVlIGZ1bmN0aW9ucyBiZWxvbmcg
ZWl0aGVyIG9uIG1hbmFnZXIgKHNpbmNlIGl0J3MgdGhlIG9ubHkgb25lCiAjIHdoaWNoIHVzZXMg
dGhlbSkgb3IgaW4gYSBkaWZmZXJlbnQgZmlsZSAoaWYgdGhleSBuZWVkIHRvIGJlIHJlLXVzZWQp
LgogZGVmIHRlc3Rfa2V5KHBvcnQsIHRlc3RfbmFtZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlv
bnMucHkKaW5kZXggYjk0YjgzMmI1ZWY0ODRhMmM1NTMxMjMzNzQyZDQ2ZjhjZGRjZjg0My4uOGVl
ODdiM2M3ZDA4ZDUyOTUyZTAyMGE0OTNmYzc0MTM2N2Y1ZjA4YiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4
cGVjdGF0aW9ucy5weQpAQCAtOTYsMjMgKzk2LDYgQEAgZGVmIHN1ZmZpeGVzX2Zvcl9leHBlY3Rh
dGlvbnMoZXhwZWN0YXRpb25zKToKICAgICByZXR1cm4gc2V0KHN1ZmZpeGVzKQogCiAKLSMgRklY
TUU6IFRoaXMgbWV0aG9kIGlzIG5vIGxvbmdlciB1c2VkIGhlcmUgaW4gdGhpcyBtb2R1bGUuIFJl
bW92ZSByZW1haW5pbmcgY2FsbHNpdGUgaW4gbWFuYWdlci5weSBhbmQgdGhpcyBtZXRob2QuCi1k
ZWYgc3RyaXBfY29tbWVudHMobGluZSk6Ci0gICAgIiIiU3RyaXBzIGNvbW1lbnRzIGZyb20gYSBs
aW5lIGFuZCByZXR1cm4gTm9uZSBpZiB0aGUgbGluZSBpcyBlbXB0eQotICAgIG9yIGVsc2UgdGhl
IGNvbnRlbnRzIG9mIGxpbmUgd2l0aCBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMgcmVtb3Zl
ZAotICAgIGFuZCBhbGwgb3RoZXIgd2hpdGVzcGFjZSBjb2xsYXBzZWQiIiIKLQotICAgIGNvbW1l
bnRJbmRleCA9IGxpbmUuZmluZCgnLy8nKQotICAgIGlmIGNvbW1lbnRJbmRleCBpcyAtMToKLSAg
ICAgICAgY29tbWVudEluZGV4ID0gbGVuKGxpbmUpCi0KLSAgICBsaW5lID0gcmUuc3ViKHInXHMr
JywgJyAnLCBsaW5lWzpjb21tZW50SW5kZXhdLnN0cmlwKCkpCi0gICAgaWYgbGluZSA9PSAnJzoK
LSAgICAgICAgcmV0dXJuIE5vbmUKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gbGluZQotCi0K
IGNsYXNzIFBhcnNlRXJyb3IoRXhjZXB0aW9uKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgd2Fy
bmluZ3MpOgogICAgICAgICBzdXBlcihQYXJzZUVycm9yLCBzZWxmKS5fX2luaXRfXygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>