<?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>96205</bug_id>
          
          <creation_ts>2012-09-09 06:36:25 -0700</creation_ts>
          <short_desc>TestExpectationsChecker._determine_port_from_expectations_path() does not support cascaded TestExpectations</short_desc>
          <delta_ts>2012-09-10 15:21:47 -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>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>96204</blocked>
    
    <blocked>96208</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</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>715490</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-09 06:36:25 -0700</bug_when>
    <thetext>TestExpectationsChecker._determine_port_from_expectations_path() currently uses port.path_to_test_expectations_file() instead of port.expectations_files(), which means that it considers only 1 TestExpectations file per port. This leads to problems for ports (such as EFL) that support cascaded TestExpectations.

This leads to errors such as this one with the style checker:
LayoutTests/platform/efl-wk1/TestExpectations:1:  No port uses path LayoutTests/platform/efl-wk1/TestExpectations for test_expectations  [test/expectations] [5]
Total errors found: 1 in 2 files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715491</commentid>
    <comment_count>1</comment_count>
      <attachid>162994</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-09 06:39:56 -0700</bug_when>
    <thetext>Created attachment 162994
Patch

Does not cause any regression:

$ ./Tools/Scripts/test-webkitpy
Suppressing most webkitpy logging while running unit tests.
Skipping tests in the following modules or packages because they are really, really, slow:
    webkitpy.common.checkout.scm.scm_unittest
    (https://bugs.webkit.org/show_bug.cgi?id=31818; use --all to include)

Ran 1615 tests in 11.699s                                                                                                                                   

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716183</commentid>
    <comment_count>2</comment_count>
      <attachid>162994</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 09:54:42 -0700</bug_when>
    <thetext>Comment on attachment 162994
Patch

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

&gt; Tools/Scripts/webkitpy/style/checkers/test_expectations.py:57
&gt; +            for test_expectation_file in port.expectations_files():
&gt; +                if test_expectation_file.replace(port.path_from_webkit_base() + host.filesystem.sep, &apos;&apos;) == expectations_path:
&gt; +                    return port

I don&apos;t see how this change causes us to consider more TestExpectations files per port.  It looks like this is just causing us to use a different port.

Is the problem that you&apos;re editing efl-wk2/TestExpectations and it&apos;s not checking the file (because it&apos;s only looking at efl/TestExpectations)?  It would be clearer if you added a unittest demonstrating the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716279</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-10 11:02:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 162994 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162994&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/style/checkers/test_expectations.py:57
&gt; &gt; +            for test_expectation_file in port.expectations_files():
&gt; &gt; +                if test_expectation_file.replace(port.path_from_webkit_base() + host.filesystem.sep, &apos;&apos;) == expectations_path:
&gt; &gt; +                    return port
&gt; 
&gt; I don&apos;t see how this change causes us to consider more TestExpectations files per port.  It looks like this is just causing us to use a different port.
&gt; 
&gt; Is the problem that you&apos;re editing efl-wk2/TestExpectations and it&apos;s not checking the file (because it&apos;s only looking at efl/TestExpectations)?  It would be clearer if you added a unittest demonstrating the problem.

The problem is that, whenever we add a test to efl-wk2/TestExpectations or efl-wk1/TestExpectations, the style checker will complain that those TestExpectations files are not used by any port. This is quite annoying as the cq will reject our gardening patches and we currently need to commit them manually.

I don&apos;t understand your comment frankly. I don&apos;t see why my change could cause us to use a different port. Basically, instead of considering the output of port.path_to_test_expectations_file() for each port, I iterate over the list returned by port.expectations_files(). The default implementation of port.expectations_files() will return [path_to_test_expectations_file(),] so this won&apos;t change anything for ports using the default implementation. However, for ports such as EFL that redefine expectations_files(), it will cause the function to properly recognize efl-wk2/TestExpectations or efl-wk1/TestExpectations as belonging to EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716308</commentid>
    <comment_count>4</comment_count>
      <attachid>162994</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 11:24:06 -0700</bug_when>
    <thetext>Comment on attachment 162994
Patch

(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 162994 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162994&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/style/checkers/test_expectations.py:57
&gt; &gt; &gt; +            for test_expectation_file in port.expectations_files():
&gt; &gt; &gt; +                if test_expectation_file.replace(port.path_from_webkit_base() + host.filesystem.sep, &apos;&apos;) == expectations_path:
&gt; &gt; &gt; +                    return port
&gt; &gt; 
&gt; &gt; I don&apos;t see how this change causes us to consider more TestExpectations files per port.  It looks like this is just causing us to use a different port.
&gt; &gt; 
&gt; &gt; Is the problem that you&apos;re editing efl-wk2/TestExpectations and it&apos;s not checking the file (because it&apos;s only looking at efl/TestExpectations)?  It would be clearer if you added a unittest demonstrating the problem.
&gt; 
&gt; The problem is that, whenever we add a test to efl-wk2/TestExpectations or efl-wk1/TestExpectations, the style checker will complain that those TestExpectations files are not used by any port.

Thank you, this is what I didn&apos;t understand.  I thought you were saying the problem was you were looking at the wrong TestExpectations file, rather than being unable to find a port.

&gt; However, for ports such as EFL that redefine expectations_files(), it will cause the function to properly recognize efl-wk2/TestExpectations or efl-wk1/TestExpectations as belonging to EFL port.

I would include this in your ChangeLog description.

The change looks correct to me, but you need a unittest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716343</commentid>
    <comment_count>5</comment_count>
      <attachid>163178</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-10 12:09:17 -0700</bug_when>
    <thetext>Created attachment 163178
Patch

Take Tony Chang&apos;s feedback into consideration.

Note that I also had to construct the port twice with &quot;webkit_test_runner&quot; option set to True and False in order to retrieve the TestExpectations paths for both WebKit1 and WebKit2.

For example, the EFL port returns
[&quot;efl-wk1/TestExpectations&quot;, &quot;efl/TestExpectations&quot;] for WebKit1 (&quot;webkit_test_runner&quot; option is False)
[&quot;efl-wk2/TestExpectations&quot;, &quot;efl/TestExpectations&quot;] for WebKit2 (&quot;webkit_test_runner&quot; option is True)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716592</commentid>
    <comment_count>6</comment_count>
      <attachid>163178</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 15:21:43 -0700</bug_when>
    <thetext>Comment on attachment 163178
Patch

Clearing flags on attachment: 163178

Committed r128117: &lt;http://trac.webkit.org/changeset/128117&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716593</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 15:21:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162994</attachid>
            <date>2012-09-09 06:39:56 -0700</date>
            <delta_ts>2012-09-10 12:09:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>96205_cascaded_expectations.patch</filename>
            <type>text/plain</type>
            <size>1993</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNzg4
YWQyLi4zZDUyYTJlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMDkgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBUZXN0RXhwZWN0YXRpb25zQ2hl
Y2tlci5fZGV0ZXJtaW5lX3BvcnRfZnJvbV9leHBlY3RhdGlvbnNfcGF0aCgpIGRvZXMgbm90IHN1
cHBvcnQgY2FzY2FkZWQgVGVzdEV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0RXhwZWN0YXRpb25zQ2hlY2tlci5fZGV0ZXJtaW5l
X3BvcnRfZnJvbV9leHBlY3RhdGlvbnNfcGF0aCgpIG5vdyBjYWxscworICAgICAgICBwb3J0LmV4
cGVjdGF0aW9uc19maWxlcygpIGluc3RlYWQgb2YgcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRp
b25zX2ZpbGUoKQorICAgICAgICBzbyB0aGF0IGl0IGJlaGF2ZXMgY29ycmVjdGx5IGZvciBwb3J0
cyB3aXRoIG11bHRpcGxlIFRlc3RFeHBlY3RhdGlvbnMKKyAgICAgICAgZmlsZXMuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zLnB5
OgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc0NoZWNrZXIuX2RldGVybWluZV9wb3J0X2Zyb21f
ZXhwZWN0YXRpb25zX3BhdGgpOgorCiAyMDEyLTA5LTA4ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gTmV3IGZhc3QvZXZlbnRz
L3RhYi1mb2N1cy1saW5rLWluLWNhbnZhcyBmYWlscyBmcm9tIHIxMjY5MDgKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRp
b25zLnB5CmluZGV4IDNiODExMzIuLmZlNGUzNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAt
NTIsOCArNTIsOSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zQ2hlY2tlcihvYmplY3QpOgogICAg
ICAgICBvcHRpb25zID0gb3B0cGFyc2UuVmFsdWVzKHsnY29uZmlndXJhdGlvbic6ICdSZWxlYXNl
J30pCiAgICAgICAgIGZvciBwb3J0X25hbWUgaW4gaG9zdC5wb3J0X2ZhY3RvcnkuYWxsX3BvcnRf
bmFtZXMoKToKICAgICAgICAgICAgIHBvcnQgPSBob3N0LnBvcnRfZmFjdG9yeS5nZXQocG9ydF9u
YW1lLCBvcHRpb25zPW9wdGlvbnMpCi0gICAgICAgICAgICBpZiBwb3J0LnBhdGhfdG9fdGVzdF9l
eHBlY3RhdGlvbnNfZmlsZSgpLnJlcGxhY2UocG9ydC5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoKSAr
IGhvc3QuZmlsZXN5c3RlbS5zZXAsICcnKSA9PSBleHBlY3RhdGlvbnNfcGF0aDoKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcG9ydAorICAgICAgICAgICAgZm9yIHRlc3RfZXhwZWN0YXRpb25fZmls
ZSBpbiBwb3J0LmV4cGVjdGF0aW9uc19maWxlcygpOgorICAgICAgICAgICAgICAgIGlmIHRlc3Rf
ZXhwZWN0YXRpb25fZmlsZS5yZXBsYWNlKHBvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCkgKyBo
b3N0LmZpbGVzeXN0ZW0uc2VwLCAnJykgPT0gZXhwZWN0YXRpb25zX3BhdGg6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBwb3J0CiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYgX19p
bml0X18oc2VsZiwgZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IsIGhvc3Q9Tm9uZSk6Cg==
</data>
<flag name="review"
          id="174280"
          type_id="1"
          status="-"
          setter="tony"
    />
    <flag name="commit-queue"
          id="174281"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163178</attachid>
            <date>2012-09-10 12:09:17 -0700</date>
            <delta_ts>2012-09-10 15:21:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>96205_multiple_testexpectations.patch</filename>
            <type>text/plain</type>
            <size>4332</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYWYy
YWNlLi41ZTk0M2I1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDktMTAgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBUZXN0RXhwZWN0YXRpb25zQ2hl
Y2tlci5fZGV0ZXJtaW5lX3BvcnRfZnJvbV9leHBlY3RhdGlvbnNfcGF0aCgpIGRvZXMgbm90IHN1
cHBvcnQgY2FzY2FkZWQgVGVzdEV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBfZGV0ZXJtaW5lX3BvcnRfZnJvbV9leHBlY3RhdGlvbnNf
cGF0aCgpIHdhcyBjYWxsaW5nIHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkK
KyAgICAgICAgaW50ZXJuYWxseSwgd2hpY2ggbWVhbnMgdGhhdCBpdCB3b3VsZCBzdXBwb3J0IG9u
bHkgMSBUZXN0RXhwZWN0YXRpb25zIGZpbGUgcGVyIHBvcnQuIFRoaXMKKyAgICAgICAgaXMgYW4g
aXNzdWUgZm9yIHBvcnRzIHN1Y2ggYXMgRUZMIHRoYXQgc3VwcG9ydCBjYXNjYXNlZCBUZXN0RXhw
ZWN0YXRpb25zIChlZmwtd2syIC0+IGVmbAorICAgICAgICBhbmQgZWZsLXdrMSAtPiBlZmwpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgX2RldGVybWluZV9wb3J0X2Zyb21fZXhwZWN0YXRp
b25zX3BhdGgoKSBjYWxsIHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKCkKKyAgICAgICAgaW5zdGVh
ZCBzbyB0aGF0IGFsbCB0aGUgcG9ydHMgVGVzdEV4cGVjdGF0aW9ucyBhcmUgcmVjb2duaXplZC4g
VGhlIHBvcnRzIGFyZSBhbHNvCisgICAgICAgIGNvbnN0cnVjdGVkIHR3aWNlLCB3aXRoICJ3ZWJr
aXRfdGVzdF9ydW5uZXIiIG9wdGlvbiBzZXQgdG8gVHJ1ZSBhbmQgRmFsc2Ugc28gdGhhdCB3ZQor
ICAgICAgICByZXRyaWV2ZSB0aGUgVGVzdEV4cGVjdGF0aW9ucyBwYXRocyBmb3IgYm90aCBXZWJL
aXQxIGFuZCBXZWJLaXQyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNDaGVj
a2VyLl9kZXRlcm1pbmVfcG9ydF9mcm9tX2V4cGVjdGF0aW9uc19wYXRoKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0
LnB5OiBBZGQgY29ycmVzcG9uZGluZyB1bml0IHRlc3QuCisgICAgICAgIChUZXN0RXhwZWN0YXRp
b25zVGVzdENhc2UudGVzdF9kZXRlcm1pbmVfcG9ydF9mcm9tX2V4cGVjdGF0aW9uc19wYXRoKToK
KwogMjAxMi0wOS0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAg
ICA8YXVkaW8+IGFuZCA8dmlkZW8+IHNob3VsZCBzZW5kIERvIE5vdCBUcmFjayB3aGVuIGFwcHJv
cHJpYXRlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJz
L3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAzYjgxMTMyLi40NjQwM2I3IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRp
b25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9l
eHBlY3RhdGlvbnMucHkKQEAgLTQ5LDExICs0OSwxNCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
Q2hlY2tlcihvYmplY3QpOgogCiAgICAgZGVmIF9kZXRlcm1pbmVfcG9ydF9mcm9tX2V4cGVjdGF0
aW9uc19wYXRoKHNlbGYsIGhvc3QsIGV4cGVjdGF0aW9uc19wYXRoKToKICAgICAgICAgIyBQYXNz
IGEgY29uZmlndXJhdGlvbiB0byBhdm9pZCBjYWxsaW5nIGRlZmF1bHRfY29uZmlndXJhdGlvbigp
IHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBwb3J0ICh0YWtlcyAwLjUgc2Vjb25kcyBvbiBhIE1hYyBQ
cm8hKS4KLSAgICAgICAgb3B0aW9ucyA9IG9wdHBhcnNlLlZhbHVlcyh7J2NvbmZpZ3VyYXRpb24n
OiAnUmVsZWFzZSd9KQorICAgICAgICBvcHRpb25zX3drMSA9IG9wdHBhcnNlLlZhbHVlcyh7J2Nv
bmZpZ3VyYXRpb24nOiAnUmVsZWFzZScsICd3ZWJraXRfdGVzdF9ydW5uZXInOiBGYWxzZX0pCisg
ICAgICAgIG9wdGlvbnNfd2syID0gb3B0cGFyc2UuVmFsdWVzKHsnY29uZmlndXJhdGlvbic6ICdS
ZWxlYXNlJywgJ3dlYmtpdF90ZXN0X3J1bm5lcic6IFRydWV9KQogICAgICAgICBmb3IgcG9ydF9u
YW1lIGluIGhvc3QucG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzKCk6Ci0gICAgICAgICAgICBw
b3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZSwgb3B0aW9ucz1vcHRpb25zKQot
ICAgICAgICAgICAgaWYgcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKS5yZXBs
YWNlKHBvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCkgKyBob3N0LmZpbGVzeXN0ZW0uc2VwLCAn
JykgPT0gZXhwZWN0YXRpb25zX3BhdGg6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnQKKyAg
ICAgICAgICAgIHBvcnRzID0gW2hvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWUsIG9wdGlv
bnM9b3B0aW9uc193azEpLCBob3N0LnBvcnRfZmFjdG9yeS5nZXQocG9ydF9uYW1lLCBvcHRpb25z
PW9wdGlvbnNfd2syKV0KKyAgICAgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgorICAgICAgICAg
ICAgICAgIGZvciB0ZXN0X2V4cGVjdGF0aW9uX2ZpbGUgaW4gcG9ydC5leHBlY3RhdGlvbnNfZmls
ZXMoKToKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdF9leHBlY3RhdGlvbl9maWxlLnJlcGxh
Y2UocG9ydC5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoKSArIGhvc3QuZmlsZXN5c3RlbS5zZXAsICcn
KSA9PSBleHBlY3RhdGlvbnNfcGF0aDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBw
b3J0CiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZV9w
YXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IsIGhvc3Q9Tm9uZSk6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weQppbmRleCA4YjUzZTZkLi5hYjcwYmEyIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTc5LDYgKzc5LDkgQEAgY2xhc3MgVGVzdEV4cGVj
dGF0aW9uc1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5fZXhwZWN0
X3BvcnRfZm9yX2V4cGVjdGF0aW9uc19wYXRoKCdjaHJvbWl1bScsICdMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zJykKICAgICAgICAgc2VsZi5fZXhwZWN0X3Bv
cnRfZm9yX2V4cGVjdGF0aW9uc19wYXRoKE5vbmUsICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucycpCiAgICAgICAgIHNlbGYuX2V4cGVjdF9w
b3J0X2Zvcl9leHBlY3RhdGlvbnNfcGF0aCgnd2luJywgJ0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zJykKKyAgICAgICAgc2VsZi5fZXhwZWN0X3BvcnRfZm9yX2V4cGVj
dGF0aW9uc19wYXRoKCdlZmwnLCAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMnKQorICAgICAgICBzZWxmLl9leHBlY3RfcG9ydF9mb3JfZXhwZWN0YXRpb25zX3BhdGgo
J2VmbCcsICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2sxL1Rlc3RFeHBlY3RhdGlvbnMnKQor
ICAgICAgICBzZWxmLl9leHBlY3RfcG9ydF9mb3JfZXhwZWN0YXRpb25zX3BhdGgoJ2VmbCcsICdM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMnKQogCiAgICAgZGVm
IGFzc2VydF9saW5lc19saW50KHNlbGYsIGxpbmVzLCBzaG91bGRfcGFzcywgZXhwZWN0ZWRfb3V0
cHV0PU5vbmUpOgogICAgICAgICBzZWxmLl9lcnJvcl9jb2xsZWN0b3IucmVzZXRfZXJyb3JzKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>