<?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>49361</bug_id>
          
          <creation_ts>2010-11-10 19:44:10 -0800</creation_ts>
          <short_desc>add better unit tests for bug 49360 (nrwt respecting set-webkit-configuration)</short_desc>
          <delta_ts>2010-11-11 19:56:43 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>49360</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>mihaip</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307698</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-10 19:44:10 -0800</bug_when>
    <thetext>add better unit tests for bug 49360 (nrwt respecting set-webkit-configuration)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307699</commentid>
    <comment_count>1</comment_count>
      <attachid>73573</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-10 19:47:32 -0800</bug_when>
    <thetext>Created attachment 73573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307700</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-10 20:02:06 -0800</bug_when>
    <thetext>So, I believe that it is impossible to write a test that actually catches the failure and yet remains a standalone test that can be run as part of a larger test suite. In order to remain standalone, the test needs to call clear_cached_configuration(), but calling that resets the value of _determined_configuration, meaning that you can&apos;t reproduce the failure.

At any rate, you can reproduce the failure by running the tests separately and commenting out the clear_cached_configuration() call in IntTest.setUp(), and then apply the patch in 49360 and verify that it is fixed.

This patch introduces the concept of &quot;integration tests&quot; that actually test the real code paths (running set-webkit-configuration and then calling config.default_configuration()). These tests are disabled by default, because they will mess with the state of the current checkout.

We don&apos;t currently have a good way of providing an isolated build/checkout for tests. However, we should still be able to run these tests on demand, or in configurations where we don&apos;t worry too much about perturbing the checkout state (e.g., on the bots, where we do clean builds if something fails).

Ideally we can modify test-webkitpy to support different flags for the types of tests we want, and can use python decorators to better classify the test methods as to whether they are &quot;safe&quot; or &quot;unsafe&quot; (or slow, or require a real HTTP server, etc.). I have filed a separate bug for that effort (49299).

In the meantime, I wanted to write tests that would be the same tests run with either real objects or mock objects (i.e., without cutting and pasting the code). After several attempts at this, the submitted patch is the best I could come up with that also allowed us to control whether or not to run unsafe versions.

I am open to any better ideas of how to write these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307832</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-11 04:36:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; So, I believe that it is impossible to write a test that actually catches the failure and yet remains a standalone test that can be run as part of a larger test suite. In order to remain standalone, the test needs to call clear_cached_configuration(), but calling that resets the value of _determined_configuration, meaning that you can&apos;t reproduce the failure.

Could you have the test invoke a separate python process that would just call default_configuration and print out the result?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308024</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-11 11:37:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; So, I believe that it is impossible to write a test that actually catches the failure and yet remains a standalone test that can be run as part of a larger test suite. In order to remain standalone, the test needs to call clear_cached_configuration(), but calling that resets the value of _determined_configuration, meaning that you can&apos;t reproduce the failure.
&gt; 
&gt; Could you have the test invoke a separate python process that would just call default_configuration and print out the result?

Ugh. Yes, that would work. I hate to have a separate script just for this, but given that it&apos;s broken twice it&apos;s probably worth it until I can get rid of the global cache and make this unecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308163</commentid>
    <comment_count>5</comment_count>
      <attachid>73573</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-11 14:35:50 -0800</bug_when>
    <thetext>Comment on attachment 73573
Patch

cancelling review flag. Per aroben&apos;s suggestion, I&apos;ve added a unit test that reproduces the failure. I&apos;ll put this whole &quot;integration tests&quot; concept on hold for now until we have the support in test-webkitpy, and then add some integration tests back in.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73573</attachid>
            <date>2010-11-10 19:47:32 -0800</date>
            <delta_ts>2010-11-11 14:35:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49361-20101110194730.patch</filename>
            <type>text/plain</type>
            <size>10354</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ODllZGM5YTgyMzliOWRhZTBiZTIzNDhhY2IzY2VmM2Y4NWE1ZWZjLi42OWU5NDk3
ZjgxNWYxMjI4MGYxNzA3YzcwOWVhYzdjNjE4MTk2ZDhlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMTAgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYWRkIGJldHRlciB1bml0
IHRlc3RzIGZvciBidWcgNDkzNjAgKG5yd3QgcmVzcGVjdGluZworICAgICAgICBzZXQtd2Via2l0
LWNvbmZpZ3VyYXRpb24pLgorCisgICAgICAgIEFkZCAiaW50ZWdyYXRpb24gdGVzdHMiIGZvciBz
ZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gYW5kCisgICAgICAgIE5SV1QgdGhhdCBhY3R1YWxseSBp
bnZva2UgdGhlIHNjcmlwdHMgYW5kIHRlc3QgdGhhdCB0aGUKKyAgICAgICAgcmlnaHQgdGhpbmcg
aGFwcGVucy4gVGhlc2UgdGVzdHMgYXJlIGRpc2FibGVkIGZvciBub3cgaW4KKyAgICAgICAgb3Jk
ZXIgdG8gYXZvaWQgcG90ZW50aWFsbHkgc3RvbXBpbmcgb24gYSBkZXZlbG9wZXJzIGVudmlyb25t
ZW50LgorCisgICAgICAgIFdlIG5lZWQgdG8gbW9kaWZ5IHRlc3Qtd2Via2l0cHkgaW4gb3JkZXIg
dG8gbWFrZSBpdCBtb3JlIAorICAgICAgICBmbGV4aWJsZSBzbyB3ZSBjYW4gZGVzY3JpYmUgdGhl
IGRpZmZlcmVudCBraW5kcyBvZiB0ZXN0cyBhbmQKKyAgICAgICAgc2VsZWN0IGJldHdlZW4gdGhl
bSBhdCBydW50aW1lLCBidXQgdGhhdCdzIGEgc2VwYXJhdGUgYnVnCisgICAgICAgICg0OTI5OSku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MzYx
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5w
eToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2NvbmZpZ191
bml0dGVzdC5weToKKwogMjAxMC0xMS0wOCAgRGlyayBQcmFua2UgPGRwcmFua2VAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQpp
bmRleCBjN2VmZGUzYTQyNGNhNDI2OGUxNjBhZTNkNWEzMjYxOGM2NGZjMjNiLi5hNzY1ZTA0MTE0
Njg4NmVkNjc0NmNkZTJlM2Q5OGE1YWE1M2VmY2RjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQpAQCAtMTA0
LDYgKzEwNCwxMCBAQCBjbGFzcyBGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgICAgIHdpdGggY29k
ZWNzLm9wZW4ocGF0aCwgJ3InLCAndXRmOCcpIGFzIGY6CiAgICAgICAgICAgICByZXR1cm4gZi5y
ZWFkKCkKIAorICAgIGRlZiByZW1vdmUoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIlJlbW92ZSBh
IGZpbGUuIiIiCisgICAgICAgIG9zLnJlbW92ZShwYXRoKQorCiAgICAgZGVmIHdyaXRlX2JpbmFy
eV9maWxlKHNlbGYsIHBhdGgsIGNvbnRlbnRzKToKICAgICAgICAgIiIiV3JpdGUgdGhlIGNvbnRl
bnRzIHRvIHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi4iIiIKICAgICAgICAgd2l0aCBm
aWxlKHBhdGgsICd3YicpIGFzIGY6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2NvbmZpZ191bml0dGVzdC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY29uZmlnX3VuaXR0ZXN0LnB5Cmlu
ZGV4IGVkNWFiOGI3MzA0ZTA1ZGVhNDcxOThmOWU0NDcyZmNjNTgwZDY1ZWIuLmEyYzg4Y2E5OTI4
YWYwNzAwOTFhNDEyMzM0MzQ5Yzg2MzIzODNkNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY29uZmlnX3VuaXR0ZXN0LnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY29uZmlnX3Vu
aXR0ZXN0LnB5CkBAIC0yNiw2ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgdW5pdHRlc3QKIApAQCAtMzcs
MTAgKzM4LDEzMyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNh
cHR1cmUKIAogaW1wb3J0IGNvbmZpZwogCi1jbGFzcyBDb25maWdUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyMgRklYTUU6IFNldCB0aGlzIHRvIFRydWUgdG8gcnVuIHRoZSAidW5zYWZlIiB0ZXN0
cy4gVW5zYWZlIHRlc3RzIGFyZSB0ZXN0cworIyB0aGF0IG1heSBoYXZlIHNpZGUgZWZmZWN0cyBv
biB0aGUgbWFjaGluZSBvciBlbnZpcm9ubWVudCB0aGF0IHRoZXkgYXJlCisjIHJ1bm5pbmcgaW4u
CisjCisjIFRoaXMgbWVjaGFuaXNtIG5lZWRzIHRvIGJlIHJlcGxhY2VkIGJ5IHNvbWV0aGluZyB0
aGF0IHVzZXMgbWV0aG9kIGFuZAorIyBjbGFzcyBkZXNjcmlwdG9ycyBhbmQgYSBzbWFydGVyIHRl
c3RpbmcgZnJhbWV3b3JrLgorIworIyBGSVhNRTogTm90ZSB0aGF0IHdlIHVzZSB0aGUgcm9vdCBs
b2dnZXIgaGVyZSByYXRoZXIgdGhhbiBmaWxlLXNjb3BlZAorIyBsb2dnZXIgdG8gZ2V0IGFyb3Vu
ZCB0ZXN0LXdlYmtpdHB5J3MgbG9nZ2luZyBmaWx0ZXJzLgorX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCkKK3J1bl91bnNhZmVfdGVzdHMgPSBGYWxzZQoraWYgcnVuX3Vuc2FmZV90ZXN0czoKKyAg
ICBfbG9nLndhcm5pbmcoJ1J1bm5pbmcgdW5zYWZlIHRlc3RzIGluICVzJyAlIF9fbmFtZV9fKQor
CisKK2NsYXNzIEludGVncmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNl
dFVwKHNlbGYpOgorICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZS5FeGVjdXRpdmUo
KQorICAgICAgICBzZWxmLmZzID0gZmlsZXN5c3RlbS5GaWxlU3lzdGVtKCkKKyAgICAgICAgc2Vs
Zi5jb25maWcgPSBjb25maWcuQ29uZmlnKHNlbGYuZXhlY3V0aXZlLCBzZWxmLmZzKQorICAgICAg
ICBjb25maWcuY2xlYXJfY2FjaGVkX2NvbmZpZ3VyYXRpb24oKQorCisgICAgICAgICMgRklYTUU6
IFNlZSB1bnNhZmUgY29tbWVudCBhdCB0b3Agb2YgZmlsZS4KKyAgICAgICAgc2VsZi5zYWZlID0g
cnVuX3Vuc2FmZV90ZXN0cworCisgICAgICAgIHNlbGYuX2NvbmZpZ19wYXRoID0gc2VsZi5mcy5q
b2luKHNlbGYuY29uZmlnLmJ1aWxkX2RpcmVjdG9yeShOb25lKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbmZpZ3VyYXRpb24nKQorICAgICAgICBzZWxmLl9v
cmlnX2NvbmZpZyA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5mcy5leGlzdHMoc2VsZi5fY29uZmln
X3BhdGgpOgorICAgICAgICAgICAgc2VsZi5fb3JpZ19jb25maWcgPSBzZWxmLmZzLnJlYWRfdGV4
dF9maWxlKHNlbGYuX2NvbmZpZ19wYXRoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg
ICAgICBzZWxmLnNldF9kZWZhdWx0X2NvbmZpZ3VyYXRpb24oc2VsZi5fb3JpZ19jb25maWcpCisg
ICAgICAgIGNvbmZpZy5jbGVhcl9jYWNoZWRfY29uZmlndXJhdGlvbigpCisKKyAgICBkZWYgc2V0
X2RlZmF1bHRfY29uZmlndXJhdGlvbihzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVlOgor
ICAgICAgICAgICAgZmxhZyA9IHNlbGYuY29uZmlnLl9GTEFHU19GUk9NX0NPTkZJR1VSQVRJT05T
W3ZhbHVlXQorICAgICAgICAgICAgc2VsZi5ydW5fc2NyaXB0KCdzZXQtd2Via2l0LWNvbmZpZ3Vy
YXRpb24nLCBmbGFnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mcy5yZW1vdmUo
c2VsZi5fY29uZmlnX3BhdGgpCisKKyAgICBkZWYgcnVuX3NjcmlwdChzZWxmLCBzY3JpcHRfbmFt
ZSwgKmV4dHJhX2FyZ3MpOgorICAgICAgICBwYXRoID0gc2VsZi5jb25maWcuX3NjcmlwdF9wYXRo
KHNjcmlwdF9uYW1lKQorICAgICAgICBhcmdzID0gW3BhdGhdICsgbGlzdChleHRyYV9hcmdzKQor
ICAgICAgICBleGl0X2NvZGUgPSBzZWxmLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChhcmdzLCByZXR1
cm5fZXhpdF9jb2RlPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhpdF9jb2RlLCAw
KQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uKHNlbGYpOgorICAgICAgICAj
IEZJWE1FOiBTZWUgdW5zYWZlIGNvbW1lbnQgYXQgdG9wIG9mIGZpbGUuCisgICAgICAgIGlmIG5v
dCBzZWxmLnNhZmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLnNldF9kZWZh
dWx0X2NvbmZpZ3VyYXRpb24oJ0RlYnVnJykKKworICAgICAgICBjID0gY29uZmlnLkNvbmZpZyhz
ZWxmLmV4ZWN1dGl2ZSwgc2VsZi5mcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmRlZmF1
bHRfY29uZmlndXJhdGlvbigpLCAnRGVidWcnKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25m
aWd1cmF0aW9uX19vYmplY3RfY2FjaGluZyhzZWxmKToKKyAgICAgICAgIyBGSVhNRTogU2VlIHVu
c2FmZSBjb21tZW50IGF0IHRvcCBvZiBmaWxlLgorICAgICAgICBpZiBub3Qgc2VsZi5zYWZlOgor
ICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5zZXRfZGVmYXVsdF9jb25maWd1cmF0
aW9uKCdEZWJ1ZycpCisKKyAgICAgICAgYyA9IGNvbmZpZy5Db25maWcoc2VsZi5leGVjdXRpdmUs
IHNlbGYuZnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kZWZhdWx0X2NvbmZpZ3VyYXRp
b24oKSwgJ0RlYnVnJykKKworICAgICAgICAjIE5vdyBjaGFuZ2UgdGhlIHJlYWwgc2V0dGluZyBh
bmQgdmVyaWZ5IHRoYXQgdGhlIGxvY2FsIG9iamVjdCBzdGlsbAorICAgICAgICAjIGhhcyBpdCBj
YWNoZWQuCisgICAgICAgIHNlbGYuc2V0X2RlZmF1bHRfY29uZmlndXJhdGlvbignUmVsZWFzZScp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kZWZhdWx0X2NvbmZpZ3VyYXRpb24oKSwgJ0Rl
YnVnJykKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29uZmlndXJhdGlvbl9fZ2xvYmFsX2NhY2hp
bmcoc2VsZik6CisgICAgICAgICMgRklYTUU6IFNlZSB1bnNhZmUgY29tbWVudCBhdCB0b3Agb2Yg
ZmlsZS4KKyAgICAgICAgaWYgbm90IHNlbGYuc2FmZToKKyAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgICMgRklYTUU6IHVwZGF0ZSB0aGlzIG1ldGhvZCB3aGVuIHdlIHJlbW92ZSB0aGUgZ2xv
YmFsIG11dGFibGUKKyAgICAgICAgIyBzdGF0aWMgaW4gY29uZmlnLnB5LgorICAgICAgICBjID0g
Y29uZmlnLkNvbmZpZyhzZWxmLmV4ZWN1dGl2ZSwgc2VsZi5mcykKKyAgICAgICAgc2VsZi5zZXRf
ZGVmYXVsdF9jb25maWd1cmF0aW9uKCdEZWJ1ZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Yy5kZWZhdWx0X2NvbmZpZ3VyYXRpb24oKSwgJ0RlYnVnJykKKworICAgICAgICBzZWxmLnNldF9k
ZWZhdWx0X2NvbmZpZ3VyYXRpb24oJ1JlbGVhc2UnKQorCisgICAgICAgICMgV2Ugc3RpbGwgcGlj
ayB1cCB0aGUgZ2xvYmFsbHktY2FjaGVkIHZlcnNpb24uCisgICAgICAgIGMgPSBjb25maWcuQ29u
ZmlnKHNlbGYuZXhlY3V0aXZlLCBzZWxmLmZzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMu
ZGVmYXVsdF9jb25maWd1cmF0aW9uKCksICdEZWJ1ZycpCisKKyAgICAgICAgIyBDbGVhciB0aGUg
Z2xvYmFsIGNhY2hlLCBhbmQgdGhlbiBhIG5ldyBvYmplY3Qgc2hvdWxkIHBpY2sgdXAgdGhlCisg
ICAgICAgICMgYWN0dWFsIHNldHRpbmcuCisgICAgICAgIGNvbmZpZy5jbGVhcl9jYWNoZWRfY29u
ZmlndXJhdGlvbigpCisgICAgICAgIGMgPSBjb25maWcuQ29uZmlnKHNlbGYuZXhlY3V0aXZlLCBz
ZWxmLmZzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGVmYXVsdF9jb25maWd1cmF0aW9u
KCksICdSZWxlYXNlJykKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29uZmlndXJhdGlvbl9fbm9u
ZShzZWxmKToKKyAgICAgICAgIyBGSVhNRTogU2VlIHVuc2FmZSBjb21tZW50IGF0IHRvcCBvZiBm
aWxlLgorICAgICAgICBpZiBub3Qgc2VsZi5zYWZlOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgc2VsZi5zZXRfZGVmYXVsdF9jb25maWd1cmF0aW9uKE5vbmUpCisgICAgICAgIGMgPSBj
b25maWcuQ29uZmlnKHNlbGYuZXhlY3V0aXZlLCBzZWxmLmZzKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGMuZGVmYXVsdF9jb25maWd1cmF0aW9uKCksICdSZWxlYXNlJykKKworCitjbGFzcyBV
bml0VGVzdChJbnRlZ3JhdGlvblRlc3QpOgorICAgICIiIlJ1bnMgYSBiYXNpYyBzZXQgb2YgdGVz
dHMgdXNpbmcgbW9ja3MgaW5zdGVhZCBvZiByZWFsIG9iamVjdHMgYW5kCisgICAgcnVucyBhbiBh
ZGRpdGlvbmFsIHNldCBvZiB0ZXN0cyB3aXRoIHRoZSBtb2Nrcy4iIiIKKyAgICBkZWYgc2V0VXAo
c2VsZik6CisgICAgICAgIHNlbGYuZXhlY3V0aXZlID0gZXhlY3V0aXZlX21vY2suTW9ja0V4ZWN1
dGl2ZTIob3V0cHV0PSdmb28nKQorICAgICAgICBzZWxmLmZzID0gZmlsZXN5c3RlbV9tb2NrLk1v
Y2tGaWxlU3lzdGVtKHsnZm9vL0NvbmZpZ3VyYXRpb24nOiAnUmVsZWFzZSd9KQorICAgICAgICBz
ZWxmLmNvbmZpZyA9IGNvbmZpZy5Db25maWcoc2VsZi5leGVjdXRpdmUsIHNlbGYuZnMpCisgICAg
ICAgIGNvbmZpZy5jbGVhcl9jYWNoZWRfY29uZmlndXJhdGlvbigpCisgICAgICAgIHNlbGYuc2Fm
ZSA9IFRydWUKKwogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgY29uZmlnLmNsZWFy
X2NhY2hlZF9jb25maWd1cmF0aW9uKCkKIAorICAgIGRlZiBzZXRfZGVmYXVsdF9jb25maWd1cmF0
aW9uKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5mcy5maWxlc1snZm9vL0NvbmZpZ3VyYXRp
b24nXSA9IHZhbHVlCisKKyAgICBkZWYgX3dyaXRlX2NvbmZpZyhzZWxmLCB2YWx1ZSk6CisgICAg
ICAgICMgV2Ugd3JpdGUgdGhlICJjb25maWd1cmF0aW9uIGZpbGUiIGRpcmVjdGx5IHNpbmNlIHRo
ZXJlJ3Mgbm8KKyAgICAgICAgIyBhbmFsb2d1ZSBmb3IgYSBtb2NrZWQgc2V0LXdlYmtpdC1jb25m
aWd1cmF0aW9uLgorICAgICAgICBzZWxmLmZzLndyaXRlX3RleHRfZmlsZSgnZm9vL0NvbmZpZ3Vy
YXRpb24nLCB2YWx1ZSkKKwogICAgIGRlZiBtYWtlX2NvbmZpZyhzZWxmLCBvdXRwdXQ9JycsIGZp
bGVzPXt9LCBleGl0X2NvZGU9MCk6CiAgICAgICAgIGUgPSBleGVjdXRpdmVfbW9jay5Nb2NrRXhl
Y3V0aXZlMihvdXRwdXQ9b3V0cHV0LCBleGl0X2NvZGU9ZXhpdF9jb2RlKQogICAgICAgICBmcyA9
IGZpbGVzeXN0ZW1fbW9jay5Nb2NrRmlsZVN5c3RlbShmaWxlcykKQEAgLTUyLDYgKzE3NiwzMSBA
QCBjbGFzcyBDb25maWdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgYyA9IHNlbGYu
bWFrZV9jb25maWcoJ2ZvbycsIHsnZm9vL0NvbmZpZ3VyYXRpb24nOiBjb250ZW50c30pCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kZWZhdWx0X2NvbmZpZ3VyYXRpb24oKSwgZXhwZWN0ZWQp
CiAKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb25fX2RlYnVnKHNlbGYpOgorICAg
ICAgICBzZWxmLmFzc2VydF9jb25maWd1cmF0aW9uKCdEZWJ1ZycsICdEZWJ1ZycpCisKKyAgICBk
ZWYgdGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb25fX2RlcGxveW1lbnQoc2VsZik6CisgICAgICAg
IHNlbGYuYXNzZXJ0X2NvbmZpZ3VyYXRpb24oJ0RlcGxveW1lbnQnLCAnUmVsZWFzZScpCisKKyAg
ICBkZWYgdGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb25fX2RldmVsb3BtZW50KHNlbGYpOgorICAg
ICAgICBzZWxmLmFzc2VydF9jb25maWd1cmF0aW9uKCdEZXZlbG9wbWVudCcsICdEZWJ1ZycpCisK
KyAgICBkZWYgdGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb25fX25vdGZvdW5kKHNlbGYpOgorICAg
ICAgICAjIFRoaXMgdGVzdHMgd2hhdCBoYXBwZW5zIGlmIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRp
b24gZmlsZQorICAgICAgICAjIGRvZXNuJ3QgZXhpc3QuCisgICAgICAgIGMgPSBzZWxmLm1ha2Vf
Y29uZmlnKG91dHB1dD0nZm9vJywgZmlsZXM9eydmb28vQ29uZmlndXJhdGlvbic6IE5vbmV9KQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGVmYXVsdF9jb25maWd1cmF0aW9uKCksICJSZWxl
YXNlIikKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29uZmlndXJhdGlvbl9fcmVsZWFzZShzZWxm
KToKKyAgICAgICAgc2VsZi5hc3NlcnRfY29uZmlndXJhdGlvbignUmVsZWFzZScsICdSZWxlYXNl
JykKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29uZmlndXJhdGlvbl9fdW5rbm93bihzZWxmKToK
KyAgICAgICAgIyBJZ25vcmUgdGhlIHdhcm5pbmcgYWJvdXQgYW4gdW5rbm93biBjb25maWd1cmF0
aW9uIHZhbHVlLgorICAgICAgICBvYyA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCisg
ICAgICAgIG9jLmNhcHR1cmVfb3V0cHV0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRfY29uZmlndXJh
dGlvbignVW5rbm93bicsICdVbmtub3duJykKKyAgICAgICAgb2MucmVzdG9yZV9vdXRwdXQoKQor
CiAgICAgZGVmIHRlc3RfYnVpbGRfZGlyZWN0b3J5X3RvcGxldmVsKHNlbGYpOgogICAgICAgICBj
ID0gc2VsZi5tYWtlX2NvbmZpZygndG9wbGV2ZWwnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGMuYnVpbGRfZGlyZWN0b3J5KE5vbmUpLCAndG9wbGV2ZWwnKQpAQCAtOTQsMzEgKzI0Myw2IEBA
IGNsYXNzIENvbmZpZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGMuYnVpbGRfZHVtcHJlbmRlcnRyZWUoJ1JlbGVhc2UnKSkKICAgICAgICAgb2MucmVz
dG9yZV9vdXRwdXQoKQogCi0gICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX19yZWxl
YXNlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF9jb25maWd1cmF0aW9uKCdSZWxlYXNlJywg
J1JlbGVhc2UnKQotCi0gICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX19kZWJ1Zyhz
ZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRfY29uZmlndXJhdGlvbignRGVidWcnLCAnRGVidWcn
KQotCi0gICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX19kZXBsb3ltZW50KHNlbGYp
OgotICAgICAgICBzZWxmLmFzc2VydF9jb25maWd1cmF0aW9uKCdEZXBsb3ltZW50JywgJ1JlbGVh
c2UnKQotCi0gICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX19kZXZlbG9wbWVudChz
ZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRfY29uZmlndXJhdGlvbignRGV2ZWxvcG1lbnQnLCAn
RGVidWcnKQotCi0gICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX19ub3Rmb3VuZChz
ZWxmKToKLSAgICAgICAgIyBUaGlzIHRlc3RzIHdoYXQgaGFwcGVucyBpZiB0aGUgZGVmYXVsdCBj
b25maWd1cmF0aW9uIGZpbGUKLSAgICAgICAgIyBkb2Vzbid0IGV4aXN0LgotICAgICAgICBjID0g
c2VsZi5tYWtlX2NvbmZpZyhvdXRwdXQ9J2ZvbycsIGZpbGVzPXsnZm9vL0NvbmZpZ3VyYXRpb24n
OiBOb25lfSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmRlZmF1bHRfY29uZmlndXJhdGlv
bigpLCAiUmVsZWFzZSIpCi0KLSAgICBkZWYgdGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb25fX3Vu
a25vd24oc2VsZik6Ci0gICAgICAgICMgSWdub3JlIHRoZSB3YXJuaW5nIGFib3V0IGFuIHVua25v
d24gY29uZmlndXJhdGlvbiB2YWx1ZS4KLSAgICAgICAgb2MgPSBvdXRwdXRjYXB0dXJlLk91dHB1
dENhcHR1cmUoKQotICAgICAgICBvYy5jYXB0dXJlX291dHB1dCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0X2NvbmZpZ3VyYXRpb24oJ1Vua25vd24nLCAnVW5rbm93bicpCi0gICAgICAgIG9jLnJlc3Rv
cmVfb3V0cHV0KCkKLQogICAgIGRlZiB0ZXN0X3BhdGhfZnJvbV93ZWJraXRfYmFzZShzZWxmKToK
ICAgICAgICAgIyBGSVhNRTogV2UgdXNlIGEgcmVhbCBmaWxlc3lzdGVtIGhlcmUuIFNob3VsZCB0
aGlzIG1vdmUgdG8gYQogICAgICAgICAjIG1vY2tlZCBvbmU/Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>