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

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>14814</bug_id>
          
          <creation_ts>2011-11-13 19:05:44 +0000</creation_ts>
          <short_desc>Add asserts to test that something is a WebIDL interface or operation</short_desc>
          <delta_ts>2011-11-16 20:59:39 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Testing</product>
          <component>testharness.js</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aryeh Gregor">ayg</reporter>
          <assigned_to name="James Graham">james</assigned_to>
          <cc>plh</cc>
          
          <qa_contact name="James Graham">james</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60002</commentid>
    <comment_count>0</comment_count>
      <attachid>1044</attachid>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-11-13 19:05:44 +0000</bug_when>
    <thetext>Created attachment 1044
Proposed patch

Patch submitted for review.  I&apos;ve tested it in all major browsers, and it looks to be correct.  assert_interface works for common interfaces in IE9, and in Firefox 9.0a2 for NodeList (but not for others yet); WebKit and Opera have some bugs.  assert_operation likewise works in UAs, although max_args &gt; 0 fails in some browsers because they make .length 0 always instead of equal to the maximum number of arguments.

There&apos;s one apparent WebIDL spec bug I caught, bug 14813.  I test for how browsers behave, not what the spec requires.  See also the two TODOs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60036</commentid>
    <comment_count>1</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-11-15 00:16:14 +0000</bug_when>
    <thetext>IRC discussion suggested this would be better done by a function that would generate entire tests (not assertions), preferably something that just parsed an arbitrary IDL block.  This seems like a better approach than my patch.  I could hack my patch into an initial version of such a function, which just slurps out the interface name via regex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60083</commentid>
    <comment_count>2</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-11-16 20:59:39 +0000</bug_when>
    <thetext>Pursuant to discussion, I wrote something up and checked it in.  It seems to work okay.  Lots more work is needed to test more things and improve the correctness of what&apos;s there.

http://w3c-test.org/html/tests/resources/idlharness.js
http://w3c-test.org/webapps/DOMCore/tests/submissions/AryehGregor/interfaces.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1044</attachid>
            <date>2011-11-13 19:05:44 +0000</date>
            <delta_ts>2011-11-13 19:05:44 +0000</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch</filename>
            <type>application/octet-stream</type>
            <size>10754</size>
            <attacher name="Aryeh Gregor">ayg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3Rlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyBiL3Rlc3RzL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcwotLS0gYS90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMK
KysrIGIvdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzCkBAIC0yMzMsMTYgKzIzMywzMyBA
QCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAqIGFzc2VydF9pbmhlcml0
cyhvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKQogICogICBhc3NlcnQgdGhhdCBv
YmplY3QgZG9lcyBub3QgaGF2ZSBhbiBvd24gcHJvcGVydHkgbmFtZWQgcHJvcGVydHlfbmFtZQog
ICogICBidXQgdGhhdCBwcm9wZXJ0eV9uYW1lIGlzIHByZXNlbnQgaW4gdGhlIHByb3RvdHlwZSBj
aGFpbiBmb3Igb2JqZWN0CiAgKgogICogYXNzZXJ0X2lkbF9hdHRyaWJ1dGUob2JqZWN0LCBhdHRy
aWJ1dGVfbmFtZSwgZGVzY3JpcHRpb24pCiAgKiAgIGFzc2VydCB0aGF0IGFuIG9iamVjdCB0aGF0
IGlzIGFuIGluc3RhbmNlIG9mIHNvbWUgaW50ZXJmYWNlIGhhcyB0aGUKICAqICAgYXR0cmlidXRl
IGF0dHJpYnV0ZV9uYW1lIGZvbGxvd2luZyB0aGUgY29uZGl0aW9ucyBzcGVjaWZpZWQgYnkgV2Vi
SURMCiAgKgorICogYXNzZXJ0X2ludGVyZmFjZShpbnRlcmZhY2VfbmFtZSwgaW5oZXJpdHMsIGRl
c2NyaXB0aW9uKQorICogICBhc3NlcnQgdGhhdCB3aW5kb3dbaW50ZXJmYWNlX25hbWVdIGlzIGFu
IGludGVyZmFjZSBuYW1lZCBpbnRlcmZhY2VfbmFtZQorICogICBwZXIgV2ViSURMLCB3aGljaCBp
bmhlcml0cyBmcm9tIHRoZSBpbnRlcmZhY2UgbmFtZWQgaW5oZXJpdHMuICBJZiB0aGUKKyAqICAg
aW50ZXJmYWNlIGRvZXNuJ3QgaW5oZXJpdCBmcm9tIGFueXRoaW5nLCBpbmhlcml0cyBzaG91bGQg
YmUgIk9iamVjdCIgKG9yCisgKiAgIHlvdSBjYW4gb21pdCBpdCBvciBsZWF2ZSBpdCBibGFuayks
IGV4Y2VwdCBpZiB0aGUgaW50ZXJmYWNlIGlzIEFycmF5Q2xhc3MsCisgKiAgIGluIHdoaWNoIGNh
c2UgaXQgc2hvdWxkIGJlICJBcnJheSIuICBFeGFtcGxlOgorICogICAgIGFzc2VydF9pbnRlcmZh
Y2UoIk5vZGVMaXN0IiwgIiIpOworICoKKyAqIGFzc2VydF9vcGVyYXRpb24ob2JqZWN0LCBvcGVy
YXRpb25fbmFtZSwgbWF4X2FyZ3MsIGRlc2NyaXB0aW9uKQorICogICBhc3NlcnQgdGhhdCBvYmpl
Y3Rbb3BlcmF0aW9uX25hbWVdIGNvcnJlc3BvbmRzIHRvIGEgV2ViSURMIG9wZXJhdGlvbiBuYW1l
ZAorICogICBvcGVyYXRpb25fbmFtZSwgd2hpY2ggdGFrZXMgYXQgbW9zdCBtYXhfYXJncyBhcmd1
bWVudHMuICBvYmplY3Qgc2hvdWxkIGJlCisgKiAgIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBmb3IgcmVndWxhciBvcGVyYXRpb25zLCBhbmQgdGhlIGludGVyZmFjZQorICogICBvYmpl
Y3QgZm9yIHN0YXRpYyBvcGVyYXRpb25zIC0tIGl0IHNob3VsZCAqbm90KiBiZSBhbiBvYmplY3Qg
aW1wbGVtZW50aW5nCisgKiAgIHRoZSBpbnRlcmZhY2UuICBFeGFtcGxlczoKKyAqICAgICBhc3Nl
cnRfb3BlcmF0aW9uKERvY3VtZW50LnByb3RvdHlwZSwgImNyZWF0ZUVsZW1lbnQiLCAxKTsKKyAq
ICAgICBJTkNPUlJFQ1Q6IGFzc2VydF9vcGVyYXRpb24oZG9jdW1lbnQsICJjcmVhdGVFbGVtZW50
IiwgMSk7CisgKgogICogYXNzZXJ0X3JlYWRvbmx5KG9iamVjdCwgcHJvcGVydHlfbmFtZSwgZGVz
Y3JpcHRpb24pCiAgKiAgIGFzc2VydCB0aGF0IHByb3BlcnR5IHByb3BlcnR5X25hbWUgb24gb2Jq
ZWN0IGlzIHJlYWRvbmx5CiAgKgogICogYXNzZXJ0X3Rocm93cyhjb2RlLCBmdW5jLCBkZXNjcmlw
dGlvbikKICAqICAgY29kZSAtIGEgRE9NRXhjZXB0aW9uL1JhbmdlRXhjZXB0aW9uIGNvZGUgYXMg
YSBzdHJpbmcsIGUuZy4gIkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIKICAqICAgZnVuYyAtIGEgZnVu
Y3Rpb24gdGhhdCBzaG91bGQgdGhyb3cKICAqCiAgKiAgIGFzc2VydCB0aGF0IGZ1bmMgdGhyb3dz
IGEgRE9NRXhjZXB0aW9uIG9yIFJhbmdlRXhjZXB0aW9uIChhcyBhcHByb3ByaWF0ZSkKQEAgLTY3
OSwxNiArNjk2LDE0OSBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAg
ICAgICAgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAi
cHJvcGVydHkgJHtwfSBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluIiwKICAgICAgICAgICAg
ICAgICAgICB7cDpwcm9wZXJ0eV9uYW1lfSk7CiAgICAgICAgIH07CiAgICAgfQogICAgIGV4cG9z
ZShfYXNzZXJ0X2luaGVyaXRzKCJhc3NlcnRfaW5oZXJpdHMiKSwgImFzc2VydF9pbmhlcml0cyIp
OwogICAgIGV4cG9zZShfYXNzZXJ0X2luaGVyaXRzKCJhc3NlcnRfaWRsX2F0dHJpYnV0ZSIpLCAi
YXNzZXJ0X2lkbF9hdHRyaWJ1dGUiKTsKIAorICAgIGZ1bmN0aW9uIGFzc2VydF9pbnRlcmZhY2Uo
bmFtZSwgaW5oZXJpdHMsIGRlc2NyaXB0aW9uKQorICAgIHsKKyAgICAgICAgLy8iRm9yIGV2ZXJ5
IGludGVyZmFjZSB0aGF0IGlzIG5vdCBkZWNsYXJlZCB3aXRoIHRoZQorICAgICAgICAvL1tOb0lu
dGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlLCBhIGNvcnJlc3BvbmRpbmcgcHJvcGVy
dHkgbXVzdAorICAgICAgICAvL2V4aXN0IG9uIHRoZSBpbnRlcmZhY2XigJlzIHJlbGV2YW50IG5h
bWVzcGFjZSBvYmplY3QuIFRoZSBuYW1lIG9mIHRoZQorICAgICAgICAvL3Byb3BlcnR5IGlzIHRo
ZSBpZGVudGlmaWVyIG9mIHRoZSBpbnRlcmZhY2UsIGFuZCBpdHMgdmFsdWUgaXMgYW4KKyAgICAg
ICAgLy9vYmplY3QgY2FsbGVkIHRoZSBpbnRlcmZhY2Ugb2JqZWN0LiBUaGUgcHJvcGVydHkgaGFz
IHRoZSBhdHRyaWJ1dGVzIHsKKyAgICAgICAgLy9bW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVy
YWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9LiIKKyAgICAgICAgLy9UT0RP
OiBTaG91bGQgd2UgdGVzdCBoZXJlIHRoYXQgdGhlIHByb3BlcnR5IGlzIGFjdHVhbGx5IHdyaXRh
YmxlCisgICAgICAgIC8vZXRjLiwgb3IgdHJ1c3QgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPwor
ICAgICAgICBhc3NlcnQod2luZG93Lmhhc093blByb3BlcnR5KG5hbWUpLAorICAgICAgICAgICAg
ICAgImFzc2VydF9pbnRlcmZhY2UiLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICJ3aW5k
b3cgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgJHtuYW1lfSIsIHtuYW1lOm5hbWV9KTsKKyAg
ICAgICAgYXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCBuYW1l
KS53cml0YWJsZSwKKyAgICAgICAgICAgICAgICJhc3NlcnRfaW50ZXJmYWNlIiwgZGVzY3JpcHRp
b24sCisgICAgICAgICAgICAgICAid2luZG93J3MgcHJvcGVydHkgJHtuYW1lfSBpcyBub3Qgd3Jp
dGFibGUiLCB7bmFtZTpuYW1lfSk7CisgICAgICAgIGFzc2VydCghT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csIG5hbWUpLmVudW1lcmFibGUsCisgICAgICAgICAgICAgICAi
YXNzZXJ0X2ludGVyZmFjZSIsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgIndpbmRvdydz
IHByb3BlcnR5ICR7bmFtZX0gaXMgZW51bWVyYWJsZSIsIHtuYW1lOm5hbWV9KTsKKyAgICAgICAg
YXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCBuYW1lKS5jb25m
aWd1cmFibGUsCisgICAgICAgICAgICAgICAiYXNzZXJ0X2ludGVyZmFjZSIsIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgICAgIndpbmRvdydzIHByb3BlcnR5ICR7bmFtZX0gaXMgbm90IGNvbmZp
Z3VyYWJsZSIsIHtuYW1lOm5hbWV9KTsKKworICAgICAgICAvLyJJbnRlcmZhY2Ugb2JqZWN0cyBh
cmUgYWx3YXlzIGZ1bmN0aW9uIG9iamVjdHMuIgorICAgICAgICAvLyJJZiBhbiBvYmplY3QgaXMg
ZGVmaW5lZCB0byBiZSBhIGZ1bmN0aW9uIG9iamVjdCwgdGhlbiBpdCBoYXMKKyAgICAgICAgLy9j
aGFyYWN0ZXJpc3RpY3MgYXMgZm9sbG93czoiCisgICAgICAgIC8vIkl0cyBbW1Byb3RvdHlwZV1d
IGludGVybmFsIHByb3BlcnR5IGlzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUKKyAgICAgICAgLy9v
YmplY3QuIgorICAgICAgICAvL0ZJWE1FOiBUaGUgc3BlYyBpcyB3cm9uZywgaGFzIHRvIGJlIE9i
amVjdC5wcm90b3R5cGUgYW5kIG5vdAorICAgICAgICAvL0Z1bmN0aW9uLnByb3RvdHlwZS4gIEkg
dGVzdCBmb3IgaG93IGJyb3dzZXJzIGFjdHVhbGx5IGJlaGF2ZSwKKyAgICAgICAgLy9hc3N1bWlu
ZyB0aGUgYnVnIHdpbGwgYmUgZml4ZWQ6CisgICAgICAgIC8vaHR0cDovL3d3dy53My5vcmcvQnVn
cy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTE0ODEzCisgICAgICAgIGFzc2VydChPYmplY3QucHJv
dG90eXBlLmlzUHJvdG90eXBlT2Yod2luZG93W25hbWVdKSwKKyAgICAgICAgICAgICAgICJhc3Nl
cnRfaW50ZXJmYWNlIiwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAicHJvdG90eXBlIGlz
IHdpbmRvdydzIHByb3BlcnR5ICR7bmFtZX0gaXMgbm90IE9iamVjdC5wcm90b3R5cGUiLCB7bmFt
ZTpuYW1lfSk7CisgICAgICAgIC8vIkl0cyBbW0dldF1dIGludGVybmFsIHByb3BlcnR5IGlzIHNl
dCBhcyBkZXNjcmliZWQgaW4gRUNNQS0yNjIKKyAgICAgICAgLy9zZWN0aW9uIDE1LjMuNS40LiIK
KyAgICAgICAgLy8iSXRzIFtbQ29uc3RydWN0XV0gaW50ZXJuYWwgcHJvcGVydHkgaXMgc2V0IGFz
IGRlc2NyaWJlZCBpbiBFQ01BLTI2MgorICAgICAgICAvL3NlY3Rpb24gMTMuMi4yLiIKKyAgICAg
ICAgLy9UT0RPOiBJJ20gbm90IHN1cmUgaG93IHRvIHRlc3QgdGhlc2UuCisgICAgICAgIC8vIkl0
cyBbW0hhc0luc3RhbmNlXV0gaW50ZXJuYWwgcHJvcGVydHkgaXMgc2V0IGFzIGRlc2NyaWJlZCBp
bgorICAgICAgICAvL0VDTUEtMjYyIHNlY3Rpb24gMTUuMy41LjMsIHVubGVzcyBvdGhlcndpc2Ug
c3BlY2lmaWVkLiIKKyAgICAgICAgLy9UaGlzIG5lZWRzIHRvIGJlIHRlc3RlZCBpbiBzb21lIG90
aGVyIGFzc2VydGlvbiB0aGF0IHRha2VzIGFuIG9iamVjdAorICAgICAgICAvL3RoYXQncyBzdXBw
b3NlZCB0byBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlLgorCisgICAgICAgIC8vIlRo
ZSBbW0NsYXNzXV0gcHJvcGVydHkgb2YgdGhlIGludGVyZmFjZSBvYmplY3QgbXVzdCBiZSB0aGUK
KyAgICAgICAgLy9pZGVudGlmaWVyIG9mIHRoZSBpbnRlcmZhY2UuIgorICAgICAgICBhc3NlcnQo
U3RyaW5nKHdpbmRvd1tuYW1lXSkgPT09ICJbb2JqZWN0ICIgKyBuYW1lICsgIl0iLAorICAgICAg
ICAgICAgICAgImFzc2VydF9pbnRlcmZhY2UiLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAg
ICJTdHJpbmcoIiArIG5hbWUgKyAnKSBtdXN0IGJlICJbb2JqZWN0ICcgKyBuYW1lICsgJ10iLCBn
b3QgJHtyZXN1bHR9Jywge3Jlc3VsdDpTdHJpbmcod2luZG93W25hbWVdKX0pOworCisgICAgICAg
IC8vIlRoZSBpbnRlcmZhY2Ugb2JqZWN0IG11c3QgYWxzbyBoYXZlIGEgcHJvcGVydHkgbmFtZWQg
4oCccHJvdG90eXBl4oCdCisgICAgICAgIC8vd2l0aCBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1d
OiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IGZhbHNlLAorICAgICAgICAvL1tbQ29uZmlndXJhYmxl
XV06IGZhbHNlIH0gd2hvc2UgdmFsdWUgaXMgYW4gb2JqZWN0IGNhbGxlZCB0aGUKKyAgICAgICAg
Ly9pbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4gVGhpcyBvYmplY3QgaGFzIHByb3BlcnRpZXMg
dGhhdAorICAgICAgICAvL2NvcnJlc3BvbmQgdG8gdGhlIGF0dHJpYnV0ZXMgYW5kIG9wZXJhdGlv
bnMgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlLAorICAgICAgICAvL2FuZCBpcyBkZXNjcmliZWQg
aW4gbW9yZSBkZXRhaWwgaW4gc2VjdGlvbiA0LjUuMyBiZWxvdy4iCisgICAgICAgIGFzc2VydCh3
aW5kb3dbbmFtZV0uaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpLAorICAgICAgICAgICAgICAg
ImFzc2VydF9pbnRlcmZhY2UiLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICdpbnRlcmZh
Y2UgJHtuYW1lfSBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAicHJvdG90eXBlIicsIHtuYW1l
Om5hbWV9KTsKKyAgICAgICAgYXNzZXJ0KCFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvd1tuYW1lXSwgInByb3RvdHlwZSIpLndyaXRhYmxlLAorICAgICAgICAgICAgICAgImFz
c2VydF9pbnRlcmZhY2UiLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgIG5hbWUgKyAiLnBy
b3RvdHlwZSBpcyB3cml0YWJsZSIsIHtuYW1lOm5hbWV9KTsKKyAgICAgICAgYXNzZXJ0KCFPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvd1tuYW1lXSwgInByb3RvdHlwZSIpLmVu
dW1lcmFibGUsCisgICAgICAgICAgICAgICAiYXNzZXJ0X2ludGVyZmFjZSIsIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgICAgbmFtZSArICIucHJvdG90eXBlIGlzIGVudW1lcmFibGUiLCB7bmFt
ZTpuYW1lfSk7CisgICAgICAgIGFzc2VydCghT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3dbbmFtZV0sICJwcm90b3R5cGUiKS5jb25maWd1cmFibGUsCisgICAgICAgICAgICAg
ICAiYXNzZXJ0X2ludGVyZmFjZSIsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgbmFtZSAr
ICIucHJvdG90eXBlIGlzIGNvbmZpZ3VyYWJsZSIsIHtuYW1lOm5hbWV9KTsKKworICAgICAgICAv
LyJJZiB0aGUgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUgd2FzIG5vdCBz
cGVjaWZpZWQgb24KKyAgICAgICAgLy90aGUgaW50ZXJmYWNlLCB0aGVuIHRoZSBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCBtdXN0IGFsc28gaGF2ZSBhCisgICAgICAgIC8vcHJvcGVydHkgbmFt
ZWQg4oCcY29uc3RydWN0b3LigJ0gd2l0aCBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiB0cnVl
LAorICAgICAgICAvL1tbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1
ZSB9IHdob3NlIHZhbHVlIGlzIGEKKyAgICAgICAgLy9yZWZlcmVuY2UgdG8gdGhlIGludGVyZmFj
ZSBvYmplY3QgZm9yIHRoZSBpbnRlcmZhY2UuIgorICAgICAgICBhc3NlcnQod2luZG93W25hbWVd
LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiY29uc3RydWN0b3IiKSwKKyAgICAgICAgICAgICAg
ICJhc3NlcnRfaW50ZXJmYWNlIiwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICBuYW1lICsg
Jy5wcm90b3R5cGUgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgImNvbnN0cnVjdG9yIicpOwor
ICAgICAgICBhc3NlcnQoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3dbbmFt
ZV0ucHJvdG90eXBlLCAiY29uc3RydWN0b3IiKS53cml0YWJsZSwKKyAgICAgICAgICAgICAgICJh
c3NlcnRfaW50ZXJmYWNlIiwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICBuYW1lICsgIi5w
cm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90IHdyaXRhYmxlIiwge25hbWU6bmFtZX0pOworICAg
ICAgICBhc3NlcnQoIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93W25hbWVd
LnByb3RvdHlwZSwgImNvbnN0cnVjdG9yIikuZW51bWVyYWJsZSwKKyAgICAgICAgICAgICAgICJh
c3NlcnRfaW50ZXJmYWNlIiwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICBuYW1lICsgIi5w
cm90b3R5cGUuY29uc3RydWN0b3IgaXMgZW51bWVyYWJsZSIsIHtuYW1lOm5hbWV9KTsKKyAgICAg
ICAgYXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93W25hbWVdLnBy
b3RvdHlwZSwgImNvbnN0cnVjdG9yIikuY29uZmlndXJhYmxlLAorICAgICAgICAgICAgICAgImFz
c2VydF9pbnRlcmZhY2UiLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgIG5hbWUgKyAiLnBy
b3RvdHlwZS5jb25zdHJ1Y3RvciBpbiBub3QgY29uZmlndXJhYmxlIiwge25hbWU6bmFtZX0pOwor
ICAgICAgICBhc3NlcnQod2luZG93W25hbWVdLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gd2lu
ZG93W25hbWVdLAorICAgICAgICAgICAgICAgImFzc2VydF9pbnRlcmZhY2UiLCBkZXNjcmlwdGlv
biwKKyAgICAgICAgICAgICAgIG5hbWUgKyAnLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBub3Qg
dGhlIHNhbWUgb2JqZWN0IGFzICcgKyBuYW1lKTsKKworICAgICAgICBpZiAoIWluaGVyaXRzKQor
ICAgICAgICB7CisgICAgICAgICAgICAvL0Fzc3VtZSBPYmplY3QsIHdoaWNoIGlzIHRoZSBkZWZh
dWx0IGZvciBhbnl0aGluZyBleGNlcHQKKyAgICAgICAgICAgIC8vQXJyYXlDbGFzcworICAgICAg
ICAgICAgaW5oZXJpdHMgPSAiT2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQod2lu
ZG93W2luaGVyaXRzXS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih3aW5kb3dbbmFtZV0ucHJvdG90
eXBlKSwKKyAgICAgICAgICAgICAgICJhc3NlcnRfaW50ZXJmYWNlIiwgZGVzY3JpcHRpb24sCisg
ICAgICAgICAgICAgICAncHJvdG90eXBlIG9mICcgKyBuYW1lICsgJy5wcm90b3R5cGUgaXMgbm90
ICcgKyBpbmhlcml0cyArICcucHJvdG90eXBlJyk7CisgICAgfQorICAgIGV4cG9zZShhc3NlcnRf
aW50ZXJmYWNlLCAiYXNzZXJ0X2ludGVyZmFjZSIpOworCisgICAgZnVuY3Rpb24gYXNzZXJ0X29w
ZXJhdGlvbihvYmplY3QsIG5hbWUsIG1heF9hcmdzLCBkZXNjcmlwdGlvbikKKyAgICB7CisgICAg
ICAgIGFzc2VydChvYmplY3QuaGFzT3duUHJvcGVydHkobmFtZSksCisgICAgICAgICAgICAgICAi
YXNzZXJ0X29wZXJhdGlvbiIsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgIm9iamVjdCBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAke25hbWV9Iiwge25hbWU6bmFtZX0pOworICAgICAg
ICAvLyJUaGUgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IHRydWUsIFtb
RW51bWVyYWJsZV1dOgorICAgICAgICAvL3RydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfS4i
CisgICAgICAgIGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwg
bmFtZSkud3JpdGFibGUsCisgICAgICAgICAgICAgICAiYXNzZXJ0X29wZXJhdGlvbiIsIGRlc2Ny
aXB0aW9uLAorICAgICAgICAgICAgICAgInByb3BlcnR5ICR7bmFtZX0gaXMgbm90IHdyaXRhYmxl
Iiwge25hbWU6bmFtZX0pOworICAgICAgICBhc3NlcnQoT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihvYmplY3QsIG5hbWUpLmVudW1lcmFibGUsCisgICAgICAgICAgICAgICAiYXNzZXJ0
X29wZXJhdGlvbiIsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgInByb3BlcnR5ICR7bmFt
ZX0gaXMgbm90IGVudW1lcmFibGUiLCB7bmFtZTpuYW1lfSk7CisgICAgICAgIGFzc2VydChPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZSkuY29uZmlndXJhYmxlLAor
ICAgICAgICAgICAgICAgImFzc2VydF9vcGVyYXRpb24iLCBkZXNjcmlwdGlvbiwKKyAgICAgICAg
ICAgICAgICJwcm9wZXJ0eSAke25hbWV9IGlzIG5vdCBjb25maWd1cmFibGUiLCB7bmFtZTpuYW1l
fSk7CisgICAgICAgIC8vIlRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXMgYSBGdW5jdGlvbiBv
YmplY3QgLiAuIC4iCisgICAgICAgIGFzc2VydCh0eXBlb2Ygb2JqZWN0W25hbWVdID09ICJmdW5j
dGlvbiIsCisgICAgICAgICAgICAgICAiYXNzZXJ0X29wZXJhdGlvbiIsIGRlc2NyaXB0aW9uLAor
ICAgICAgICAgICAgICAgInByb3BlcnR5ICR7bmFtZX0gaXMgbm90IGEgRnVuY3Rpb24gb2JqZWN0
Iiwge25hbWU6bmFtZX0pOworICAgICAgICAvLyJUaGUgdmFsdWUgb2YgdGhlIEZ1bmN0aW9uIG9i
amVjdOKAmXMg4oCcbGVuZ3Ro4oCdIHByb3BlcnR5IGlzIGEgTnVtYmVyCisgICAgICAgIC8vZGV0
ZXJtaW5lZCBhcyBmb2xsb3dzOiAuIC4gLiBSZXR1cm4gdGhlIG1heGltdW0gYXJndW1lbnQgbGlz
dCBsZW5ndGgKKyAgICAgICAgLy9vZiB0aGUgZnVuY3Rpb25zIGluIHRoZSBlbnRyaWVzIG9mIFMu
IgorICAgICAgICBhc3NlcnQob2JqZWN0W25hbWVdLmxlbmd0aCA9PT0gbWF4X2FyZ3MsCisgICAg
ICAgICAgICAgICAiYXNzZXJ0X29wZXJhdGlvbiIsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAg
ICAgInByb3BlcnR5ICR7bmFtZX0ncyBsZW5ndGggcHJvcGVydHkgbXVzdCBiZSAke21heF9hcmdz
fSwgZ290ICR7YWN0dWFsfSIsCisgICAgICAgICAgICAgICB7bmFtZTpuYW1lLCBtYXhfYXJnczpt
YXhfYXJncywgYWN0dWFsOm9iamVjdFtuYW1lXS5sZW5ndGh9KTsKKyAgICB9CisgICAgZXhwb3Nl
KGFzc2VydF9vcGVyYXRpb24sICJhc3NlcnRfb3BlcmF0aW9uIik7CisKICAgICBmdW5jdGlvbiBh
c3NlcnRfcmVhZG9ubHkob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikKICAgICB7
CiAgICAgICAgICB2YXIgaW5pdGlhbF92YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eV9uYW1lXTsKICAg
ICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgYXNzZXJ0KGRlbGV0ZSBvYmplY3RbcHJvcGVydHlf
bmFtZV0gPT09IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0X3JlYWRvbmx5Iiwg
ZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICJkZWxldGluZyBwcm9wZXJ0eSAke3B9
IHN1Y2NlZWRlZCIsIHtwOnByb3BlcnR5X25hbWV9KTsKICAgICAgICAgICAgICBhc3NlcnQob2Jq
ZWN0W3Byb3BlcnR5X25hbWVdID09PSBpbml0aWFsX3ZhbHVlLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>