<?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>201954</bug_id>
          
          <creation_ts>2019-09-18 16:58:42 -0700</creation_ts>
          <short_desc>Python 3: Add test-webkitpy for Python 3</short_desc>
          <delta_ts>2019-10-02 15:42:03 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184986</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572156</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-09-18 16:58:42 -0700</bug_when>
    <thetext>We need to allow test-webkitpy to support Python 3 so don&apos;t have to cherry-pick which tests we run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572163</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-18 17:04:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/55499881&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575784</commentid>
    <comment_count>2</comment_count>
      <attachid>379961</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-01 15:51:52 -0700</bug_when>
    <thetext>Created attachment 379961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575798</commentid>
    <comment_count>3</comment_count>
      <attachid>379965</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-01 16:45:58 -0700</bug_when>
    <thetext>Created attachment 379965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575842</commentid>
    <comment_count>4</comment_count>
      <attachid>379965</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-10-01 19:23:33 -0700</bug_when>
    <thetext>Comment on attachment 379965
Patch

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

Minor nits, but otherwise looks pretty good. Unofficial r+.

&gt; Tools/Scripts/test-webkitpy-python3:32
&gt; +            PYTHON3_DIRECTORIES[0] if len(PYTHON3_DIRECTORIES) == 1 else &apos;{} and {}&apos;.format(

Nit: This is a bit hard to read; can you either put it into a function or run this logic before generating the help message?

&gt; Tools/Scripts/test-webkitpy-python3:52
&gt; +    result = unittest.TextTestRunner(verbosity=2 if options.verbose else 1, failfast=options.stop_on_fail, buffer=not options.verbose).run(suite)

Nit: This is a bit hard to read. Can you separate out options.verbosity to just store a value of 1 (default) or 2 when -v|--verbose is provided?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575978</commentid>
    <comment_count>5</comment_count>
      <attachid>380020</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-02 07:47:25 -0700</bug_when>
    <thetext>Created attachment 380020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576001</commentid>
    <comment_count>6</comment_count>
      <attachid>380020</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-10-02 08:41:48 -0700</bug_when>
    <thetext>Comment on attachment 380020
Patch

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

r+ with comments.

&gt; Tools/Scripts/test-webkitpy-python3:11
&gt; +PYTHON3_DIRECTORIES = [

might consider renaming it to something like this to be more readable/clear: PYTHON3_COMPATIBLE_DIRECTORIES

&gt; Tools/Scripts/test-webkitpy-python3:17
&gt; +def list_to_string(lst):

lst is confusing (it might be read as first). alternatives: input, input_list.

Also this method isn&apos;t really required, it&apos;s used only once, you can simply use following at that place (although this one generates string which is slightly more readable, since it adds &apos;and&apos;).

&apos;, &apos;.join(list)

&gt; Tools/Scripts/test-webkitpy-python3:50
&gt; +        for tst in module_suite if module_suite else []:

Nit: tst =&gt; test

Following might be more cleaner:

for test in (module_suite or []):

&gt; Tools/Scripts/test-webkitpy-python3:54
&gt; +        raise RuntimeError(&apos;No tests matching...&apos;)

Nit: &apos;No tests matching...&apos; =&gt; &apos;No matching tests found.&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576014</commentid>
    <comment_count>7</comment_count>
      <attachid>380029</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-02 09:09:40 -0700</bug_when>
    <thetext>Created attachment 380029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576019</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-02 09:21:05 -0700</bug_when>
    <thetext>Committed r250608: &lt;https://trac.webkit.org/changeset/250608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576138</commentid>
    <comment_count>9</comment_count>
      <attachid>380029</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-10-02 13:21:25 -0700</bug_when>
    <thetext>Comment on attachment 380029
Patch

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

&gt; Tools/Scripts/test-webkitpy-python3:1
&gt; +#!/usr/bin/env python3

Copyright message is missing. Can you add it in a follow-up commit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576199</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-02 14:45:31 -0700</bug_when>
    <thetext>Committed r250631: &lt;https://trac.webkit.org/changeset/250631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576225</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-02 15:42:03 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #9)
&gt; Comment on attachment 380029 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380029&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/test-webkitpy-python3:1
&gt; &gt; +#!/usr/bin/env python3
&gt; 
&gt; Copyright message is missing. Can you add it in a follow-up commit?

Landed in &lt;https://trac.webkit.org/changeset/250631&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379961</attachid>
            <date>2019-10-01 15:51:52 -0700</date>
            <delta_ts>2019-10-01 16:45:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201954-20191001155151.patch</filename>
            <type>text/plain</type>
            <size>2756</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MDU4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE5LTEwLTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHRlc3Qtd2Via2l0cHkgZm9yIFB5dGhvbiAzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE5NTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
dGVzdC13ZWJraXRweS1weXRob24zOiBBZGRlZC4KKwogMjAxOS0xMC0wMSAgQWFrYXNoIEphaW4g
IDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwIGZpeCB0byByMjUw
NTcyIHRvIGZpeCBhIHR5cG8uCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0
aG9uMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwko
bm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisjIS91c3IvYmluL2VudiBweXRob24zCitpbXBv
cnQgc3lzCitzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IFRydWUKKworaW1wb3J0IGFyZ3BhcnNl
CitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCisKK1BZVEhPTjNfRElS
RUNUT1JJRVMgPSBbCisgICd3ZWJraXRweS5jb21tb24uc3lzdGVtJywKK10KKworCitkZWYgbWFp
bigpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdS
dW4gdW5pdCB0ZXN0cyB3aXRoIFB5dGhvbjMuIFRoaXMgaXMgaW50ZW5kZWQgYXMgYSB0ZW1wb3Jh
cnkgc2NyaXB0IGR1cmluZyB0aGUgUHl0aG9uMi8zIHRyYW5zaXRpb24nKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoCisgICAgICAgICctdicsICctLXZlcmJvc2UnLAorICAgICAgICBkZWZhdWx0
PUZhbHNlLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBoZWxwPSdWZXJib3NlIG91dHB1
dCcsCisgICAgKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICctZicsICctLXN0
b3Atb24tZmFpbCcsCisgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
CisgICAgICAgIGhlbHA9J1N0b3Agb24gZmlyc3QgZmFpbCBvciBlcnJvcicsCisgICAgKQorICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICdtb2R1bGVzX3RvX3Rlc3QnLCBuYXJncz0n
KicsCisgICAgICAgIGhlbHA9J01vZHVsZXMgdG8gYmUgdGVzdGVkLiBCeSBkZWZhdWx0LCB0aGlz
IGlzIHt9Jy5mb3JtYXQoCisgICAgICAgICAgICBQWVRIT04zX0RJUkVDVE9SSUVTWzBdIGlmIGxl
bihQWVRIT04zX0RJUkVDVE9SSUVTKSA9PSAxIGVsc2UgJ3t9IGFuZCB7fScuZm9ybWF0KAorICAg
ICAgICAgICAgICAgICcsICcuam9pbihQWVRIT04zX0RJUkVDVE9SSUVTWzotMV0pLAorICAgICAg
ICAgICAgICAgIFBZVEhPTjNfRElSRUNUT1JJRVNbLTFdLAorICAgICAgICAgICAgKSAKKyAgICAg
ICAgKSwKKyAgICAgICAgZGVmYXVsdD1QWVRIT04zX0RJUkVDVE9SSUVTLAorICAgICkKKyAgICBv
cHRpb25zID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgICAgcm9vdCA9IG9zLnBhdGguZGlybmFt
ZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQorCisgICAgc3VpdGUgPSB1bml0dGVzdC5UZXN0
U3VpdGUoKQorICAgIGZvciBtb2R1bGVfbmFtZSBpbiBvcHRpb25zLm1vZHVsZXNfdG9fdGVzdDoK
KyAgICAgICAgbW9kdWxlX3N1aXRlID0gdW5pdHRlc3QuZGVmYXVsdFRlc3RMb2FkZXIuZGlzY292
ZXIob3MucGF0aC5qb2luKHJvb3QsIG1vZHVsZV9uYW1lLnJlcGxhY2UoJy4nLCAnLycpKSwgcGF0
dGVybj0nKnRlc3QucHknLCB0b3BfbGV2ZWxfZGlyPXJvb3QpCisgICAgICAgIGZvciB0c3QgaW4g
bW9kdWxlX3N1aXRlIGlmIG1vZHVsZV9zdWl0ZSBlbHNlIFtdOgorICAgICAgICAgICAgc3VpdGUu
YWRkVGVzdCh0c3QpCisKKyAgICBpZiBzdWl0ZS5jb3VudFRlc3RDYXNlcygpID09IDA6CisgICAg
ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTm8gdGVzdHMgbWF0Y2hpbmcuLi4nKQorCisgICAgcmVz
dWx0ID0gdW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIodmVyYm9zaXR5PTIgaWYgb3B0aW9ucy52ZXJi
b3NlIGVsc2UgMSwgZmFpbGZhc3Q9b3B0aW9ucy5zdG9wX29uX2ZhaWwsIGJ1ZmZlcj1ub3Qgb3B0
aW9ucy52ZXJib3NlKS5ydW4oc3VpdGUpCisgICAgcmV0dXJuIGxlbihyZXN1bHQuZXJyb3JzKQor
CitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oKSkKClByb3Bl
cnR5IGNoYW5nZXMgb246IFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0wLDAgKzEgIyMKKyoKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379965</attachid>
            <date>2019-10-01 16:45:58 -0700</date>
            <delta_ts>2019-10-02 07:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201954-20191001164557.patch</filename>
            <type>text/plain</type>
            <size>2785</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MDU4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE5LTEwLTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHRlc3Qtd2Via2l0cHkgZm9yIFB5dGhvbiAzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE5NTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
dGVzdC13ZWJraXRweS1weXRob24zOiBBZGRlZC4KKwogMjAxOS0xMC0wMSAgQWFrYXNoIEphaW4g
IDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwIGZpeCB0byByMjUw
NTcyIHRvIGZpeCBhIHR5cG8uCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0
aG9uMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwko
bm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisjIS91c3IvYmluL2VudiBweXRob24zCitpbXBv
cnQgc3lzCitzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IFRydWUKKworaW1wb3J0IGFyZ3BhcnNl
CitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCisKK1BZVEhPTjNfRElS
RUNUT1JJRVMgPSBbCisgICd3ZWJraXRweS5jb21tb24uc3lzdGVtJywKKyAgJ3dlYmtpdHB5LmNv
bW1vbi50aHJlYWQnLAorXQorCisKK2RlZiBtYWluKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2Uu
QXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J1J1biB1bml0IHRlc3RzIHdpdGggUHl0aG9uMy4g
VGhpcyBpcyBpbnRlbmRlZCBhcyBhIHRlbXBvcmFyeSBzY3JpcHQgZHVyaW5nIHRoZSBQeXRob24y
LzMgdHJhbnNpdGlvbicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy12Jywg
Jy0tdmVyYm9zZScsCisgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
CisgICAgICAgIGhlbHA9J1ZlcmJvc2Ugb3V0cHV0JywKKyAgICApCisgICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgKKyAgICAgICAgJy1mJywgJy0tc3RvcC1vbi1mYWlsJywKKyAgICAgICAgZGVmYXVs
dD1GYWxzZSwgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgaGVscD0nU3RvcCBvbiBmaXJz
dCBmYWlsIG9yIGVycm9yJywKKyAgICApCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAg
ICAgJ21vZHVsZXNfdG9fdGVzdCcsIG5hcmdzPScqJywKKyAgICAgICAgaGVscD0nTW9kdWxlcyB0
byBiZSB0ZXN0ZWQuIEJ5IGRlZmF1bHQsIHRoaXMgaXMge30nLmZvcm1hdCgKKyAgICAgICAgICAg
IFBZVEhPTjNfRElSRUNUT1JJRVNbMF0gaWYgbGVuKFBZVEhPTjNfRElSRUNUT1JJRVMpID09IDEg
ZWxzZSAne30gYW5kIHt9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgJywgJy5qb2luKFBZVEhP
TjNfRElSRUNUT1JJRVNbOi0xXSksCisgICAgICAgICAgICAgICAgUFlUSE9OM19ESVJFQ1RPUklF
U1stMV0sCisgICAgICAgICAgICApIAorICAgICAgICApLAorICAgICAgICBkZWZhdWx0PVBZVEhP
TjNfRElSRUNUT1JJRVMsCisgICAgKQorICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygp
CisKKyAgICByb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykp
CisKKyAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCisgICAgZm9yIG1vZHVsZV9uYW1l
IGluIG9wdGlvbnMubW9kdWxlc190b190ZXN0OgorICAgICAgICBtb2R1bGVfc3VpdGUgPSB1bml0
dGVzdC5kZWZhdWx0VGVzdExvYWRlci5kaXNjb3Zlcihvcy5wYXRoLmpvaW4ocm9vdCwgbW9kdWxl
X25hbWUucmVwbGFjZSgnLicsICcvJykpLCBwYXR0ZXJuPScqdGVzdC5weScsIHRvcF9sZXZlbF9k
aXI9cm9vdCkKKyAgICAgICAgZm9yIHRzdCBpbiBtb2R1bGVfc3VpdGUgaWYgbW9kdWxlX3N1aXRl
IGVsc2UgW106CisgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0KHRzdCkKKworICAgIGlmIHN1aXRl
LmNvdW50VGVzdENhc2VzKCkgPT0gMDoKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyB0
ZXN0cyBtYXRjaGluZy4uLicpCisKKyAgICByZXN1bHQgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5l
cih2ZXJib3NpdHk9MiBpZiBvcHRpb25zLnZlcmJvc2UgZWxzZSAxLCBmYWlsZmFzdD1vcHRpb25z
LnN0b3Bfb25fZmFpbCwgYnVmZmVyPW5vdCBvcHRpb25zLnZlcmJvc2UpLnJ1bihzdWl0ZSkKKyAg
ICByZXR1cm4gbGVuKHJlc3VsdC5lcnJvcnMpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CisgICAgc3lzLmV4aXQobWFpbigpKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvU2NyaXB0
cy90ZXN0LXdlYmtpdHB5LXB5dGhvbjMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUK
IyMgLTAsMCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380020</attachid>
            <date>2019-10-02 07:47:25 -0700</date>
            <delta_ts>2019-10-02 09:09:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201954-20191002074722.patch</filename>
            <type>text/plain</type>
            <size>2764</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MDU4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE5LTEwLTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHRlc3Qtd2Via2l0cHkgZm9yIFB5dGhvbiAzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE5NTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
dGVzdC13ZWJraXRweS1weXRob24zOiBBZGRlZC4KKwogMjAxOS0xMC0wMSAgQWFrYXNoIEphaW4g
IDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwIGZpeCB0byByMjUw
NTcyIHRvIGZpeCBhIHR5cG8uCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0
aG9uMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwko
bm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACisjIS91c3IvYmluL2VudiBweXRob24zCitpbXBv
cnQgc3lzCitzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IFRydWUKKworaW1wb3J0IGFyZ3BhcnNl
CitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCisKK1BZVEhPTjNfRElS
RUNUT1JJRVMgPSBbCisgICd3ZWJraXRweS5jb21tb24uc3lzdGVtJywKKyAgJ3dlYmtpdHB5LmNv
bW1vbi50aHJlYWQnLAorXQorCisKK2RlZiBsaXN0X3RvX3N0cmluZyhsc3QpOgorICAgIGlmIGxl
bihsc3QpID09IDE6CisgICAgICAgIHJldHVybiBsc3RbMF0KKyAgICByZXR1cm4gJ3t9IGFuZCB7
fScuZm9ybWF0KAorICAgICAgICAnLCAnLmpvaW4obHN0WzotMV0pLAorICAgICAgICBsc3RbLTFd
LAorICAgICkKKworCitkZWYgbWFpbigpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKGRlc2NyaXB0aW9uPSdSdW4gdW5pdCB0ZXN0cyB3aXRoIFB5dGhvbjMuIFRoaXMgaXMg
aW50ZW5kZWQgYXMgYSB0ZW1wb3Jhcnkgc2NyaXB0IGR1cmluZyB0aGUgUHl0aG9uMi8zIHRyYW5z
aXRpb24nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICctdicsICctLXZlcmJv
c2UnLAorICAgICAgICBkZWZhdWx0PUZhbHNlLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAg
ICBoZWxwPSdWZXJib3NlIG91dHB1dCcsCisgICAgKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
CisgICAgICAgICctZicsICctLXN0b3Atb24tZmFpbCcsCisgICAgICAgIGRlZmF1bHQ9RmFsc2Us
IGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgIGhlbHA9J1N0b3Agb24gZmlyc3QgZmFpbCBv
ciBlcnJvcicsCisgICAgKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICdtb2R1
bGVzX3RvX3Rlc3QnLCBuYXJncz0nKicsCisgICAgICAgIGhlbHA9J01vZHVsZXMgdG8gYmUgdGVz
dGVkLiBCeSBkZWZhdWx0LCB0aGlzIGlzIHt9Jy5mb3JtYXQobGlzdF90b19zdHJpbmcoUFlUSE9O
M19ESVJFQ1RPUklFUykpLAorICAgICAgICBkZWZhdWx0PVBZVEhPTjNfRElSRUNUT1JJRVMsCisg
ICAgKQorICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygpCisKKyAgICByb290ID0gb3Mu
cGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCisKKyAgICBzdWl0ZSA9IHVu
aXR0ZXN0LlRlc3RTdWl0ZSgpCisgICAgZm9yIG1vZHVsZV9uYW1lIGluIG9wdGlvbnMubW9kdWxl
c190b190ZXN0OgorICAgICAgICBtb2R1bGVfc3VpdGUgPSB1bml0dGVzdC5kZWZhdWx0VGVzdExv
YWRlci5kaXNjb3Zlcihvcy5wYXRoLmpvaW4ocm9vdCwgbW9kdWxlX25hbWUucmVwbGFjZSgnLics
ICcvJykpLCBwYXR0ZXJuPScqdGVzdC5weScsIHRvcF9sZXZlbF9kaXI9cm9vdCkKKyAgICAgICAg
Zm9yIHRzdCBpbiBtb2R1bGVfc3VpdGUgaWYgbW9kdWxlX3N1aXRlIGVsc2UgW106CisgICAgICAg
ICAgICBzdWl0ZS5hZGRUZXN0KHRzdCkKKworICAgIGlmIHN1aXRlLmNvdW50VGVzdENhc2VzKCkg
PT0gMDoKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyB0ZXN0cyBtYXRjaGluZy4uLicp
CisKKyAgICByZXN1bHQgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcih2ZXJib3NpdHk9aW50KG9w
dGlvbnMudmVyYm9zZSkgKyAxLCBmYWlsZmFzdD1vcHRpb25zLnN0b3Bfb25fZmFpbCwgYnVmZmVy
PW5vdCBvcHRpb25zLnZlcmJvc2UpLnJ1bihzdWl0ZSkKKyAgICByZXR1cm4gbGVuKHJlc3VsdC5l
cnJvcnMpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbigp
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5LXB5dGhv
bjMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTAsMCArMSAjIworKgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380029</attachid>
            <date>2019-10-02 09:09:40 -0700</date>
            <delta_ts>2019-10-02 09:09:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201954-20191002090939.patch</filename>
            <type>text/plain</type>
            <size>2930</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MDU4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE5LTEwLTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHRlc3Qtd2Via2l0cHkgZm9yIFB5dGhvbiAzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE5NTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBYWthc2ggSmFpbi4KKworICAgICAgICAqIFNjcmlwdHMvdGVz
dC13ZWJraXRweS1weXRob24zOiBBZGRlZC4KKwogMjAxOS0xMC0wMSAgQWFrYXNoIEphaW4gIDxh
YWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwIGZpeCB0byByMjUwNTcy
IHRvIGZpeCBhIHR5cG8uCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9u
Mwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkobm9u
ZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBACisjIS91c3IvYmluL2VudiBweXRob24zCitpbXBvcnQg
c3lzCitzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IFRydWUKKworaW1wb3J0IGFyZ3BhcnNlCitp
bXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCisKK1BZVEhPTjNfQ09NUEFU
SUJMRV9ESVJFQ1RPUklFUyA9IFsKKyAgJ3dlYmtpdHB5LmNvbW1vbi5zeXN0ZW0nLAorICAnd2Vi
a2l0cHkuY29tbW9uLnRocmVhZCcsCitdCisKKworZGVmIG1haW4oKToKKyAgICBwYXJzZXIgPSBh
cmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nUnVuIHVuaXQgdGVzdHMgd2l0aCBQ
eXRob24zLiBUaGlzIGlzIGludGVuZGVkIGFzIGEgdGVtcG9yYXJ5IHNjcmlwdCBkdXJpbmcgdGhl
IFB5dGhvbjIvMyB0cmFuc2l0aW9uJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAg
ICAnLXYnLCAnLS12ZXJib3NlJywKKyAgICAgICAgZGVmYXVsdD1GYWxzZSwgYWN0aW9uPSdzdG9y
ZV90cnVlJywKKyAgICAgICAgaGVscD0nVmVyYm9zZSBvdXRwdXQnLAorICAgICkKKyAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAnLWYnLCAnLS1zdG9wLW9uLWZhaWwnLAorICAgICAg
ICBkZWZhdWx0PUZhbHNlLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBoZWxwPSdTdG9w
IG9uIGZpcnN0IGZhaWwgb3IgZXJyb3InLAorICAgICkKKworICAgIGlmIGxlbihQWVRIT04zX0NP
TVBBVElCTEVfRElSRUNUT1JJRVMpID09IDE6CisgICAgICAgIGNvbXBhdGlibGVfZGlyZWN0b3Jp
ZXNfcmVhZGFibGUgPSBQWVRIT04zX0NPTVBBVElCTEVfRElSRUNUT1JJRVNbMF0KKyAgICBlbHNl
OgorICAgICAgICBjb21wYXRpYmxlX2RpcmVjdG9yaWVzX3JlYWRhYmxlID0gJ3t9IGFuZCB7fScu
Zm9ybWF0KAorICAgICAgICAgICAgJywgJy5qb2luKFBZVEhPTjNfQ09NUEFUSUJMRV9ESVJFQ1RP
UklFU1s6LTFdKSwKKyAgICAgICAgICAgIFBZVEhPTjNfQ09NUEFUSUJMRV9ESVJFQ1RPUklFU1st
MV0sCisgICAgICAgICkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAnbW9kdWxl
c190b190ZXN0JywgbmFyZ3M9JyonLAorICAgICAgICBoZWxwPSdNb2R1bGVzIHRvIGJlIHRlc3Rl
ZC4gQnkgZGVmYXVsdCwgdGhpcyBpcyB7fScuZm9ybWF0KGNvbXBhdGlibGVfZGlyZWN0b3JpZXNf
cmVhZGFibGUpLAorICAgICAgICBkZWZhdWx0PVBZVEhPTjNfQ09NUEFUSUJMRV9ESVJFQ1RPUklF
UywKKyAgICApCisgICAgb3B0aW9ucyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIHJvb3Qg
PSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKKworICAgIHN1aXRl
ID0gdW5pdHRlc3QuVGVzdFN1aXRlKCkKKyAgICBmb3IgbW9kdWxlX25hbWUgaW4gb3B0aW9ucy5t
b2R1bGVzX3RvX3Rlc3Q6CisgICAgICAgIG1vZHVsZV9zdWl0ZSA9IHVuaXR0ZXN0LmRlZmF1bHRU
ZXN0TG9hZGVyLmRpc2NvdmVyKG9zLnBhdGguam9pbihyb290LCBtb2R1bGVfbmFtZS5yZXBsYWNl
KCcuJywgJy8nKSksIHBhdHRlcm49Jyp0ZXN0LnB5JywgdG9wX2xldmVsX2Rpcj1yb290KQorICAg
ICAgICBmb3IgdGVzdCBpbiAobW9kdWxlX3N1aXRlIG9yIFtdKToKKyAgICAgICAgICAgIHN1aXRl
LmFkZFRlc3QodGVzdCkKKworICAgIGlmIHN1aXRlLmNvdW50VGVzdENhc2VzKCkgPT0gMDoKKyAg
ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyBtYXRjaGluZyB0ZXN0cyBmb3VuZC4nKQorCisg
ICAgcmVzdWx0ID0gdW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIodmVyYm9zaXR5PWludChvcHRpb25z
LnZlcmJvc2UpICsgMSwgZmFpbGZhc3Q9b3B0aW9ucy5zdG9wX29uX2ZhaWwsIGJ1ZmZlcj1ub3Qg
b3B0aW9ucy52ZXJib3NlKS5ydW4oc3VpdGUpCisgICAgcmV0dXJuIGxlbihyZXN1bHQuZXJyb3Jz
KQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oKSkKClBy
b3BlcnR5IGNoYW5nZXMgb246IFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0wLDAgKzEgIyMKKyoKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>