<?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>67462</bug_id>
          
          <creation_ts>2011-09-01 19:17:24 -0700</creation_ts>
          <short_desc>fix MockFileSystem.glob(), refactor filesystem tests</short_desc>
          <delta_ts>2022-02-27 23:45:56 -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>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="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461014</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-09-01 19:17:24 -0700</bug_when>
    <thetext>fix MockFileSystem.glob(), refactor filesystem tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461018</commentid>
    <comment_count>1</comment_count>
      <attachid>106085</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-09-01 19:55:59 -0700</bug_when>
    <thetext>Created attachment 106085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461020</commentid>
    <comment_count>2</comment_count>
      <attachid>106085</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-01 20:03:45 -0700</bug_when>
    <thetext>Comment on attachment 106085
Patch

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

OK.

&gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:155
&gt; +        glob_string = glob_string.replace(&apos;\\*&apos;, &apos;[^\\/]*&apos;) + &apos;$&apos;
&gt; +        glob_string = glob_string.replace(&apos;\\/&apos;, &apos;/&apos;)
&gt; +        path_filter = lambda path: re.match(glob_string, path)

This is going to end up matching . in glob_string against any char.  Which is OK, but you shoudl be aware.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461026</commentid>
    <comment_count>3</comment_count>
      <attachid>106085</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-09-01 20:21:24 -0700</bug_when>
    <thetext>Comment on attachment 106085
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:155
&gt;&gt; +        path_filter = lambda path: re.match(glob_string, path)
&gt; 
&gt; This is going to end up matching . in glob_string against any char.  Which is OK, but you shoudl be aware.

If I understand you correctly (you&apos;re saying that glob(&apos;foo.ar&apos;) will match a file called &apos;foobar&apos;, I don&apos;t think so; the &apos;.&apos; in glob string is escaped out on line 152. Or am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461028</commentid>
    <comment_count>4</comment_count>
      <attachid>106085</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-01 20:29:56 -0700</bug_when>
    <thetext>Comment on attachment 106085
Patch

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:155
&gt;&gt;&gt; +        path_filter = lambda path: re.match(glob_string, path)
&gt;&gt; 
&gt;&gt; This is going to end up matching . in glob_string against any char.  Which is OK, but you shoudl be aware.
&gt; 
&gt; If I understand you correctly (you&apos;re saying that glob(&apos;foo.ar&apos;) will match a file called &apos;foobar&apos;, I don&apos;t think so; the &apos;.&apos; in glob string is escaped out on line 152. Or am I missing something?

Ah, I missed the regexp escape.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461029</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-09-01 20:40:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Ah, I missed the regexp escape.

Okay. Probably would be a good thing to test for, though. I&apos;ll add a test. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463052</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-09-06 18:42:53 -0700</bug_when>
    <thetext>Committed r94618: &lt;http://trac.webkit.org/changeset/94618&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106085</attachid>
            <date>2011-09-01 19:55:59 -0700</date>
            <delta_ts>2022-02-27 23:45:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67462-20110901195558.patch</filename>
            <type>text/plain</type>
            <size>8653</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzMzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZmQzMjAyZmViOWUwOTc2ZjJkMjgxY2RmMzkwODI0ZjBi
YTY2OWIxLi4wNmI4NDBkNmEzY2Q4ZjM0NDY1MzZmMGM2MDA5MThhMDhhNmNiMWFhIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgZml4IE1vY2tGaWxlU3lzdGVtLmdsb2IoKSwgcmVmYWN0b3IgZmlsZXN5c3RlbSB0ZXN0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBkZWJ1
Z2dpbmcgd2h5IG15IHByb3Bvc2VkIGNoYW5nZSBmb3IgTW9ja0ZpbGVTeXN0ZW0uZ2xvYigpCisg
ICAgICAgIGluIGJ1ZyA2NjIyOCBkaWRuJ3Qgd29yaywgSSBzdHVtYmxlZCBhY3Jvc3MgdHdvIHJl
YWwgYnVncworICAgICAgICB0aGF0IGNhbmNlbGxlZCBlYWNoIG90aGVyIG91dCBmb3IgdGhlIHVu
aXQgdGVzdHMuIEkgZml4ZWQgdGhvc2UKKyAgICAgICAgKGdsb2Igc2hvdWxkbid0IHJlY3Vyc2Ug
aW50byBzdWJkaXJzLCBhbmQgd2Ugd2VyZW4ndCBwb3B1bGF0aW5nCisgICAgICAgIHNlbGYuZGly
cyBmcm9tIHNlbGYuZmlsZXMgcHJvcGVybHkpLgorICAgICAgICAKKyAgICAgICAgSSBoYXZlIGFs
c28gY3JlYXRlZCBhICJtaXhpbiIgY2xhc3MgZm9yIHRlc3RzIHRoYXQgY2FuIGJlIHNoYXJlZAor
ICAgICAgICBiZXR3ZWVuIHRoZSByZWFsIGZpbGVzeXN0ZW0gYW5kIHRoZSBtb2NrIGZpbGVzeXN0
ZW0gLSBNb2NrRmlsZVN5c3RlbQorICAgICAgICBpcyBiZWluZyB1c2VkIGVub3VnaCBpdCBuZWVk
cyBpdHMgb3duIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL2ZpbGVzeXN0ZW1fbW9jay5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5weToKKwog
MjAxMS0wOS0wMSAgVGltIEhvcnRvbiAgPGhvcnRvbnQ0MjRAZ21haWwuY29tPgogCiAgICAgICAg
IEZpeCBUZXN0V2ViS2l0QVBJIGJ1aWxkIG9uIGNsYW5nLTIuMApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKaW5kZXgg
ZjkxMmZhY2ZhOTA2NjFmNmM4ZGQ0YWM5MDkzMjQwOGQ2OGNlZjk0NC4uOTNkYjQyNDA0MjQ0M2U1
OTE1ZDdmNzk0OTgxNGJhNGMwYTM3NjJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CkBAIC01MCw3ICs1MCwx
MyBAQCBjbGFzcyBNb2NrRmlsZVN5c3RlbShvYmplY3QpOgogICAgICAgICBzZWxmLl9zZXAgPSAn
LycKICAgICAgICAgc2VsZi5jdXJyZW50X3RtcG5vID0gMAogICAgICAgICBzZWxmLmN3ZCA9IGN3
ZAotICAgICAgICBzZWxmLmRpcnMgPSBkaXJzIG9yIHNldCgpCisgICAgICAgIHNlbGYuZGlycyA9
IHNldChkaXJzIG9yIFtdKQorICAgICAgICBzZWxmLmRpcnMuYWRkKGN3ZCkKKyAgICAgICAgZm9y
IGYgaW4gc2VsZi5maWxlczoKKyAgICAgICAgICAgIGQgPSBzZWxmLmRpcm5hbWUoZikKKyAgICAg
ICAgICAgIHdoaWxlIG5vdCBkIGluIHNlbGYuZGlyczoKKyAgICAgICAgICAgICAgICBzZWxmLmRp
cnMuYWRkKGQpCisgICAgICAgICAgICAgICAgZCA9IHNlbGYuZGlybmFtZShkKQogCiAgICAgZGVm
IF9nZXRfc2VwKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fc2VwCkBAIC0xNDIsMTIgKzE0
OCwxMSBAQCBjbGFzcyBNb2NrRmlsZVN5c3RlbShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5jd2QKIAogICAgIGRlZiBnbG9iKHNlbGYsIGdsb2Jfc3RyaW5nKToKLSAgICAgICAgIyBGSVhN
RTogVGhpcyBvbmx5IGhhbmRsZXMgYSB3aWxkY2FyZCAnKicgYXQgdGhlIGVuZCBvZiB0aGUgcGF0
aC4KLSAgICAgICAgIyBNYXliZSBpdCBzaG91bGQgaGFuZGxlIG1vcmU/Ci0gICAgICAgIGlmIGds
b2Jfc3RyaW5nWy0xXSA9PSAnKic6Ci0gICAgICAgICAgICBwYXRoX2ZpbHRlciA9IGxhbWJkYSBw
YXRoOiBwYXRoLnN0YXJ0c3dpdGgoZ2xvYl9zdHJpbmdbOi0xXSkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHBhdGhfZmlsdGVyID0gbGFtYmRhIHBhdGg6IGdsb2Jfc3RyaW5nID09IHBhdGgK
KyAgICAgICAgIyBGSVhNRTogVGhpcyBoYW5kbGVzICcqJywgYnV0IG5vdCAnPycsICdbJywgb3Ig
J10nLgorICAgICAgICBnbG9iX3N0cmluZyA9IHJlLmVzY2FwZShnbG9iX3N0cmluZykKKyAgICAg
ICAgZ2xvYl9zdHJpbmcgPSBnbG9iX3N0cmluZy5yZXBsYWNlKCdcXConLCAnW15cXC9dKicpICsg
JyQnCisgICAgICAgIGdsb2Jfc3RyaW5nID0gZ2xvYl9zdHJpbmcucmVwbGFjZSgnXFwvJywgJy8n
KQorICAgICAgICBwYXRoX2ZpbHRlciA9IGxhbWJkYSBwYXRoOiByZS5tYXRjaChnbG9iX3N0cmlu
ZywgcGF0aCkKIAogICAgICAgICBleGlzdGluZ19maWxlcyA9IFtwYXRoIGZvciBwYXRoLCBjb250
ZW50cyBpbiBzZWxmLmZpbGVzLml0ZW1zKCkgaWYgY29udGVudHMgaXMgbm90IE5vbmVdCiAgICAg
ICAgIHJldHVybiBmaWx0ZXIocGF0aF9maWx0ZXIsIGV4aXN0aW5nX2ZpbGVzKSArIGZpbHRlcihw
YXRoX2ZpbHRlciwgc2VsZi5kaXJzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9ja191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2tfdW5pdHRlc3QucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTE2OWZjNTk4MjlhMDhjN2E4MGU1Y2FiMDNlOTk1OGRhMjFlZjM5MwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lz
dGVtX21vY2tfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw0NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGZpbGVz
eXN0ZW1fbW9jaworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBmaWxlc3lzdGVt
X3VuaXR0ZXN0CisKKworY2xhc3MgTW9ja0ZpbGVTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
LCBmaWxlc3lzdGVtX3VuaXR0ZXN0LkdlbmVyaWNGaWxlU3lzdGVtVGVzdHMpOgorICAgIGRlZiBz
ZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5mcyA9IGZpbGVzeXN0ZW1fbW9jay5Nb2NrRmlsZVN5
c3RlbSgpCisgICAgICAgIHNlbGYuc2V0dXBfZ2VuZXJpY190ZXN0X2RpcigpCisKKyAgICBkZWYg
dGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYudGVhcmRvd25fZ2VuZXJpY190ZXN0X2Rpcigp
CisgICAgICAgIHNlbGYuZnMgPSBOb25lCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
KyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggODUzM2RkZTUz
MTM3ZjI5MzM4MzFiYjNkYWQ4ZGMzMTU2M2M0ZTU2YS4uYWM4N2Y3OTk3NWZlYTgyZWJjYmIyYTgx
Zjg0NzUxZTA2ZjgwNWViOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTQyLDEyICs0Miw0
NiBAQCBpbXBvcnQgdW5pdHRlc3QKIGZyb20gZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQog
CiAKLWNsYXNzIEZpbGVTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIEdlbmVy
aWNGaWxlU3lzdGVtVGVzdHMob2JqZWN0KToKKyAgICAiIiJUZXN0cyB0aGF0IHNob3VsZCBwYXNz
IG9uIGVpdGhlciBhIHJlYWwgb3IgbW9jayBmaWxlc3lzdGVtLiIiIgorICAgIGRlZiBzZXR1cF9n
ZW5lcmljX3Rlc3RfZGlyKHNlbGYpOgorICAgICAgICBmcyA9IHNlbGYuZnMKKyAgICAgICAgc2Vs
Zi5nZW5lcmljX3Rlc3RfZGlyID0gc3RyKHNlbGYuZnMubWtkdGVtcCgpKQorICAgICAgICBzZWxm
Lm9yaWdfY3dkID0gZnMuZ2V0Y3dkKCkKKyAgICAgICAgZnMuY2hkaXIoc2VsZi5nZW5lcmljX3Rl
c3RfZGlyKQorICAgICAgICBmcy53cml0ZV90ZXh0X2ZpbGUoJ2ZvbycsICdmb28nKQorICAgICAg
ICBmcy53cml0ZV90ZXh0X2ZpbGUoJ2Zvb2JhcicsICdmb29iYXInKQorICAgICAgICBmcy5tYXli
ZV9tYWtlX2RpcmVjdG9yeSgnZm9vZGlyJykKKyAgICAgICAgZnMud3JpdGVfdGV4dF9maWxlKGZz
LmpvaW4oJ2Zvb2RpcicsICdiYXonKSwgJ2JheicpCisgICAgICAgIGZzLmNoZGlyKHNlbGYub3Jp
Z19jd2QpCisKKyAgICBkZWYgdGVhcmRvd25fZ2VuZXJpY190ZXN0X2RpcihzZWxmKToKKyAgICAg
ICAgc2VsZi5mcy5ybXRyZWUoc2VsZi5nZW5lcmljX3Rlc3RfZGlyKQorICAgICAgICBzZWxmLmZz
LmNoZGlyKHNlbGYub3JpZ19jd2QpCisgICAgICAgIHNlbGYuZ2VuZXJpY190ZXN0X2RpciA9IE5v
bmUKKworICAgIGRlZiB0ZXN0X2dsb2JfX3RyYWlsaW5nX2FzdGVyaXNrKHNlbGYpOgorICAgICAg
ICBzZWxmLmZzLmNoZGlyKHNlbGYuZ2VuZXJpY190ZXN0X2RpcikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2V0KHNlbGYuZnMuZ2xvYignZm8qJykpLCBzZXQoWydmb28nLCAnZm9vYmFyJywg
J2Zvb2RpciddKSkKKworICAgIGRlZiB0ZXN0X2dsb2JfX2xlYWRpbmdfYXN0ZXJpc2soc2VsZik6
CisgICAgICAgIHNlbGYuZnMuY2hkaXIoc2VsZi5nZW5lcmljX3Rlc3RfZGlyKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZXQoc2VsZi5mcy5nbG9iKCcqb28nKSksIHNldChbJ2ZvbyddKSkK
KworCitjbGFzcyBSZWFsRmlsZVN5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UsIEdlbmVyaWNG
aWxlU3lzdGVtVGVzdHMpOgogICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5mcyA9
IEZpbGVTeXN0ZW0oKQorICAgICAgICBzZWxmLnNldHVwX2dlbmVyaWNfdGVzdF9kaXIoKQorCiAg
ICAgICAgIHNlbGYuX3RoaXNfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChf
X2ZpbGVfXykpCiAgICAgICAgIHNlbGYuX21pc3NpbmdfZmlsZSA9IG9zLnBhdGguam9pbihzZWxm
Ll90aGlzX2RpciwgJ21pc3NpbmdfZmlsZS5weScpCiAgICAgICAgIHNlbGYuX3RoaXNfZmlsZSA9
IG9zLnBhdGguam9pbihzZWxmLl90aGlzX2RpciwgJ2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHknKQog
CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBzZWxmLnRlYXJkb3duX2dlbmVyaWNf
dGVzdF9kaXIoKQorICAgICAgICBzZWxmLmZzID0gTm9uZQorCiAgICAgZGVmIHRlc3RfY2hkaXIo
c2VsZik6CiAgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCiAgICAgICAgIGN3ZCA9IGZzLmdldGN3
ZCgpCkBAIC0xOTUsMTEgKzIyOSwxMSBAQCBjbGFzcyBGaWxlU3lzdGVtVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGZzLnJlYWRfdGV4
dF9maWxlLCBzZWxmLl9taXNzaW5nX2ZpbGUpCiAKICAgICBkZWYgdGVzdF9yZW1vdmVfZmlsZV93
aXRoX3JldHJ5KHNlbGYpOgotICAgICAgICBGaWxlU3lzdGVtVGVzdC5fcmVtb3ZlX2ZhaWx1cmVz
ID0gMgorICAgICAgICBSZWFsRmlsZVN5c3RlbVRlc3QuX3JlbW92ZV9mYWlsdXJlcyA9IDIKIAog
ICAgICAgICBkZWYgcmVtb3ZlX3dpdGhfZXhjZXB0aW9uKGZpbGVuYW1lKToKLSAgICAgICAgICAg
IEZpbGVTeXN0ZW1UZXN0Ll9yZW1vdmVfZmFpbHVyZXMgLT0gMQotICAgICAgICAgICAgaWYgRmls
ZVN5c3RlbVRlc3QuX3JlbW92ZV9mYWlsdXJlcyA+PSAwOgorICAgICAgICAgICAgUmVhbEZpbGVT
eXN0ZW1UZXN0Ll9yZW1vdmVfZmFpbHVyZXMgLT0gMQorICAgICAgICAgICAgaWYgUmVhbEZpbGVT
eXN0ZW1UZXN0Ll9yZW1vdmVfZmFpbHVyZXMgPj0gMDoKICAgICAgICAgICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAgICAgICAgIHJhaXNlIFdpbmRvd3NFcnJvcgogICAgICAgICAgICAgICAgIGV4
Y2VwdCBOYW1lRXJyb3I6CkBAIC0yMDcsNyArMjQxLDcgQEAgY2xhc3MgRmlsZVN5c3RlbVRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCiAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShmcy5yZW1vdmUoJ2ZpbGVuYW1lJywgcmVtb3ZlX3dpdGhfZXhjZXB0
aW9uKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoLTEsIEZpbGVTeXN0ZW1UZXN0Ll9yZW1v
dmVfZmFpbHVyZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKC0xLCBSZWFsRmlsZVN5c3Rl
bVRlc3QuX3JlbW92ZV9mYWlsdXJlcykKIAogICAgIGRlZiB0ZXN0X3NlcChzZWxmKToKICAgICAg
ICAgZnMgPSBGaWxlU3lzdGVtKCkKQEAgLTIyMiw2ICsyNTYsNSBAQCBjbGFzcyBGaWxlU3lzdGVt
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBhc3NpZ25fc2VwKQogCi0KIGlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCg==
</data>
<flag name="review"
          id="102435"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>