[Mono-list] MarshalByRefObject and Activator NUnit v2.0 test classes

Jean-Marc Andre jean-marc.andre@polymtl.ca
Fri, 14 Feb 2003 14:08:41 -0500


This message is in MIME format.

---MOQ1045249721ca232a6b9be40293cae4f1fc952a17a3
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit


Ok, I ran the tests with 'make testwindows' because I'm working under windows
with cygwin.
The MarshalByRefObjectTest failed with a problem about a Tcp channel already used

I think the bug is fixed now. Please replace the two files in the CVS tree.

Oh, when I say the RemotingServices.Disconnect function is not yep implemented,
I mean the Mono one.

Sorry, I didn't test the classes within the mono tests suite. I'll do it now
before I subit new files :)

Thanks,

JM


Nick Drochak wrote:

> | -----Original Message-----
> | From: Jean-Marc Andr [mailto:jean-marc.andre@polymtl.ca]
> | Sent: Friday, February 14, 2003 2:19 AM
> | To: Nick Drochak; mono-list
> | Subject: Re: [Mono-list] MarshalByRefObject and Activator NUnit
> | v2.0 test classes
> |
> |
> | Hi,
> |
> | No, I don't get this error. I tested the class with the NUnit GUI and
>
> Did you try 'make test' from the mcs directory?  That's how I run the tests.
>
> | when I re-run the test without reloading the library I get errors about
> | object with the same URI (since the RemotingServices.Disconnect function
> | is not yep implemented, I can't use it to unregister the marshaled
> | objects... If you have any idea).
>
> You mean on .NET it's not implemented?  Or are you somehow running the NUnit
> GUI on linux :)
>
> | Maybe I forgot to release the Tcp channel but I checked the sources and
> | it doesn't seem so.
> |
>
> Let me know if you see the error when using nunit-console (make test in mcs)
> on your box.  If not, then I'll try to track down the reason from here.
>
> Thanks,
> Nick D.
>
>
>  
>




---MOQ1045249721ca232a6b9be40293cae4f1fc952a17a3
Content-Type: application/octet-stream; name="ActivatorTest.cs"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ActivatorTest.cs"

dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CnVzaW5n
IFN5c3RlbS5SdW50aW1lLlJlbW90aW5nOwp1c2luZyBTeXN0ZW0uUnVudGltZS5SZW1vdGluZy5D
aGFubmVsczsKdXNpbmcgU3lzdGVtLlJ1bnRpbWUuUmVtb3RpbmcuQ2hhbm5lbHMuVGNwOwp1c2lu
ZyBOVW5pdC5GcmFtZXdvcms7CgovLyBUaGUgY2xhc3MgaW4gdGhpcyBuYW1lc3BhY2UgaXMgdXNl
ZCBieSB0aGUKLy8gbWFpbiB0ZXN0IGNsYXNzCm5hbWVzcGFjZSBNb25vVGVzdHMuU3lzdGVtLkFj
dGl2YXRvclRlc3RJbnRlcm5hbAogIHsKICAvLyBXZSBuZWVkIGEgQ09NIGNsYXNzIHRvIHRlc3Qg
dGhlIEFjdGl2YXRvciBjbGFzcwogIFtDb21WaXNpYmxlKHRydWUpXQogICAgCiAgcHVibGljIGNs
YXNzIENPTVRlc3Q6IE1hcnNoYWxCeVJlZk9iamVjdAogICAgewogICAgcHVibGljIENPTVRlc3Qo
KQogICAgICB7CiAgICAgIGlkID0gMDsKICAgICAgfQogICAgLy8gVGhpcyBwcm9wZXJ0eSBpcyB2
aXNpYmxlCiAgICBbQ29tVmlzaWJsZSh0cnVlKV0KICAgICAgcHVibGljIGludCBJZAogICAgICB7
CiAgICAgIGdldCB7IHJldHVybiBpZDsgfQogICAgICBzZXQgeyBpZCA9IHZhbHVlOyB9CiAgICAg
IH0KICAgIAogICAgcHVibGljIENPTVRlc3QoaW50IGlkKQogICAgICB7CiAgICAgIHRoaXMuaWQg
PSBpZDsKICAgICAgfQogICAgCiAgICBwcml2YXRlIGludCBpZDsKICAgIHB1YmxpYyBib29sIGNv
bnN0cnVjdG9yRmxhZyA9IGZhbHNlOwogICAgfQogIH0gLy8gTW9ub1Rlc3RzLlN5c3RlbS5BY3Rp
dmF0b3JUZXN0SW50ZXJuYWwgbmFtZXNwYWNlCgpuYW1lc3BhY2UgTW9ub1Rlc3RzLlN5c3RlbQog
IHsKICB1c2luZyBNb25vVGVzdHMuU3lzdGVtLkFjdGl2YXRvclRlc3RJbnRlcm5hbDsKCiAgW1Rl
c3RGaXh0dXJlXQogIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3JUZXN0CiAgICB7CiAgICBwdWJsaWMg
QWN0aXZhdG9yVGVzdCgpCiAgICAgIHt9CiAgICAKICAgIFtUZXN0XQogICAgICBbSWdub3JlKCJB
Y3RpdmF0b3IuQ3JlYXRlQ29tSW5zdGFuY2VGb3JtIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiKV0K
ICAgICAgLy8gVGhpcyB0ZXN0IGlzIGlnbm9yZWQgZm9yIHRoZSBtb21lbnQgYmVjYXVzZSAKICAg
ICAgLy8gQ3JlYXRlQ29tSW5zdGFuY2VGcm9tKCkgaXMgbm90IGltcGxlbWVudGVkIHlldAogICAg
ICAvLyBieSB0aGUgbW9ubyBBY3RpdmF0b3IgY2xhc3MKICAgICAgcHVibGljIHZvaWQgQ3JlYXRl
Q29tSW5zdGFuY2VGcm9tKCkKICAgICAgewogICAgICBPYmplY3RIYW5kbGUgb2JqSGFuZGxlID0g
QWN0aXZhdG9yLkNyZWF0ZUNvbUluc3RhbmNlRnJvbShzdHJBc3NlbWJseSAsCiJDT01UZXN0Iik7
CiAgICAgIENPTVRlc3Qgb2JqQ09NVGVzdCA9IChDT01UZXN0KSBvYmpIYW5kbGUuVW53cmFwKCk7
CiAgICAgIG9iakNPTVRlc3QuSWQgPSAxMDsKICAgICAgQXNzZXJ0aW9uLkFzc2VydEVxdWFscygi
I0EwMSIsMTAsb2JqQ09NVGVzdC5JZCk7CiAgICAgIH0KCiAgICBbVGVzdF0KICAgICAgLy8gVGhp
cyBtZXRob2QgdGVzdHMgQ3JlYXRlSW5zdGFuY2UoKQogICAgICBwdWJsaWMgdm9pZCBDcmVhdGVJ
bnN0YW5jZSgpCiAgICAgIHsKICAgICAgQ09NVGVzdCBvYmpDT01UZXN0OwogICAgICAvLyBvYmpl
Y3QgQ3JlYXRlSW5zdGFuY2UoVHlwZSB0eXBlKQogICAgICBvYmpDT01UZXN0ID0gKENPTVRlc3Qp
IEFjdGl2YXRvci5DcmVhdGVJbnN0YW5jZSh0eXBlb2YoQ09NVGVzdCkpOwogICAgICBBc3NlcnRp
b24uQXNzZXJ0RXF1YWxzKCIjQTAyIiwKIk1vbm9UZXN0cy5TeXN0ZW0uQWN0aXZhdG9yVGVzdElu
dGVybmFsLkNPTVRlc3QiLAoob2JqQ09NVGVzdC5HZXRUeXBlKCkpLlRvU3RyaW5nKCkpOwogICAg
ICAvLyBPYmplY3RIYW5kbGUgQ3JlYXRlSW5zdGFuY2Uoc3RyaW5nLCBzdHJpbmcpIAogICAgICAg
T2JqZWN0SGFuZGxlIG9iakhhbmRsZTsKICAgICAgIG9iakhhbmRsZSA9IEFjdGl2YXRvci5DcmVh
dGVJbnN0YW5jZShudWxsICwKIk1vbm9UZXN0cy5TeXN0ZW0uQWN0aXZhdG9yVGVzdEludGVybmFs
LkNPTVRlc3QiKTsKICAgICAgIG9iakNPTVRlc3QgPSAoQ09NVGVzdCkgb2JqSGFuZGxlLlVud3Jh
cCgpOwogICAgICAgb2JqQ09NVGVzdC5JZCA9IDI7CiAgICAgICBBc3NlcnRpb24uQXNzZXJ0RXF1
YWxzKCIjQTAzIiwgMiwgb2JqQ09NVGVzdC5JZCk7CiAgICAgIC8vIG9iamVjdCBDcmVhdGVJbnN0
YW5jZShUeXBlLCBib29sKQogICAgICAgb2JqQ09NVGVzdCA9IChDT01UZXN0KSBBY3RpdmF0b3Iu
Q3JlYXRlSW5zdGFuY2UoKHR5cGVvZihDT01UZXN0KSksIGZhbHNlKTsKICAgICAgIEFzc2VydGlv
bi5Bc3NlcnRFcXVhbHMoIiNBMDQiLAoiTW9ub1Rlc3RzLlN5c3RlbS5BY3RpdmF0b3JUZXN0SW50
ZXJuYWwuQ09NVGVzdCIsCihvYmpDT01UZXN0LkdldFR5cGUoKSkuVG9TdHJpbmcoKSk7Ci8vICAg
ICAgIC8vIG9iamVjdCBDcmVhdGVJbnN0YW5jZShUeXBlLCBvYmplY3RbXSkKICAgICAgIG9iamVj
dFtdIG9iakFycmF5ID0gbmV3IG9iamVjdFsxXTsKICAgICAgIG9iakFycmF5WzBdID0gNzsKICAg
ICAgIG9iakNPTVRlc3QgPSAoQ09NVGVzdCkgQWN0aXZhdG9yLkNyZWF0ZUluc3RhbmNlKCh0eXBl
b2YoQ09NVGVzdCkpLCBvYmpBcnJheSk7CiAgICAgICBBc3NlcnRpb24uQXNzZXJ0RXF1YWxzKCIj
QTA1IiwgNywgb2JqQ09NVGVzdC5JZCk7CiAgICAgICAvLyBUb2RvOiBJbXBsZW1lbnRlIHRoZSB0
ZXN0IG1ldGhvZHMgZm9yCiAgICAgICAvLyBhbGwgdGhlIG92ZXJyaWRlbiBmdW5jdGlvbnMgdXNp
bmcgYWN0aXZhdGlvbkF0dHJpYnV0ZQogICAgICB9CgogICAgLy8gVGhpcyBtZXRob2QgdGVzdHMg
R2V0T2JqZWN0IGZyb20gdGhlIEFjdGl2YXRvciBjbGFzcwogICAgW1Rlc3RdCiAgICAgIHB1Ymxp
YyB2b2lkIEdldE9iamVjdCgpCiAgICAgIHsKICAgICAgLy8gb2JqZWN0IEdldE9iamVjdChUeXBl
LCBzdHJpbmcpCiAgICAgIAogICAgICAvLyBUaGlzIHdpbGwgcHJvdmlkZSBhIENPTVRlc3Qgb2Jq
ZWN0IG9uICB0Y3A6Ly9sb2NhbGhvc3Q6MTIzNC9DT01UZXN0VXJpCiAgICAgIENPTVRlc3Qgb2Jq
Q09NVGVzdCA9IG5ldyBDT01UZXN0KDgpOwogICAgICBUY3BDaGFubmVsIGNoblNlcnZlciA9IG5l
dyBUY3BDaGFubmVsKDEyMzQpOwogICAgICBDaGFubmVsU2VydmljZXMuUmVnaXN0ZXJDaGFubmVs
KGNoblNlcnZlcik7CiAgICAgIFJlbW90aW5nU2VydmljZXMuU2V0T2JqZWN0VXJpRm9yTWFyc2hh
bChvYmpDT01UZXN0LCAiQ09NVGVzdFVyaSIpOwogICAgICBSZW1vdGluZ1NlcnZpY2VzLk1hcnNo
YWwob2JqQ09NVGVzdCk7CiAgICAgIAogICAgICAvLyBUaGlzIHdpbGwgZ2V0IHRoZSByZW1vdGlu
ZyBvYmplY3QKICAgICAgb2JqZWN0IG9ialJlbSA9IEFjdGl2YXRvci5HZXRPYmplY3QodHlwZW9m
KENPTVRlc3QpLAoidGNwOi8vbG9jYWxob3N0OjEyMzQvQ09NVGVzdFVyaSIpOwogICAgICBBc3Nl
cnRpb24uQXNzZXJ0KCIjQTA3IixvYmpSZW0gIT0gbnVsbCk7CiAgICAgIENPTVRlc3QgcmVtQ09N
VGVzdCA9IChDT01UZXN0KSBvYmpSZW07CiAgICAgIEFzc2VydGlvbi5Bc3NlcnRFcXVhbHMoIiNB
MDgiLCA4LCByZW1DT01UZXN0LklkKTsKCiAgICAgIENoYW5uZWxTZXJ2aWNlcy5VbnJlZ2lzdGVy
Q2hhbm5lbChjaG5TZXJ2ZXIpOwogICAgICAgLy8gVG9kbzogSW1wbGVtZW50ZSB0aGUgdGVzdCBt
ZXRob2RzIGZvcgogICAgICAgLy8gYWxsIHRoZSBvdmVycmlkZW4gZnVuY3Rpb24gdXNpbmcgYWN0
aXZhdGlvbkF0dHJpYnV0ZQogICAgICB9CgogICAgLy8gVGhpcyBtZXRob2QgdGVzdHMgdGhlIENy
ZWF0ZUluc3RhbmNlRnJvbSBtZXRob2RzCiAgICAvLyBvZiB0aGUgQWN0aXZhdG9yIGNsYXNzCiAg
ICBbVGVzdF0KICAgICAgcHVibGljIHZvaWQgQ3JlYXRlSW5zdGFuY2VGcm9tKCkKICAgICAgewog
ICAgICBPYmplY3RIYW5kbGUgb2JqSGFuZGxlOwogICAgICBvYmpIYW5kbGUgPSBBY3RpdmF0b3Iu
Q3JlYXRlSW5zdGFuY2VGcm9tKHN0ckFzc2VtYmx5ICwKIk1vbm9UZXN0cy5TeXN0ZW0uQWN0aXZh
dG9yVGVzdEludGVybmFsLkNPTVRlc3QiKTsKICAgICAgQXNzZXJ0aW9uLkFzc2VydCgiI0EwOSIs
IG9iakhhbmRsZSAhPSBudWxsKTsKCQlvYmpIYW5kbGUuVW53cmFwKCk7CiAgICAgICAvLyBUb2Rv
OiBJbXBsZW1lbnQgdGhlIHRlc3QgbWV0aG9kcyBmb3IKICAgICAgIC8vIGFsbCB0aGUgb3ZlcnJp
ZGVuIGZ1bmN0aW9uIHVzaW5nIGFjdGl2YXRpb25BdHRyaWJ1dGUKICAgICAgfQogICAgCiAgICAv
LyBUaGUgbmFtZSBvZiB0aGUgYXNzZW1ibHkgZmlsZSBpcyBpbmNvcnJlY3QuCiAgICAvLyBJIHVz
ZWQgaXQgdG8gdGVzdCB0aGVzZSBjbGFzc2VzIGJ1dCB5b3Ugc2hvdWxkCiAgICAvLyByZXBsYWNl
IGl0IHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbm8gdGVzdHMgYXNzZW1ibHkgZmlsZQogICAgLy8g
VGhlIG5hbWUgb2YgdGhlIGFzc2VtYmx5IGlzIHVzZWQgdG8gZ2V0IGFuIG9iamVjdCB0aHJvdWdo
CiAgICAvLyBBY3RpdmF0b3IuQ3JlYXRlSW5zdGFuY2UoKSwgQWN0aXZhdG9yLkNyZWF0ZUNvbUlu
c3RhbmNlRnJvbSgpLi4uCiAgICBwcml2YXRlIHN0cmluZyBzdHJBc3NlbWJseSA9ICJjb3JsaWJf
dGVzdC5kbGwiOwogICAgCiAgICB9CiAgCiAgfQo=

---MOQ1045249721ca232a6b9be40293cae4f1fc952a17a3
Content-Type: application/octet-stream; name="MarshalByRefObjectTest.cs"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MarshalByRefObjectTest.cs"

Ly8gTWFyc2hhbEJ5UmVmT2JqZWN0VGVzdC5jcyBUZXN0IGNsYXNzIGZvcg0KLy8gU3lzdGVtLk1h
cnNoYWxCeVJlZk9iamVjdCBjbGFzcw0KLy8gDQovLyBKZWFuLU1hcmMgQW5kcmUgKGplYW4tbWFy
Yy5hbmRyZUBwb2x5bXRsLmNhKQ0KLy8NCg0KdXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLlJ1
bnRpbWUuUmVtb3Rpbmc7DQp1c2luZyBTeXN0ZW0uUnVudGltZS5SZW1vdGluZy5MaWZldGltZTsN
CnVzaW5nIFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb247DQp1c2luZyBTeXN0ZW0uUnVudGlt
ZS5SZW1vdGluZy5DaGFubmVsczsNCnVzaW5nIFN5c3RlbS5SdW50aW1lLlJlbW90aW5nLkNoYW5u
ZWxzLlRjcDsNCg0KLy8gSnVzdCBhbiBpbnRlcm5hbCB0ZXN0IG5hbWVzcGFjZSBmb3INCi8vIHRo
ZSBNYXJzaGFsQnlSZWZPYmplY3RUZXN0IGNsYXNzDQpuYW1lc3BhY2UgTW9ub1Rlc3RzLlN5c3Rl
bS5NYXJzaGFsQnlSZWZPYmplY3RUZXN0SW50ZXJuYWwNCiAgew0KDQogIC8vIE9iamVjdCBmcm9t
IHRoaXMgY2xhc3MgY2FuIGJlIG1hcnNoYWxlZA0KICBwdWJsaWMgY2xhc3MgTWFyc2hhbE9iamVj
dDogTWFyc2hhbEJ5UmVmT2JqZWN0DQogICAgew0KICAgIHB1YmxpYyBNYXJzaGFsT2JqZWN0KCl7
fQ0KDQogICAgcHVibGljIE1hcnNoYWxPYmplY3QoaW50IGlkKQ0KICAgICAgew0KICAgICAgdGhp
cy5pZCA9IGlkOw0KICAgICAgfQ0KDQogICAgLy8gVGhpcyBtZXRob2Qgb3ZlcnJpZGUgdGhlIGRl
ZmF1bHQgb25lDQogICAgLy8gc28gd2UgY2FuIHNldCBzb21lIHByb3BlcnRpZXMgb2YgdGhlIGxp
ZmV0aW1lDQogICAgLy8gb2YgdGhlIHJlbW90IG9iamVjdA0KICAgIHB1YmxpYyBvdmVycmlkZSBv
YmplY3QgSW5pdGlhbGl6ZUxpZmV0aW1lU2VydmljZSgpDQogICAgICB7DQogICAgICBJTGVhc2Ug
bGVhc2UgPSAoSUxlYXNlKSBiYXNlLkluaXRpYWxpemVMaWZldGltZVNlcnZpY2UoKTsNCg0KICAg
ICAgLy8gQnkgZGVmYXVsdCBJbml0aWFsTGVhc2VUaW1lIGlzIHNldCB0byA1IG1pbnV0ZXMNCiAg
ICAgIC8vIHdlIHNldCBpdCBhdCAxMCBzZWNvbmRzDQogICAgICBpZihsZWFzZS5DdXJyZW50U3Rh
dGUgPT0gTGVhc2VTdGF0ZS5Jbml0aWFsKQ0KCXsNCglsZWFzZS5Jbml0aWFsTGVhc2VUaW1lID0g
VGltZVNwYW4uRnJvbVNlY29uZHMoMTApOw0KCX0NCiAgICAgIHJldHVybiBsZWFzZTsNCiAgICAg
IH0NCg0KICAgIHB1YmxpYyBpbnQgSWQNCiAgICAgIHsNCiAgICAgIGdldCB7IHJldHVybiBpZDt9
DQogICAgICB9DQoNCiAgICBwcml2YXRlIGludCBpZCA9IDA7DQogICAgfSAvLyBNYXJzaGFsT2Jq
ZWN0DQoNCiAgfSAvLyBNb25vVGVzdHMuU3lzdGVtLk1hcnNoYWxCeVJlZk9iamVjdFRlc3RJbnRl
cm5hbA0KDQoNCm5hbWVzcGFjZSBNb25vVGVzdHMuU3lzdGVtDQogIHsNCiAgdXNpbmcgTW9ub1Rl
c3RzLlN5c3RlbS5NYXJzaGFsQnlSZWZPYmplY3RUZXN0SW50ZXJuYWw7DQogIHVzaW5nIE5Vbml0
LkZyYW1ld29yazsNCg0KICAvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzDQogIFtUZXN0Rml4dHVyZV0N
CiAgcHVibGljIGNsYXNzIE1hcnNoYWxCeVJlZk9iamVjdFRlc3QNCiAgICB7DQogICAgcHVibGlj
IE1hcnNoYWxCeVJlZk9iamVjdFRlc3QoKQ0KICAgICAgew0KDQogICAgICB9DQoNCiAgICAvLyBU
aGlzIG1ldGhvZCB0ZXN0IHRoZSBDcmVhdGVPYmpSZWYNCiAgICBbVGVzdF0NCiAgICAgIHB1Ymxp
YyB2b2lkIENyZWF0ZU9ialJlZigpDQogICAgICB7DQogICAgICBNYXJzaGFsT2JqZWN0IG9iak1h
cnNoYWwgPSBuZXcgTWFyc2hhbE9iamVjdCgpOw0KDQogICAgICBSZW1vdGluZ1NlcnZpY2VzLlNl
dE9iamVjdFVyaUZvck1hcnNoYWwob2JqTWFyc2hhbCwgIk1hcnNoYWxCeVJlZk9iamVjdFRlc3Qu
b2JqTWFyc2hhbDEiKTsNCiAgICAgIFJlbW90aW5nU2VydmljZXMuTWFyc2hhbChvYmpNYXJzaGFs
KTsNCg0KICAgICAgT2JqUmVmIG9ialJlZiA9IG9iak1hcnNoYWwuQ3JlYXRlT2JqUmVmKHR5cGVv
ZihNYXJzaGFsT2JqZWN0KSk7DQogICAgICBBc3NlcnRpb24uQXNzZXJ0RXF1YWxzKCIjQTAxIiwg
b2JqUmVmLlVSSSwgUmVtb3RpbmdTZXJ2aWNlcy5HZXRPYmplY3RVcmkob2JqTWFyc2hhbCkpOw0K
DQogICAgICAvLyBUT0RPOiBXaGVuIGltcGxlbWVudGVkIGluIHRoZSBtb25vIFJlbW90aW5nU2Vy
dmljZXMgY2xhc3MNCiAgICAgIC8vUmVtb3RpbmdTZXJ2aWNlcy5EaXNjb25uZWN0KG9iak1hcnNo
YWwpOw0KICAgICAgfQ0KDQogICAgW1Rlc3RdDQogICAgICBbRXhwZWN0ZWRFeGNlcHRpb24odHlw
ZW9mKFJlbW90aW5nRXhjZXB0aW9uKSldDQogICAgICBwdWJsaWMgdm9pZCBDcmVhdGVPYmpSZWZU
aHJvd0V4Y2VwdGlvbigpDQogICAgICB7DQogICAgICBNYXJzaGFsT2JqZWN0IG9iak1hcnNoYWwg
PSBuZXcgTWFyc2hhbE9iamVjdCgpOw0KDQogICAgICBPYmpSZWYgb2JqUmVmID0gb2JqTWFyc2hh
bC5DcmVhdGVPYmpSZWYodHlwZW9mKE1hcnNoYWxPYmplY3QpKTsNCiAgICAgIH0NCg0KICAgIC8v
IFRoaXMgbWV0aG9kIGJvdGggdGVzdHMgSW5pdGlhbGl6ZUxpZmV0aW1lU2VydmljZSgpDQogICAg
Ly8gYW5kIEdldExpZmV0aW1lU2VydmljZSgpDQogICAgW1Rlc3RdDQogICAgICBwdWJsaWMgdm9p
ZCBMaWZldGltZVNlcnZpY2UoKQ0KICAgICAgew0KICAgICAgTWFyc2hhbE9iamVjdCBvYmpNYXJz
aGFsID0gbmV3IE1hcnNoYWxPYmplY3QoKTsNCg0KICAgICAgUmVtb3RpbmdTZXJ2aWNlcy5TZXRP
YmplY3RVcmlGb3JNYXJzaGFsKG9iak1hcnNoYWwsICJNYXJzaGFsQnlSZWZPYmplY3RUZXN0Lm9i
ak1hcnNoYWwyIik7DQogICAgICBSZW1vdGluZ1NlcnZpY2VzLk1hcnNoYWwob2JqTWFyc2hhbCk7
DQogICAgICANCiAgICAgIG9iak1hcnNoYWwuSW5pdGlhbGl6ZUxpZmV0aW1lU2VydmljZSgpOw0K
ICAgICAgSUxlYXNlIGxlYXNlID0gKElMZWFzZSkgb2JqTWFyc2hhbC5HZXRMaWZldGltZVNlcnZp
Y2UoKTsNCiAgICAgIEFzc2VydGlvbi5Bc3NlcnRFcXVhbHMoIiNBMDIiLCBsZWFzZS5Jbml0aWFs
TGVhc2VUaW1lLCBUaW1lU3Bhbi5Gcm9tU2Vjb25kcygxMCkpOw0KICAgICAgDQogICAgICAvLyBU
T0RPOiBXaGVuIGltcGxlbWVudGVkIGluIHRoZSBtb25vIFJlbW90aW5nU2VydmljZXMgY2xhc3MN
CiAgICAgIC8vUmVtb3RpbmdTZXJ2aWNlcy5EaXNjb25uZWN0KG9iak1hcnNoYWwpOw0KICAgICAg
fQ0KDQogICAgLy8gSGVyZSB3ZSB0ZXN0IGlmIHdlIGEgcHVibGlzaGVkIG9iamVjdCBjYW4gYmUg
Z2V0IA0KICAgIC8vIHRocm91Z2ggYSBUY3BDaGFubmVsDQogICAgW1Rlc3RdDQogICAgICBwdWJs
aWMgdm9pZCBHZXRPYmplY3QoKQ0KICAgICAgew0KICAgICAgTWFyc2hhbE9iamVjdCBvYmpNYXJz
aGFsID0gbmV3IE1hcnNoYWxPYmplY3QoMSk7DQoNCiAgICAgIFJlbW90aW5nU2VydmljZXMuU2V0
T2JqZWN0VXJpRm9yTWFyc2hhbChvYmpNYXJzaGFsLCAiTWFyc2hhbEJ5UmVmT2JqZWN0VGVzdC5v
YmpNYXJzaGFsMyIpOw0KICAgICAgUmVtb3RpbmdTZXJ2aWNlcy5NYXJzaGFsKG9iak1hcnNoYWwp
Ow0KDQogICAgICBUY3BDaGFubmVsIGNobiA9IG5ldyBUY3BDaGFubmVsKDEyMzQpOw0KICAgICAg
Q2hhbm5lbFNlcnZpY2VzLlJlZ2lzdGVyQ2hhbm5lbChjaG4pOw0KICAgICAgDQogICAgICBvYmpl
Y3Qgb2JqUmVtID0gQWN0aXZhdG9yLkdldE9iamVjdCh0eXBlb2YoTWFyc2hhbE9iamVjdCksICJ0
Y3A6Ly9sb2NhbGhvc3Q6MTIzNC9NYXJzaGFsQnlSZWZPYmplY3RUZXN0Lm9iak1hcnNoYWwzIik7
DQoNCiAgICAgIE1hcnNoYWxPYmplY3Qgb2JqTWFyc2hhbFJlbSA9IChNYXJzaGFsT2JqZWN0KSBv
YmpSZW07DQoNCiAgICAgIEFzc2VydGlvbi5Bc3NlcnRFcXVhbHMoIiNBMDMiLCAxLCBvYmpNYXJz
aGFsUmVtLklkKTsNCg0KICAgICAgLy8gVE9ETzogV2hlbiBpbXBsZW1lbnRlZCBpbiB0aGUgbW9u
byBSZW1vdGluZ1NlcnZpY2VzIGNsYXNzDQogICAgICAvL1JlbW90aW5nU2VydmljZXMuRGlzY29u
bmVjdChvYmpNYXJzaGFsKTsNCi8vICAgICAgY2huLlN0b3BMaXN0ZW5pbmcobnVsbCk7DQogICAg
ICBDaGFubmVsU2VydmljZXMuVW5yZWdpc3RlckNoYW5uZWwoY2huKTsNCg0KICAgICAgfQ0KICAg
IH0NCiAgfQ0K

---MOQ1045249721ca232a6b9be40293cae4f1fc952a17a3--