<?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>81415</bug_id>
          
          <creation_ts>2012-03-16 15:18:46 -0700</creation_ts>
          <short_desc>[GTK] Allow running run-gtk-tests during &apos;make distcheck&apos;</short_desc>
          <delta_ts>2012-03-19 19:35:00 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581014</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-16 15:18:46 -0700</bug_when>
    <thetext>It&apos;s becoming harder and harder to run GTK+ API tests outside of run-gtk-tests. &apos;make dist&apos; should be able to use run-gtk-tests so that we can rely on some environment variables and Xvfb to be around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581028</commentid>
    <comment_count>1</comment_count>
      <attachid>132395</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-16 15:24:23 -0700</bug_when>
    <thetext>Created attachment 132395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581064</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-16 15:58:58 -0700</bug_when>
    <thetext>This bug is on track for WebKitGTK+ 1.8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581296</commentid>
    <comment_count>3</comment_count>
      <attachid>132395</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-17 03:39:14 -0700</bug_when>
    <thetext>Comment on attachment 132395
Patch

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

Nice patch! Just a few remarks to consider before landing :)

&gt; Source/WebKit/gtk/GNUmakefile.am:-639
&gt; -	  $(GTESTER) --verbose $$test_options -o test-report.xml $(TEST_PROGS); \
&gt; -	  $(GTESTER_REPORT) test-report.xml &gt; test-report.html ;

Would it be useful to add support for the test-report generation in run-gtk-tests?

&gt; Tools/Scripts/run-gtk-tests:122
&gt; +        if (not spi_bus_launcher_path) or (not spi_registryd_path):

You can just omit the parenthesis here I think.

&gt; Tools/Scripts/run-gtk-tests:126
&gt; +            uself._ally_bus_launcher = self._create_process([spi_bus_launcher_path], env=self._test_env)

typo: uself

&gt; Tools/Scripts/run-gtk-tests:139
&gt; +        if spi_registryd_path:

I don&apos;t think this test is needed, it&apos;s done in line 122 already.

&gt; Tools/Scripts/run-gtk-tests:182
&gt; +        tests_to_remove = []
&gt; +        for test in self._tests:
&gt; +            for skipped in self._skipped_tests:
&gt; +                if test.find(skipped) != -1:
&gt; +                    tests_to_remove.append(test)
&gt; +                    continue

Maybe you can simplify this code by using sets, if you can avoid using .find() to filter, something like:

tests = sets.Set(self._tests)
self._tests = tests.difference(self._skipped_tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582630</commentid>
    <comment_count>4</comment_count>
      <attachid>132395</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-19 19:27:49 -0700</bug_when>
    <thetext>Comment on attachment 132395
Patch

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

&gt;&gt; Source/WebKit/gtk/GNUmakefile.am:-639
&gt;&gt; -	  $(GTESTER_REPORT) test-report.xml &gt; test-report.html ;
&gt; 
&gt; Would it be useful to add support for the test-report generation in run-gtk-tests?

It might be, though I&apos;m not aware of anyone ever using this feature. It could be a feature of run-gtk-tests instead if people are interested.

&gt;&gt; Tools/Scripts/run-gtk-tests:122
&gt;&gt; +        if (not spi_bus_launcher_path) or (not spi_registryd_path):
&gt; 
&gt; You can just omit the parenthesis here I think.

Okay.

&gt;&gt; Tools/Scripts/run-gtk-tests:126
&gt;&gt; +            uself._ally_bus_launcher = self._create_process([spi_bus_launcher_path], env=self._test_env)
&gt; 
&gt; typo: uself

Yikes! Thanks.

&gt;&gt; Tools/Scripts/run-gtk-tests:139
&gt;&gt; +        if spi_registryd_path:
&gt; 
&gt; I don&apos;t think this test is needed, it&apos;s done in line 122 already.

Fixed.

&gt;&gt; Tools/Scripts/run-gtk-tests:182
&gt;&gt; +                    continue
&gt; 
&gt; Maybe you can simplify this code by using sets, if you can avoid using .find() to filter, something like:
&gt; 
&gt; tests = sets.Set(self._tests)
&gt; self._tests = tests.difference(self._skipped_tests)

The problem with sets is that I want to do a substring search. Is it possible easily? I considered using lisp-y list manipulation like map, but this seemed clearer in the end. I have to land this patch now, but if you can think of a better way that involves substrings, I&apos;ll gladly update this code in a followup patch.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582641</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-19 19:35:00 -0700</bug_when>
    <thetext>Committed r111316: &lt;http://trac.webkit.org/changeset/111316&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132395</attachid>
            <date>2012-03-16 15:24:23 -0700</date>
            <delta_ts>2012-03-19 19:27:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81415-20120316152422.patch</filename>
            <type>text/plain</type>
            <size>16391</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYzQ3NGI5NWQ0
ZGRlOTJiNjYxZTFjZDNhYmYxZWFhMzAxZWUxZmI5OS4uZjcwNTVkNTU0MjUyMmFlYzcxM2U2ZTU3
NTNhOTc2NDgzYTkxNDUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTAzLTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXSBBbGxvdyBydW5uaW5nIHJ1bi1ndGstdGVzdHMgZHVyaW5nICdtYWtlIGRpc3QnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTQxNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06IFJlbW92ZSAnbWFrZSBjaGVjaycgcnVsZXMgZnJvbSB0aGUgbWFrZWZpbGUKKyAgICAg
ICAgSW5zdGVhZCB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm93IGluIHRoZSBUb29scyBtYWtlZmls
ZS4KKwogMjAxMi0wMy0xNCAgTGFuZHJ5IEJyZXVpbCAgPGxhbmRyeUBvcGVuYnNkLm9yZz4KIAog
ICAgICAgICBXZWJLaXQvZ3RrL3Jlc291cmNlcy9lcnJvci5odG1sIGZvbnQtc2l6ZSBlcnJvcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCAwNGY5YTcwZmEyNzUxNTcxNjA1ZDVlN2ZlYjQ4
ZWYwNjc0ZjI4NmM4Li45OWJkOTcxMjljZjhiNGNiMGU3ZDNiMGFlNmUxYzQwN2FhOWQyOTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMSw4ICsxLDMgQEAKLQotIyBQcm9ncmFtcyB0
byBydW4gdGhlIFdlYktpdEd0ayB1bml0IHRlc3RzCi1HVEVTVEVSID0gZ3Rlc3RlcgotR1RFU1RF
Ul9SRVBPUlQgPSBndGVzdGVyLXJlcG9ydAotCiBsaWJfTFRMSUJSQVJJRVMgKz0gXAogCWxpYndl
YmtpdGd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5P
Ul9WRVJTSU9OQC5sYQogCkBAIC00MDgsNyArNDAzLDYgQEAgZGlzdF9yZXNvdXJjZXNfREFUQSA9
IFwKIAkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0L2d0ay9yZXNvdXJjZXMvKi5o
dG1sKQogCiAjIEJ1aWxkIHVuaXQgdGVzdHMKLW5vaW5zdF9QUk9HUkFNUyArPSAkKFRFU1RfUFJP
R1MpCiB3ZWJraXRfdGVzdHNfY2ZsYWdzID0gXAogCS1mbm8tc3RyaWN0LWFsaWFzaW5nIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMgXApAQCAt
NDM3LDcgKzQzMSw3IEBAIHdlYmtpdF90ZXN0c19sZGZsYWdzID0gXAogCS1uby1pbnN0YWxsIFwK
IAktbm8tZmFzdC1pbnN0YWxsCiAKLVRFU1RfUFJPR1MgKz0gXAorbm9pbnN0X1BST0dSQU1TICs9
IFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdGFwcGxpY2F0aW9uY2FjaGUgXAogCVByb2dyYW1z
L3VuaXR0ZXN0cy90ZXN0ZG9tZG9jdW1lbnQgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0ZG9t
ZG9td2luZG93IFwKQEAgLTYyMSwyMiArNjE1LDMgQEAgaW5zdGFsbC1kYXRhLWxvY2FsOiBwby1p
bnN0YWxsLWRhdGEtbG9jYWwKIGluc3RhbGxkaXJzLWRhdGEtbG9jYWw6IHBvLWluc3RhbGxkaXJz
LWRhdGEtbG9jYWwKIHVuaW5zdGFsbC1sb2NhbDogcG8tdW5pbnN0YWxsLWxvY2FsCiAKLSMgUnVu
IGFsbCB0ZXN0cyBpbiBjd2QKLSMgRklYTUU6IHdlIHNob3VsZCBydW4gdGhpcyB1bmRlciB4dmZi
Ci10ZXN0OiAkKFRFU1RfUFJPR1MpCi0JJChHVEVTVEVSKSAtLXZlcmJvc2UgJChURVNUX1BST0dT
KTsKLQotIyB0ZXN0LXJlcG9ydDogcnVuIHRlc3RzIGluIGN3ZCBhbmQgZ2VuZXJhdGUgcmVwb3J0
Ci0jIGZ1bGwtcmVwb3J0OiBydW4gdGVzdHMgaW4gY3dkIHdpdGggLW0gcGVyZiBhbmQgLW0gc2xv
dyBhbmQgZ2VuZXJhdGUgcmVwb3J0Ci0jIHBlcmYtcmVwb3J0OiBydW4gdGVzdHMgaW4gY3dkIHdp
dGggLW0gcGVyZiBhbmQgZ2VuZXJhdGUgcmVwb3J0Ci10ZXN0LXJlcG9ydCBmdWxsLXJlcG9ydCBw
ZXJmLXJlcG9ydDogJChURVNUX1BST0dTKQotCUAgY2FzZSAkQCBpbiBcCi0JICB0ZXN0LXJlcG9y
dCkgdGVzdF9vcHRpb25zPSItayI7OyBcCi0JICBmdWxsLXJlcG9ydCkgdGVzdF9vcHRpb25zPSIt
ayAtbT1wZXJmIjs7IFwKLQkgIHBlcmYtcmVwb3J0KSB0ZXN0X29wdGlvbnM9Ii1rIC1tPXBlcmYg
LW09c2xvdyI7OyBcCi0JICBlc2FjIDsgXAotCSAgJChHVEVTVEVSKSAtLXZlcmJvc2UgJCR0ZXN0
X29wdGlvbnMgLW8gdGVzdC1yZXBvcnQueG1sICQoVEVTVF9QUk9HUyk7IFwKLQkgICQoR1RFU1RF
Ul9SRVBPUlQpIHRlc3QtcmVwb3J0LnhtbCA+IHRlc3QtcmVwb3J0Lmh0bWwgOwotCi0uUEhPTlk6
IHRlc3QgdGVzdC1yZXBvcnQgcGVyZi1yZXBvcnQgZnVsbC1yZXBvcnQKLWNoZWNrLWxvY2FsOiB0
ZXN0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
ZWEyM2JjNGViZTBkZDYxNGFmNzFiOWYzZDFiOWRiYTgzNWU2N2Q4Yi4uMTU2OTVkMWEzODU4YTMx
NmQ2ZGNhMmJlYjE5MTAxMjBiN2ZkYTE4MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTE2ICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBbGxvdyBy
dW5uaW5nIHJ1bi1ndGstdGVzdHMgZHVyaW5nICdtYWtlIGRpc3RjaGVjaycKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNDE1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRoZSBidWlsZCBhbmQg
cnVuLWd0ay10ZXN0cyBzbyB0aGF0IGl0IGNhbiBydW4gZHVyaW5nICdtYWtlIGRpc3RjaGVjaycK
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXN0cmlidXRlIHJ1bi1ndGstdGVzdHMgZHVy
aW5nICdtYWtlIGRpc3QnIGFuZCBtYWtlIGl0IHRoZQorICAgICAgICBtYWluIGNvbW1hbmQgcnVu
IGR1cmluZyAnbWFrZSBjaGVjay4nCisgICAgICAgICogU2NyaXB0cy9ydW4tZ3RrLXRlc3RzOiBS
ZWZhY3RvcmVkIHJ1bi1ndGstdGVzdHMgc28gdGhhdCBqaGJ1aWxkIGlzIG5vIGxvbmdlcgorICAg
ICAgICBhIHJlcXVpcmVtZW50IHRvIHJ1biBpdC4gSWYgamhidWlsZCBpc24ndCBhcm91bmQgaXQg
d2lsbCBzaW1wbHkgbm90IHN0YXJ0IHRoZQorICAgICAgICBTUEkgZGFlbW9ucyBhbmQgc2tpcCB0
aGUgV2ViS2l0MiBhY2Nlc3NpYmlsaXR5IHRlc3QuIFJlbW92ZSB0ZXN0IHJ1bnMgZnJvbSB0aGUK
KyAgICAgICAgbWFpbiBsb29wIGFuZCBzaW1wbHkgdXNlIHRoZSBtYWluIGxvb3AgaW4gYSBzeW5j
aHJvbm91cyBtZXRob2QgdG8gc3RhcnQgU1BJCisgICAgICAgIGRhZW1vbnMuIERpZCBhIGJ1bmNo
IG9mIGdlbmVyYWwgY2xlYW51cCBhcm91bmQgdGhlc2UgdGFza3MuCisKIDIwMTItMDMtMTYgIERp
bnUgSmFjb2IgIDxkaW51LmphY29iQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1drMl0gQXNz
ZXJ0aW9uIEZhaWx1cmUgYW5kIGNyYXNoIG9uIGZpbGUgdXBsb2FkCmRpZmYgLS1naXQgYS9Ub29s
cy9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCmluZGV4IDAxYjljM2YzN2Nm
ZDlmNmZhNTE1NTM3NDNiYmEzODA0YTU1NDg3ZDIuLjhlYzc1NzU5NjY0ZjI4MjMxOTY2YjFlZGY4
NjcwZjI0ZWJiZTgyZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rv
b2xzL0dOVW1ha2VmaWxlLmFtCkBAIC0yMzYsMTEgKzIzNiwxNSBAQCBUZXN0TmV0c2NhcGVQbHVn
aW5fbGlidGVzdG5ldHNjYXBlcGx1Z2luX2xhX0xERkxBR1MgPSBcCiBDTEVBTkZJTEVTICs9IFRl
c3ROZXRzY2FwZVBsdWdpbi9saWJ0ZXN0bmV0c2NhcGVwbHVnaW4ubGEKIGVuZGlmCiAKK2NoZWNr
LWxvY2FsOgorCSQodG9wX3NyY2RpcikvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisKIEVY
VFJBX0RJU1QgKz0gXAogCVRvb2xzL2d0ay9jb21tb24ucHkgXAogCVRvb2xzL2d0ay9nZW5lcmF0
ZS1ndGtkb2MgXAogCVRvb2xzL2d0ay9ndGtkb2MucHkgXAogCVRvb2xzL1NjcmlwdHMvVkNTVXRp
bHMucG0gXAorCVRvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cyBcCiAJVG9vbHMvU2NyaXB0cy93
ZWJraXQtYnVpbGQtZGlyZWN0b3J5IFwKIAlUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9y
dW4tZ3RrLXRlc3RzCmluZGV4IDg0MzQzNTAyMTc0ZWVhNjUxY2IyYzFjNzQxMmUxZTkyOTA5NjNl
NDMuLjQ0ZDM3OWZjYWZmN2U1YjAwNjliNmZkNmZlNGE0YjY4ZWE3YTNiYWIgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1ndGst
dGVzdHMKQEAgLTQ0LDExICs0NCwxOSBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAjYnVp
bGRfZGlyZWN0b3J5ID0gc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtidWlsZF9kaXJlY3Rv
cnlfc2NyaXB0LCAiLS1jb25maWd1cmF0aW9uIl0pLnJzdHJpcCgpCiAKICAgICAgICAgc2VsZi5f
b3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fYTExeV9yZWdpc3RyeWQgPSBOb25lCi0g
ICAgICAgIHNlbGYuX3RpbWVkX291dCA9IEZhbHNlCiAgICAgICAgIHNlbGYuX2d0a190b29sc19k
aXJlY3RvcnkgPSBvcy5wYXRoLmpvaW4oc2VsZi5fZ2V0X3RvcF9sZXZlbF9kaXJlY3RvcnkoKSwg
IlRvb2xzIiwgImd0ayIpCiAgICAgICAgIHNlbGYuX3Byb2dyYW1zX3BhdGggPSBvcy5wYXRoLmpv
aW4oc2VsZi5fZ2V0X2J1aWxkX2RpcmVjdG9yeSgpLCAiUHJvZ3JhbXMiKQogICAgICAgICBzZWxm
Ll90ZXN0cyA9IHNlbGYuX2dldF90ZXN0cyh0ZXN0cykKKyAgICAgICAgc2VsZi5fc2tpcHBlZF90
ZXN0cyA9IFRlc3RSdW5uZXIuU0tJUFBFRAorCisgICAgICAgICMgVGhlc2UgU1BJIGRhZW1vbnMg
bmVlZCB0byBiZSBhY3RpdmUgZm9yIHRoZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIHRvIHdvcmsuCisg
ICAgICAgIHNlbGYuX3NwaV9yZWdpc3RyeWQgPSBOb25lCisgICAgICAgIHNlbGYuX3NwaV9idXNf
bGF1bmNoZXIgPSBOb25lCisKKyAgICAgICAgIyBydW4tZ3RrLXRlc3RzIG1heSBiZSBydW4gZHVy
aW5nIG1ha2UgZGlzdGNoZWNrLCB3aGljaCBkb2Vzbid0IGluY2x1ZGUgamhidWlsZC4KKyAgICAg
ICAgc2VsZi5famhidWlsZF9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX2d0a190b29sc19kaXJl
Y3RvcnksICJydW4td2l0aC1qaGJ1aWxkIikKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3Rz
KHNlbGYuX2poYnVpbGRfcGF0aCk6CisgICAgICAgICAgICBzZWxmLl9qaGJ1aWxkX3BhdGggPSBO
b25lCiAKICAgICBkZWYgX2dldF90b3BfbGV2ZWxfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICBy
ZXR1cm4gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKSwgIi4uIiwgIi4uIikpCkBAIC02Niw2ICs3NCw5IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAg
ICAgICAgIGJ1aWxkX2RpcmVjdG9yeSA9IG9zLnBhdGguam9pbih0b3BfbGV2ZWwsICdXZWJLaXRC
dWlsZCcsICdEZWJ1ZycpCiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihi
dWlsZF9kaXJlY3RvcnksICcubGlicycpKToKICAgICAgICAgICAgIHJldHVybiBidWlsZF9kaXJl
Y3RvcnkKKyAgICAgICAgYnVpbGRfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKHRvcF9sZXZlbCwg
J19idWlsZCcpCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihidWlsZF9k
aXJlY3RvcnksICcubGlicycpKToKKyAgICAgICAgICAgIHJldHVybiBidWlsZF9kaXJlY3RvcnkK
IAogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHRvcF9sZXZlbCwgJ1dlYktpdEJ1aWxkJykK
IApAQCAtODEsMTIwICs5MiwxMzcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIGZv
ciB0ZXN0X2ZpbGUgaW4gb3MubGlzdGRpcihhYnNvbHV0ZV90ZXN0X2Rpcik6CiAgICAgICAgICAg
ICAgICAgaWYgbm90IHRlc3RfZmlsZS5sb3dlcigpLnN0YXJ0c3dpdGgoInRlc3QiKToKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICB0ZXN0X3JlbGF0aXZlX3Bh
dGggPSBvcy5wYXRoLmpvaW4odGVzdF9kaXIsIHRlc3RfZmlsZSkKLSAgICAgICAgICAgICAgICBp
ZiB0ZXN0X3JlbGF0aXZlX3BhdGggaW4gc2VsZi5TS0lQUEVEOgotICAgICAgICAgICAgICAgICAg
ICBzeXMuc3Rkb3V0LndyaXRlKCJTa2lwcGluZyB0ZXN0ICVzXG4iICUgKHRlc3RfcmVsYXRpdmVf
cGF0aCkpCi0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgdGVzdF9wYXRoID0gb3MucGF0
aC5qb2luKHNlbGYuX3Byb2dyYW1zX3BhdGgsIHRlc3RfcmVsYXRpdmVfcGF0aCkKKyAgICAgICAg
ICAgICAgICB0ZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fcHJvZ3JhbXNfcGF0aCwgdGVz
dF9kaXIsIHRlc3RfZmlsZSkKICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZSh0ZXN0
X3BhdGgpIGFuZCBvcy5hY2Nlc3ModGVzdF9wYXRoLCBvcy5YX09LKToKICAgICAgICAgICAgICAg
ICAgICAgdGVzdHMuYXBwZW5kKHRlc3RfcGF0aCkKICAgICAgICAgcmV0dXJuIHRlc3RzCiAKLSAg
ICBkZWYgX2xvb2t1cF9hdHNwaTJfYmluYXJ5KHNlbGYsIGpoYnVpbGRfcGF0aCwgZmlsZW5hbWUp
OgotICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbamhidWlsZF9wYXRoICwncGtn
LWNvbmZpZycsICctLXZhcmlhYmxlPWV4ZWNfcHJlZml4JywgJ2F0c3BpLTInXSwgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSkKKyAgICBkZWYgX2NyZWF0ZV9wcm9jZXNzKHNlbGYsIGNvbW1hbmQsIHN0
ZG91dD1Ob25lLCBzdGRlcnI9Tm9uZSwgZW52PW9zLmVudmlyb24pOgorICAgICAgICBpZiBzZWxm
Ll9qaGJ1aWxkX3BhdGg6CisgICAgICAgICAgICBjb21tYW5kLmluc2VydCgwLCBzZWxmLl9qaGJ1
aWxkX3BhdGgpCisgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLlBvcGVuKGNvbW1hbmQsIHN0ZG91
dD1zdGRvdXQsIHN0ZGVycj1zdGRlcnIsIGVudj1lbnYpCisKKyAgICBkZWYgX2xvb2t1cF9hdHNw
aTJfYmluYXJ5KHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgcHJvY2VzcyA9IHNlbGYuX2NyZWF0
ZV9wcm9jZXNzKFsncGtnLWNvbmZpZycsICctLXZhcmlhYmxlPWV4ZWNfcHJlZml4JywgJ2F0c3Bp
LTInXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc3Rkb3V0ID0gcHJvY2Vzcy5j
b21tdW5pY2F0ZSgpWzBdCiAgICAgICAgIGV4ZWNfcHJlZml4ID0gc3Rkb3V0LnJzdHJpcCgnXHJc
bicpCi0gICAgICAgIHBhdGhzX3RvX2NoZWNrID0gWyAnbGliZXhlYycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAnbGliL2F0LXNwaTItY29yZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAnbGliMzIvYXQtc3BpMi1jb3JlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICds
aWI2NC9hdC1zcGkyLWNvcmUnIF0KLSAgICAgICAgZm9yIHBhdGggaW4gcGF0aHNfdG9fY2hlY2s6
CisgICAgICAgIGZvciBwYXRoIGluIFsgJ2xpYmV4ZWMnLCAnbGliL2F0LXNwaTItY29yZScsICds
aWIzMi9hdC1zcGkyLWNvcmUnLCAnbGliNjQvYXQtc3BpMi1jb3JlJyBdOgogICAgICAgICAgICAg
ZmlsZXBhdGggPSBvcy5wYXRoLmpvaW4oZXhlY19wcmVmaXgsIHBhdGgsIGZpbGVuYW1lKQogICAg
ICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZmlsZXBhdGgpOgogICAgICAgICAgICAgICAgIHJl
dHVybiBmaWxlcGF0aAogCiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBkZWYgX3J1bl9jb21t
YW5kX3doZW5fZGJ1c19zZXJ2aWNlX2FwcGVhcnMoc2VsZiwgc2VydmljZV9uYW1lLCBoYW5kbGVy
KToKLSAgICAgICAgZGVmIG9uX25hbWVfYXBwZWFyZWQoKmFyZ3MpOgotICAgICAgICAgICAgaGFu
ZGxlcigpCi0KLSAgICAgICAgZGVmIG9uX25hbWVfdmFuaXNoZWQoKmFyZ3MpOgotICAgICAgICAg
ICAgcGFzcwotCi0gICAgICAgIEdpby5idXNfd2F0Y2hfbmFtZShHaW8uQnVzVHlwZS5TRVNTSU9O
LCBzZXJ2aWNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBHaW8uQnVzTmFtZVdh
dGNoZXJGbGFncy5OT05FLCBvbl9uYW1lX2FwcGVhcmVkLCBvbl9uYW1lX3ZhbmlzaGVkKQorICAg
IGRlZiBfc3RhcnRfYWNjZXNzaWJpbGl0eV9kYWVtb25zKHNlbGYpOgorICAgICAgICBpZiBub3Qg
c2VsZi5famhidWlsZF9wYXRoOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKKyAgICAgICAg
c3BpX2J1c19sYXVuY2hlcl9wYXRoID0gc2VsZi5fbG9va3VwX2F0c3BpMl9iaW5hcnkoJ2F0LXNw
aS1idXMtbGF1bmNoZXInKQorICAgICAgICBzcGlfcmVnaXN0cnlkX3BhdGggPSBzZWxmLl9sb29r
dXBfYXRzcGkyX2JpbmFyeSgnYXQtc3BpMi1yZWdpc3RyeWQnKQorICAgICAgICBpZiAobm90IHNw
aV9idXNfbGF1bmNoZXJfcGF0aCkgb3IgKG5vdCBzcGlfcmVnaXN0cnlkX3BhdGgpOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgX2NoZWNrX2lmX3Rlc3RzX2hhdmVfdGltZWRf
b3V0KHNlbGYpOgotICAgICAgICBpZiB0aW1lLnRpbWUoKSAtIHNlbGYuX3N0YXJ0X3RpbWUgPD0g
VElNRU9VVDoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdXNlbGYuX2FsbHlfYnVzX2xhdW5j
aGVyID0gc2VsZi5fY3JlYXRlX3Byb2Nlc3MoW3NwaV9idXNfbGF1bmNoZXJfcGF0aF0sIGVudj1z
ZWxmLl90ZXN0X2VudikKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgiRmFpbGVkIHRvIGxhdW5jaCB0aGUgYWNjZXNzaWJpbGl0eSBidXNcbiIpCisgICAgICAg
ICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAg
ICBzeXMuc3Rkb3V0LndyaXRlKCJUZXN0cyB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIiAl
IFRJTUVPVVQpCi0gICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQotICAgICAgICBzZWxmLl90aW1l
ZF9vdXQgPSBUcnVlCi0gICAgICAgIHJldHVybiBUcnVlCiAKLSAgICBkZWYgX2Vuc3VyZV9hY2Nl
c3NpYmlsaXR5X2RhZW1vbl9pc19ydW5uaW5nKHNlbGYsIGpoYnVpbGRfcGF0aCwgdGVzdF9lbnYp
OgotICAgICAgICBhMTF5X3JlZ2lzdHJ5ZF9wYXRoID0gc2VsZi5fbG9va3VwX2F0c3BpMl9iaW5h
cnkoamhidWlsZF9wYXRoLCAnYXQtc3BpMi1yZWdpc3RyeWQnKQotICAgICAgICBpZiBhMTF5X3Jl
Z2lzdHJ5ZF9wYXRoOgorICAgICAgICAjIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCB0aGUgU1BJIGJ1
cyBpcyBsYXVuY2hlZCBiZWZvcmUgdHJ5aW5nIHRvIHN0YXJ0IHRoZSBTUEkKKyAgICAgICAgIyBy
ZWdpc3RyeSwgc28gd2Ugc3BpbiBhIG1haW4gbG9vcCB1bnRpbCB0aGUgYnVzIG5hbWUgYXBwZWFy
cyBvbiBEQnVzLgorICAgICAgICBsb29wID0gR0xpYi5NYWluTG9vcCgpCisgICAgICAgIEdpby5i
dXNfd2F0Y2hfbmFtZShHaW8uQnVzVHlwZS5TRVNTSU9OLCAnb3JnLmExMXkuQnVzJywgR2lvLkJ1
c05hbWVXYXRjaGVyRmxhZ3MuTk9ORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJk
YSAqYXJnczogbG9vcC5xdWl0KCksIE5vbmUpCisgICAgICAgIGxvb3AucnVuKCkKKworICAgICAg
ICBpZiBzcGlfcmVnaXN0cnlkX3BhdGg6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fYTExeV9yZWdpc3RyeWQgPSBzdWJwcm9jZXNzLlBvcGVuKFthMTF5X3JlZ2lzdHJ5
ZF9wYXRoXSwgZW52PXRlc3RfZW52KQorICAgICAgICAgICAgICAgIHNlbGYuX3NwaV9yZWdpc3Ry
eWQgPSBzZWxmLl9jcmVhdGVfcHJvY2Vzcyhbc3BpX3JlZ2lzdHJ5ZF9wYXRoXSwgZW52PXNlbGYu
X3Rlc3RfZW52KQogICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIkZhaWxlZCB0byBydW4gdGhlIGFjY2Vzc2liaWxpdHkgcmVnaXN0cnlcbiIpCisg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRvIGxhdW5jaCB0aGUgYWNj
ZXNzaWJpbGl0eSByZWdpc3RyeVxuIikKICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLmZsdXNo
KCkKLSAgICAgICAgICAgICAgICBzZWxmLl9hMTF5X3JlZ2lzdHJ5ZCA9IE5vbmUKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIGlmIG5v
dCBzZWxmLl90ZXN0czoKLSAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkVSUk9SOiB0ZXN0
cyBub3QgZm91bmQgaW4gJXMuXG4iICUgKHNlbGYuX3Byb2dyYW1zX3BhdGgpKQorICAgICAgICBy
ZXR1cm4gVHJ1ZQorCisgICAgZGVmIF9zZXR1cF90ZXN0aW5nX2Vudmlyb25tZW50KHNlbGYpOgor
ICAgICAgICBzZWxmLl90ZXN0X2VudiA9IG9zLmVudmlyb24KKyAgICAgICAgc2VsZi5fdGVzdF9l
bnZbIkRJU1BMQVkiXSA9IHNlbGYuX29wdGlvbnMuZGlzcGxheQorICAgICAgICBzZWxmLl90ZXN0
X2VudlsiV0VCS0lUX0lOU1BFQ1RPUl9QQVRIIl0gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5q
b2luKHNlbGYuX3Byb2dyYW1zX3BhdGgsICdyZXNvdXJjZXMnLCAnaW5zcGVjdG9yJykpCisgICAg
ICAgIHNlbGYuX3Rlc3RfZW52WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl94dmZiID0gc2VsZi5fY3JlYXRlX3Byb2Nlc3Mo
WyJYdmZiIiwgc2VsZi5fb3B0aW9ucy5kaXNwbGF5LCAiLXNjcmVlbiIsICIwIiwgIjgwMHg2MDB4
MjQiLCAiLW5vbGlzdGVuIiwgInRjcCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNz
LlBJUEUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoIkZhaWxlZCB0byBydW4gWHZmYjogJXNcbiIsIGUpCiAgICAgICAgICAgICBz
eXMuc3RkZXJyLmZsdXNoKCkKLSAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKIAotICAgICAgICB0ZXN0X2VudiA9IG9zLmVudmlyb24KLSAgICAgICAgdGVzdF9l
bnZbIkRJU1BMQVkiXSA9IHNlbGYuX29wdGlvbnMuZGlzcGxheQotICAgICAgICB0ZXN0X2Vudlsi
V0VCS0lUX0lOU1BFQ1RPUl9QQVRIIl0gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHNl
bGYuX3Byb2dyYW1zX3BhdGgsICdyZXNvdXJjZXMnLCAnaW5zcGVjdG9yJykpCi0gICAgICAgIHRl
c3RfZW52WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAgICAgICAgIyBJZiB3ZSBj
YW5ub3Qgc3RhcnQgdGhlIGFjY2Vzc2liaWxpdHkgZGFlbW9ucywgd2UgY2FuIGp1c3Qgc2tpcCB0
aGUgYWNjZXNzaWJpbGl0eSB0ZXN0cy4KKyAgICAgICAgaWYgbm90IHNlbGYuX3N0YXJ0X2FjY2Vz
c2liaWxpdHlfZGFlbW9ucygpOgorICAgICAgICAgICAgcHJpbnQgIkNvdWxkIG5vdCBzdGFydCBh
Y2Nlc3NpYmlsaXR5IGJ1cywgc28gc2tpcHBpbmcgVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkiCisg
ICAgICAgICAgICBzZWxmLl9za2lwcGVkX3Rlc3RzLmFwcGVuZCgiVGVzdFdlYktpdEFjY2Vzc2li
aWxpdHkiKQorICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgIGZhaWxlZF90ZXN0cyA9IFtd
CisgICAgZGVmIF90ZWFyX2Rvd25fdGVzdGluZ19lbnZpcm9ubWVudChzZWxmKToKKyAgICAgICAg
aWYgc2VsZi5fc3BpX3JlZ2lzdHJ5ZDoKKyAgICAgICAgICAgIHNlbGYuX3NwaV9yZWdpc3RyeWQu
dGVybWluYXRlKCkKKyAgICAgICAgaWYgc2VsZi5fc3BpX2J1c19sYXVuY2hlcjoKKyAgICAgICAg
ICAgIHNlbGYuX3NwaV9idXNfbGF1bmNoZXIudGVybWluYXRlKCkKKyAgICAgICAgc2VsZi5feHZm
Yi5raWxsKCk7CisKKyAgICBkZWYgX3JlbW92ZV9za2lwcGVkX3Rlc3RzKHNlbGYpOgorICAgICAg
ICB0ZXN0c190b19yZW1vdmUgPSBbXQorICAgICAgICBmb3IgdGVzdCBpbiBzZWxmLl90ZXN0czoK
KyAgICAgICAgICAgIGZvciBza2lwcGVkIGluIHNlbGYuX3NraXBwZWRfdGVzdHM6CisgICAgICAg
ICAgICAgICAgaWYgdGVzdC5maW5kKHNraXBwZWQpICE9IC0xOgorICAgICAgICAgICAgICAgICAg
ICB0ZXN0c190b19yZW1vdmUuYXBwZW5kKHRlc3QpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCiAKLSAgICAgICAgamhidWlsZF9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX2d0a190b29s
c19kaXJlY3RvcnksICJydW4td2l0aC1qaGJ1aWxkIikKKyAgICAgICAgZm9yIHRlc3QgaW4gdGVz
dHNfdG9fcmVtb3ZlOgorICAgICAgICAgICAgc2VsZi5fdGVzdHMucmVtb3ZlKHRlc3QpCisgICAg
ICAgICAgICBwcmludCAiU2tpcHBpbmcgJXMiICUgdGVzdAogCi0gICAgICAgICMgTWFrZSBzdXJl
IHRoZSBhY2Nlc3NpYmlsaXR5IGJ1cyBpcyBsYXVuY2hlZC4KLSAgICAgICAgYTExeV9idXNfbGF1
bmNoZXJfcGF0aCA9IHNlbGYuX2xvb2t1cF9hdHNwaTJfYmluYXJ5KGpoYnVpbGRfcGF0aCwgJ2F0
LXNwaS1idXMtbGF1bmNoZXInKQotICAgICAgICBhc3NlcnQoYTExeV9idXNfbGF1bmNoZXJfcGF0
aCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYTExeV9idXNfbGF1bmNoZXIgPSBzdWJwcm9j
ZXNzLlBvcGVuKFthMTF5X2J1c19sYXVuY2hlcl9wYXRoXSwgZW52PXRlc3RfZW52KQotICAgICAg
ICBleGNlcHQ6Ci0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gbGF1bmNo
IHRoZSBhY2Nlc3NpYmlsaXR5IGJ1c1xuIikKKyAgICBkZWYgcnVuX3Rlc3RzKHNlbGYpOgorICAg
ICAgICBpZiBub3Qgc2VsZi5fdGVzdHM6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJF
UlJPUjogdGVzdHMgbm90IGZvdW5kIGluICVzLlxuIiAlIChzZWxmLl9wcm9ncmFtc19wYXRoKSkK
ICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQogICAgICAgICAgICAgcmV0dXJuIDEKIAot
ICAgICAgICBsb29wID0gR0xpYi5NYWluTG9vcCgpCi0gICAgICAgIHNlbGYuX3N0YXJ0X3RpbWUg
PSB0aW1lLnRpbWUoKQorICAgICAgICBpZiBub3Qgc2VsZi5fc2V0dXBfdGVzdGluZ19lbnZpcm9u
bWVudCgpOgorICAgICAgICAgICAgcmV0dXJuIDEKIAotICAgICAgICBkZWYgcnVuX3Rlc3RzKCk6
Ci0gICAgICAgICAgICBzZWxmLl9lbnN1cmVfYWNjZXNzaWJpbGl0eV9kYWVtb25faXNfcnVubmlu
ZyhqaGJ1aWxkX3BhdGgsIHRlc3RfZW52KQorICAgICAgICAjIFJlbW92ZSBza2lwcGVkIHRlc3Rz
IG5vdyBpbnN0ZWFkIG9mIHdoZW4gd2UgZmluZCB0aGVtLCBiZWNhdXNlCisgICAgICAgICMgc29t
ZSB0ZXN0cyBtaWdodCBiZSBza2lwcGVkIHdoaWxlIHNldHRpbmcgdXAgdGhlIHRlc3QgZW52aXJv
bm1lbnQuCisgICAgICAgIHNlbGYuX3JlbW92ZV9za2lwcGVkX3Rlc3RzKCkKIAorICAgICAgICBm
YWlsZWRfdGVzdHMgPSBbXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzdGFydF90aW1lID0g
dGltZS50aW1lKCkKICAgICAgICAgICAgIGZvciB0ZXN0IGluIHNlbGYuX3Rlc3RzOgotICAgICAg
ICAgICAgICAgIHRlc3Rlcl9jb21tYW5kID0gW2poYnVpbGRfcGF0aCAsICdndGVzdGVyJ10KKyAg
ICAgICAgICAgICAgICB0ZXN0ZXJfY29tbWFuZCA9IFsnZ3Rlc3RlcicsIHRlc3RdCiAgICAgICAg
ICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgICAgICAgICB0
ZXN0ZXJfY29tbWFuZC5hcHBlbmQoJy0tdmVyYm9zZScpCi0gICAgICAgICAgICAgICAgdGVzdGVy
X2NvbW1hbmQuYXBwZW5kKHRlc3QpCi0gICAgICAgICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nl
c3MuUG9wZW4odGVzdGVyX2NvbW1hbmQsIGVudj10ZXN0X2VudikKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdGVyX2NvbW1hbmQuaW5zZXJ0KDEsICctLXZlcmJvc2UnKQorICAgICAgICAgICAgICAg
IHByb2Nlc3MgPSBzZWxmLl9jcmVhdGVfcHJvY2Vzcyh0ZXN0ZXJfY29tbWFuZCwgZW52PXNlbGYu
X3Rlc3RfZW52KQogICAgICAgICAgICAgICAgIGlmIHByb2Nlc3Mud2FpdCgpOgogICAgICAgICAg
ICAgICAgICAgICBmYWlsZWRfdGVzdHMuYXBwZW5kKHRlc3QpCiAKLSAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9jaGVja19pZl90ZXN0c19oYXZlX3RpbWVkX291dCgpOgotICAgICAgICAgICAgICAg
ICAgICBicmVhawotCi0gICAgICAgICAgICBpZiBzZWxmLl9hMTF5X3JlZ2lzdHJ5ZDoKLSAgICAg
ICAgICAgICAgICBzZWxmLl9hMTF5X3JlZ2lzdHJ5ZC50ZXJtaW5hdGUoKQotCi0gICAgICAgICAg
ICBhMTF5X2J1c19sYXVuY2hlci50ZXJtaW5hdGUoKQotCi0gICAgICAgICAgICBpZiBmYWlsZWRf
dGVzdHM6Ci0gICAgICAgICAgICAgICAgbmFtZXMgPSBbb3MucGF0aC5iYXNlbmFtZSh0KSBmb3Ig
dCBpbiBmYWlsZWRfdGVzdHNdCi0gICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiVGVz
dHMgZmFpbGVkOiAlc1xuIiAlICIsICIuam9pbihuYW1lcykpCi0gICAgICAgICAgICAgICAgc3lz
LnN0ZG91dC5mbHVzaCgpCisgICAgICAgICAgICAgICAgaWYgdGltZS50aW1lKCkgLSBzdGFydF90
aW1lID49IFRJTUVPVVQ6CisgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlRl
c3RzIHRpbWVkIG91dCBhZnRlciAlZCBzZWNvbmRzXG4iICUgVElNRU9VVCkKKyAgICAgICAgICAg
ICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
CiAKLSAgICAgICAgICAgIGxvb3AucXVpdCgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBzZWxmLl90ZWFyX2Rvd25fdGVzdGluZ19lbnZpcm9ubWVudCgpCiAKLSAgICAgICAgc2VsZi5f
cnVuX2NvbW1hbmRfd2hlbl9kYnVzX3NlcnZpY2VfYXBwZWFycygib3JnLmExMXkuQnVzIiwgcnVu
X3Rlc3RzKQotICAgICAgICBsb29wLnJ1bigpCisgICAgICAgIGlmIGZhaWxlZF90ZXN0czoKKyAg
ICAgICAgICAgIG5hbWVzID0gW29zLnBhdGguYmFzZW5hbWUodGVzdCkgZm9yIHRlc3QgaW4gZmFp
bGVkX3Rlc3RzXQorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiVGVzdHMgZmFpbGVkOiAl
c1xuIiAlICIsICIuam9pbihuYW1lcykpCisgICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkK
IAotICAgICAgICByZXR1cm4gbGVuKGZhaWxlZF90ZXN0cykgb3IgaW50KHNlbGYuX3RpbWVkX291
dCkKKyAgICAgICAgcmV0dXJuIGxlbihmYWlsZWRfdGVzdHMpCiAKIGlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6CiAgICAgb3B0aW9uX3BhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcih1c2Fn
ZT0ndXNhZ2U6ICVwcm9nIFtvcHRpb25zXSBbdGVzdC4uLl0nKQpAQCAtMjExLDE1ICsyMzksNCBA
QCBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSdEaXNwbGF5IHRvIHJ1biBYdmZiJykKICAgICBvcHRpb25zLCBhcmdzID0gb3B0aW9u
X3BhcnNlci5wYXJzZV9hcmdzKCkKIAotICAgIHRyeToKLSAgICAgICAgeHZmYiA9IHN1YnByb2Nl
c3MuUG9wZW4oWyJYdmZiIiwgb3B0aW9ucy5kaXNwbGF5LCAiLXNjcmVlbiIsICIwIiwgIjgwMHg2
MDB4MjQiLCAiLW5vbGlzdGVuIiwgInRjcCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKLSAg
ICBleGNlcHQ6Ci0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkZhaWxlZCB0byBydW4gWHZmYlxu
IikKLSAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAg
ICB0cnk6Ci0gICAgICAgIHN5cy5leGl0KFRlc3RSdW5uZXIob3B0aW9ucywgYXJncykucnVuKCkp
Ci0gICAgZmluYWxseToKLSAgICAgICAgeHZmYi5raWxsKCkKKyAgICBzeXMuZXhpdChUZXN0UnVu
bmVyKG9wdGlvbnMsIGFyZ3MpLnJ1bl90ZXN0cygpKQo=
</data>
<flag name="review"
          id="136035"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>