Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cUd40-000263-RO for pgadmin-hackers@arkaria.postgresql.org; Fri, 20 Jan 2017 17:33:25 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cUd40-0006EB-9O for pgadmin-hackers@arkaria.postgresql.org; Fri, 20 Jan 2017 17:33:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cUd3y-0006Dw-OC for pgadmin-hackers@postgresql.org; Fri, 20 Jan 2017 17:33:22 +0000 Received: from mail-yw0-x235.google.com ([2607:f8b0:4002:c05::235]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cUd3o-0005PB-EW for pgadmin-hackers@postgresql.org; Fri, 20 Jan 2017 17:33:21 +0000 Received: by mail-yw0-x235.google.com with SMTP id v200so95374152ywc.3 for ; Fri, 20 Jan 2017 09:33:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=H7AqWs/3EkBMlhZETfx4N3fPTJSjLeW0JhVYnfpe280=; b=ieD5GkqR4a7xrVIX7Jf6aGo7SLic8e2Ui/8ln28Hhf3EUL4fBtLP8GIN4SVRcOD3Rr yRKD7UlluVtJA4UJZ8XTAY+PDufI11ZZA+g1DXCASn0KO51d2bW5ic04BqCHXbJTnkNZ bi1lolawM9Jn9ifsQVtzfCS5xMYpMB9NWJXzGyjdJZGNrfgYTGfSvWbhgUKgDZgo69Nx fpWHpU0e5iOXhUEm9lu8K3JkP4AQoCUoIKWR9oNIf8qBB+TuRkms8DHSBthwGHuMirtQ UGoGN+/14Q0nM4QMceJOg/0sJAODDYfgnClwC3RkdSTPkzy2/vvkrSKvlnAhswi+jIuu 9F/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=H7AqWs/3EkBMlhZETfx4N3fPTJSjLeW0JhVYnfpe280=; b=RpJ/nMZkhRGEyYJmDtXs7kyH+PPammAQisxt5eM+fhLVDWRr9mhWkigSvU8esIshAo QhGpwFMWQ3uLEhBCG4K80riLAZ9AIRDVWwYzpqCSRgKkvxHzv7Ud0iF4yAR5KEVLtDZ8 pxpzdfmZzc2/lbYwoxybR66cwFPZaeqSoTVVKxnGYKMRnUUHZI/+TX8XU1BR6DRVDK+y YagjlTDhn5duVYdHJ1ZmtFw15faTtfDcp8M58YTmsktIX0rJ7nDZghXMX6UGF8qmiYRa WRrfAdPOFRKtmap9i14Bi0qSM5XWnQgVLPAmQyzd3UtCjQi96rfo3as2ywkIBW4YjUFL sIDg== X-Gm-Message-State: AIkVDXKcvgKr1eLZJPG1T9ko4Qg0HagTL3P1hSbQWRQPs/moj/n1r1lJImC2dOjcZARvisUnW9xd0CM60RyAuVgw X-Received: by 10.129.69.9 with SMTP id s9mr14473599ywa.46.1484933590244; Fri, 20 Jan 2017 09:33:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.37.170.171 with HTTP; Fri, 20 Jan 2017 09:33:09 -0800 (PST) In-Reply-To: References: From: George Gelashvili Date: Fri, 20 Jan 2017 12:33:09 -0500 Message-ID: Subject: Re: Acceptance Tests against a browser (WIP) To: Dave Page Cc: Atira Odhner , pgadmin-hackers Content-Type: multipart/mixed; boundary=f403045e66a829c9ac05468a0bf3 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --f403045e66a829c9ac05468a0bf3 Content-Type: multipart/alternative; boundary=f403045e66a829c9a805468a0bf1 --f403045e66a829c9a805468a0bf1 Content-Type: text/plain; charset=UTF-8 Thanks for bringing that to our attention! Here's the latest patch On Fri, Jan 20, 2017 at 10:38 AM, Dave Page wrote: > On Thu, Jan 19, 2017 at 10:07 PM, George Gelashvili > wrote: > > > > Here is an updated patch which starts the server up when the test starts > and > > uses the values from config.py for server name etc. It still requires > > installing chromedriver before running. Should we add something to the > > readme about that? > > Yes, we definitely should (including download site URL) > > > On Tue, Jan 17, 2017 at 11:09 AM, Atira Odhner > wrote: > >> > >> Thanks for your feedback, Dave! > >> > >> We can put the tests under the regression directory. I think that makes > >> sense. > >> I'm not picturing these tests being module specific, but we may want to > >> enable running it as a separate suite of tests. > >> > >> Thanks for the callout about the port and title. We'll make sure those > are > >> pulled from config or that the pgAdmin server is spun up by the test > with > >> specific values. > >> > >> I have a couple ideas about why the test might not have been running for > >> you. I think the patch we attached didn't spin up its own pgAdmin yet > and it > >> definitely doesn't fill in username/password if your app is running that > >> way. That's part of the WIP-ness :-P > >> > >> -Tira > >> > >> Hi > >> > >> On Thu, Jan 12, 2017 at 10:41 PM, George Gelashvili > >> wrote: > >> > here's the patch we forgot to attach. Also, you can see work on our > >> > branch > >> > at: > >> > > >> > https://github.com/pivotalsoftware/pgadmin4/tree/ > pivotal/acceptance-tests > >> > > >> > On Thu, Jan 12, 2017 at 5:26 PM, George Gelashvili > >> > > >> > wrote: > >> >> > >> >> Hi there, > >> >> > >> >> We are working on browser-automation-based acceptance tests that > >> >> exercise > >> >> pgAdmin4 the way a user might. > >> > >> Nice! > >> > >> >> The first "connect to database" test works, but at the moment depends > >> >> on > >> >> Chrome and chromedriver. We would appreciate feedback on any possible > >> >> license or code style issues at this point, as well as any thoughts > on > >> >> adding this sort of test to the codebase. > >> > >> A few thoughts: > >> > >> - If these tests are to run as part of the regression suite, the > >> framework for them should live under that directory. > >> > >> - Are any of the tests likely to be module-specific? If so, they > >> should really be part of the relevant module as the regression tests > >> are. If they're more general/less tightly coupled, then I don't see a > >> problem with them residing where they are. > >> > >> - Please take care not to include changes to .gitgnore files that > >> aren't relevant to the rest of us. > >> > >> - The port number is hard-coded in the test. > >> > >> - You've hard-coded the string "pgAdmin 4". We've tried to keep that > >> title as a config option in config.py, so you should pull the string > >> from there rather than hard-coding it. > >> > >> - The connect test fails for me (Mac, Python 2.7). I have a suspicion > >> that this may be because when the test starts chromedriver, OS X > >> prompts the user about whether a listening port should be opened, but > >> the tests don't wait (though, I tested with 3 servers configured and > >> it failed with the same error on the second and third as well, long > >> after I clicked OK on the prompt): > >> > >> Traceback (most recent call last): > >> File > >> "/Users/dpage/git/pgadmin4/web/acceptance/test_connects_ > to_database.py", > >> line 32, in runTest > >> self.assertEqual("pgAdmin 4", self.driver.title) > >> AssertionError: 'pgAdmin 4' != u'localhost' > >> > >> - Please keep tests in the pgadmin. namespace (pgadmin.acceptance.??). > >> > >> - It looks like running a single test won't work yet (because of > >> TestsGeneratorRegistry.load_generators('pgadmin.%s.tests' % > >> arguments['pkg'])) > >> > >> Thanks! > >> > >> -- > >> Dave Page > >> Blog: http://pgsnake.blogspot.com > >> Twitter: @pgsnake > >> > >> EnterpriseDB UK: http://www.enterprisedb.com > >> The Enterprise PostgreSQL Company > >> > >> > > > > > > > > -- > > Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) > > To make changes to your subscription: > > http://www.postgresql.org/mailpref/pgadmin-hackers > > > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --f403045e66a829c9a805468a0bf1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks for bringing that to our attention! Here's the = latest patch

On Fri, Jan 20, 2017 at 10:38 AM, Dave Page <dpage@pgadmin.org> wrote:
On Thu, Jan= 19, 2017 at 10:07 PM, George Gelashvili
<ggelashvili@pivotal.io>= ; wrote:
>
> Here is an updated patch which starts the server up when the test star= ts and
> uses the values from config.py for server name etc. It still requires<= br> > installing chromedriver before running. Should we add something to the=
> readme about that?

Yes, we definitely should (including download site URL)

> On Tue, Jan 17, 2017 at 11:09 AM, Atira Odhner <aodhner@pivotal.io> wrote:
>>
>> Thanks for your feedback, Dave!
>>
>> We can put the tests under the regression directory. I think that = makes
>> sense.
>> I'm not picturing these tests being module specific, but we ma= y want to
>> enable running it as a separate suite of tests.
>>
>> Thanks for the callout about the port and title. We'll make su= re those are
>> pulled from config or that the pgAdmin server is spun up by the te= st with
>> specific values.
>>
>> I have a couple ideas about why the test might not have been runni= ng for
>> you. I think the patch we attached didn't spin up its own pgAd= min yet and it
>> definitely doesn't fill in username/password if your app is ru= nning that
>> way. That's part of the WIP-ness :-P
>>
>> -Tira
>>
>> Hi
>>
>> On Thu, Jan 12, 2017 at 10:41 PM, George Gelashvili
>> <ggelashvili(at)pivotal(dot)io> wrote:
>> > here's the patch we forgot to attach. Also, you can see w= ork on our
>> > branch
>> > at:
>> >
>> > https://githu= b.com/pivotalsoftware/pgadmin4/tree/pivotal/acceptance-tests<= br> >> >
>> > On Thu, Jan 12, 2017 at 5:26 PM, George Gelashvili
>> > <ggelashvili(at)pivotal(dot)io>
>> > wrote:
>> >>
>> >> Hi there,
>> >>
>> >> We are working on browser-automation-based acceptance tes= ts that
>> >> exercise
>> >> pgAdmin4 the way a user might.
>>
>> Nice!
>>
>> >> The first "connect to database" test works, but= at the moment depends
>> >> on
>> >> Chrome and chromedriver. We would appreciate feedback on = any possible
>> >> license or code style issues at this point, as well as an= y thoughts on
>> >> adding this sort of test to the codebase.
>>
>> A few thoughts:
>>
>> - If these tests are to run as part of the regression suite, the >> framework for them should live under that directory.
>>
>> - Are any of the tests likely to be module-specific? If so, they >> should really be part of the relevant module as the regression tes= ts
>> are. If they're more general/less tightly coupled, then I don&= #39;t see a
>> problem with them residing where they are.
>>
>> - Please take care not to include changes to .gitgnore files that<= br> >> aren't relevant to the rest of us.
>>
>> - The port number is hard-coded in the test.
>>
>> - You've hard-coded the string "pgAdmin 4". We'v= e tried to keep that
>> title as a config option in config.py, so you should pull the stri= ng
>> from there rather than hard-coding it.
>>
>> - The connect test fails for me (Mac, Python 2.7). I have a suspic= ion
>> that this may be because when the test starts chromedriver, OS X >> prompts the user about whether a listening port should be opened, = but
>> the tests don't wait (though, I tested with 3 servers configur= ed and
>> it failed with the same error on the second and third as well, lon= g
>> after I clicked OK on the prompt):
>>
>> Traceback (most recent call last):
>>=C2=A0 =C2=A0File
>> "/Users/dpage/git/pgadmin4/web/acceptance/test_connects_= to_database.py",
>> line 32, in runTest
>>=C2=A0 =C2=A0 =C2=A0self.assertEqual("pgAdmin 4", self.dr= iver.title)
>> AssertionError: 'pgAdmin 4' !=3D u'localhost'
>>
>> - Please keep tests in the pgadmin. namespace (pgadmin.acceptance.= ??).
>>
>> - It looks like running a single test won't work yet (because = of
>> TestsGeneratorRegistry.load_generators('pgadmin.%s.tests&= #39; %
>> arguments['pkg']))
>>
>> Thanks!
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>>
>
>
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadm= in-hackers
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--f403045e66a829c9a805468a0bf1-- --f403045e66a829c9ac05468a0bf3 Content-Type: text/plain; charset=US-ASCII; name="acceptance-tests-with-server-start-and-polling.diff" Content-Disposition: attachment; filename="acceptance-tests-with-server-start-and-polling.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iy6344y00 ZGlmZiAtLWdpdCBhL3JlcXVpcmVtZW50c19weTIudHh0IGIvcmVxdWlyZW1l bnRzX3B5Mi50eHQKaW5kZXggNTExNzBhNDUuLmRlMTY3MTIxIDEwMDY0NAot LS0gYS9yZXF1aXJlbWVudHNfcHkyLnR4dAorKysgYi9yZXF1aXJlbWVudHNf cHkyLnR4dApAQCAtMzYsNiArMzYsNyBAQCB0ZXN0c2NlbmFyaW9zPT0wLjUu MAogdGVzdHRvb2xzPT0yLjAuMAogdHJhY2ViYWNrMj09MS40LjAKIHVuaXR0 ZXN0Mj09MS4xLjAKK3NlbGVuaXVtPT0zLjAuMgogV2Vya3pldWc9PTAuOS42 CiBXVEZvcm1zPT0yLjAuMgogc3FscGFyc2U9PTAuMS4xOQpkaWZmIC0tZ2l0 IGEvcmVxdWlyZW1lbnRzX3B5My50eHQgYi9yZXF1aXJlbWVudHNfcHkzLnR4 dAppbmRleCBmNjhkYjdhOC4uOTU2NWE2ZTQgMTAwNjQ0Ci0tLSBhL3JlcXVp cmVtZW50c19weTMudHh0CisrKyBiL3JlcXVpcmVtZW50c19weTMudHh0CkBA IC0zNSw2ICszNSw3IEBAIHRlc3RzY2VuYXJpb3M9PTAuNS4wCiB0ZXN0dG9v bHM9PTIuMC4wCiB0cmFjZWJhY2syPT0xLjQuMAogdW5pdHRlc3QyPT0xLjEu MAorc2VsZW5pdW09PTMuMC4yCiBXZXJremV1Zz09MC45LjYKIFdURm9ybXM9 PTIuMC4yCiBzcWxwYXJzZT09MC4xLjE5CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9hY2NlcHRhbmNlL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYWNj ZXB0YW5jZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMC4uZTY5ZGUyOWIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2FjY2VwdGFuY2UvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9h Y2NlcHRhbmNlL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwLi5lNjlkZTI5YgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy90ZXN0X2Nvbm5lY3RzX3RvX2Rh dGFiYXNlLnB5IGIvd2ViL3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy90ZXN0 X2Nvbm5lY3RzX3RvX2RhdGFiYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwLi5jMzVjZDBmZAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2FjY2VwdGFuY2UvdGVzdHMvdGVzdF9jb25uZWN0c190 b19kYXRhYmFzZS5weQpAQCAtMCwwICsxLDEyNyBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitpbXBvcnQgdGltZQorCitmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJk cml2ZXIKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0 IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0ud2ViZHJp dmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKKworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCitpbXBvcnQgc3Vi cHJvY2VzcworaW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitpbXBvcnQgY29u ZmlnCisKKworY2xhc3MgQ29ubmVjdHNUb0RhdGFiYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiIKKyAgICBUZXN0cyB0aGF0IGEgZGF0YWJhc2Ug Y29ubmVjdGlvbiBjYW4gYmUgY3JlYXRlZCBmcm9tIHRoZSBVSQorICAgICIi IgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBpZiBjb25maWcu U0VSVkVSX01PREU6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJDdXJy ZW50bHksIGNvbmZpZyBpcyBzZXQgdG8gc3RhcnQgcGdhZG1pbiBpbiBzZXJ2 ZXIgbW9kZS4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyB0 ZXN0IGRvZXNuJ3Qga25vdyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgc28gZG9l c24ndCB3b3JrIGluIHNlcnZlciBtb2RlIikKKworICAgICAgICBzZWxmLnBn YWRtaW5fcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyJweXRob24iLCAi cGdBZG1pbjQucHkiXSwgc2hlbGw9RmFsc2UsIHByZWV4ZWNfZm49b3Muc2V0 c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RkZXJyPW9wZW4ob3MuZGV2bnVsbCwgJ3cnKSkKKworICAg ICAgICBzZWxmLmRyaXZlciA9IHdlYmRyaXZlci5DaHJvbWUoKQorICAgICAg ICBzZWxmLnNlcnZlcl9jb25maWcgPSBzZWxmLnNlcnZlcgorCisgICAgICAg IHByaW50KCJvcGVuaW5nIGJyb3dzZXIiKQorICAgICAgICBzZWxmLmRyaXZl ci5nZXQoImh0dHA6Ly8iICsgY29uZmlnLkRFRkFVTFRfU0VSVkVSICsgIjoi ICsgc3RyKGNvbmZpZy5ERUZBVUxUX1NFUlZFUl9QT1JUKSkKKyAgICAgICAg c2VsZi5fd2FpdF9mb3JfYXBwKCkKKworICAgIGRlZiBydW5UZXN0KHNlbGYp OgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5BUFBfTkFNRSwg c2VsZi5kcml2ZXIudGl0bGUpCisgICAgICAgIHNlbGYuX3dhaXRfZm9yX3Nw aW5uZXJfdG9fZGlzYXBwZWFyKCkKKworICAgICAgICBzZWxmLl9maW5kX2J5 X3hwYXRoKCIvLypbQGNsYXNzPSdhY2lUcmVlVGV4dCcgYW5kIC49J1NlcnZl cnMnXSIpLmNsaWNrKCkKKyAgICAgICAgc2VsZi5kcml2ZXIuZmluZF9lbGVt ZW50X2J5X2xpbmtfdGV4dCgiT2JqZWN0IikuY2xpY2soKQorICAgICAgICBB Y3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpIFwKKyAgICAgICAgICAgIC5tb3Zl X3RvX2VsZW1lbnQoc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtf dGV4dCgiQ3JlYXRlIikpIFwKKyAgICAgICAgICAgIC5wZXJmb3JtKCkKKyAg ICAgICAgc2VsZi5fZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiU2VydmVy Li4uIikuY2xpY2soKQorCisgICAgICAgIHNlbGYuX2ZpbGxfaW5wdXRfYnlf eHBhdGgoIm5hbWUiLCBzZWxmLnNlcnZlcl9jb25maWdbJ25hbWUnXSkKKyAg ICAgICAgc2VsZi5fZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiQ29ubmVj dGlvbiIpLmNsaWNrKCkKKyAgICAgICAgc2VsZi5fZmlsbF9pbnB1dF9ieV94 cGF0aCgiaG9zdCIsIHNlbGYuc2VydmVyX2NvbmZpZ1snaG9zdCddKQorICAg ICAgICBzZWxmLl9maWxsX2lucHV0X2J5X3hwYXRoKCJwb3J0Iiwgc2VsZi5z ZXJ2ZXJfY29uZmlnWydwb3J0J10pCisgICAgICAgIHNlbGYuX2ZpbGxfaW5w dXRfYnlfeHBhdGgoInVzZXJuYW1lIiwgc2VsZi5zZXJ2ZXJfY29uZmlnWyd1 c2VybmFtZSddKQorICAgICAgICBzZWxmLl9maWxsX2lucHV0X2J5X3hwYXRo KCJwYXNzd29yZCIsIHNlbGYuc2VydmVyX2NvbmZpZ1snZGJfcGFzc3dvcmQn XSkKKyAgICAgICAgc2VsZi5fZmluZF9ieV94cGF0aCgiLy9idXR0b25bY29u dGFpbnMoLiwnU2F2ZScpXSIpLmNsaWNrKCkKKworICAgICAgICBzZWxmLl9m aW5kX2J5X3hwYXRoKCIvLypbQGlkPSd0cmVlJ10vLypbLj0nIiArIHNlbGYu c2VydmVyX2NvbmZpZ1snbmFtZSddICsgIiddIikKKworICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgc2VsZi5kcml2ZXIuY2xvc2UoKQorICAg ICAgICBvcy5raWxscGcob3MuZ2V0cGdpZChzZWxmLnBnYWRtaW5fcHJvY2Vz cy5waWQpLCBzaWduYWwuU0lHVEVSTSkKKworICAgIGRlZiBmYWlsdXJlRXhj ZXB0aW9uKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYu ZHJpdmVyLnNhdmVfc2NyZWVuc2hvdCgnL3RtcC9wZ2FkbWluX3Rlc3Rfc2Ny ZWVuc2hvdC5wbmcnKQorICAgICAgICByZXR1cm4gQXNzZXJ0aW9uRXJyb3Io KmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIF9maW5kX2J5X3hwYXRoKHNl bGYsIHhwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3dhaXRfZm9yX2Vs ZW1lbnQobGFtYmRhOiBzZWxmLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBh dGgoeHBhdGgpKQorCisgICAgZGVmIF9maW5kX2J5X3BhcnRpYWxfbGlua190 ZXh0KHNlbGYsIGxpbmtfdGV4dCk6CisgICAgICAgIHJldHVybiBzZWxmLl93 YWl0X2Zvcl9lbGVtZW50KGxhbWJkYTogc2VsZi5kcml2ZXIuZmluZF9lbGVt ZW50X2J5X3BhcnRpYWxfbGlua190ZXh0KGxpbmtfdGV4dCkpCisKKyAgICBk ZWYgX2ZpbGxfaW5wdXRfYnlfeHBhdGgoc2VsZiwgZmllbGRfbmFtZSwgZmll bGRfY29udGVudCk6CisgICAgICAgIHNlbGYuX2ZpbmRfYnlfeHBhdGgoIi8v aW5wdXRbQG5hbWU9JyIgKyBmaWVsZF9uYW1lICsgIiddIikuY2xlYXIoKQor ICAgICAgICBzZWxmLl9maW5kX2J5X3hwYXRoKCIvL2lucHV0W0BuYW1lPSci ICsgZmllbGRfbmFtZSArICInXSIpLnNlbmRfa2V5cygKKyAgICAgICAgICAg IGZpZWxkX2NvbnRlbnQpCisKKyAgICBkZWYgX3dhaXRfZm9yX2VsZW1lbnQo c2VsZiwgZmluZF9tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgZGVmIGVs ZW1lbnRfaWZfaXRfZXhpc3RzKCk6CisgICAgICAgICAgICB0cnk6CisgICAg ICAgICAgICAgICAgZWxlbWVudCA9IGZpbmRfbWV0aG9kX3dpdGhfYXJncygp CisgICAgICAgICAgICAgICAgaWYgZWxlbWVudC5pc19kaXNwbGF5ZWQoKSAm IGVsZW1lbnQuaXNfZW5hYmxlZCgpOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gZWxlbWVudAorICAgICAgICAgICAgZXhjZXB0IE5vU3VjaEVsZW1l bnRFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK KyAgICAgICAgcmV0dXJuIHNlbGYuX193YWl0X2ZvcigiZWxlbWVudCB0byBl eGlzdCIsIGVsZW1lbnRfaWZfaXRfZXhpc3RzKQorCisgICAgZGVmIF93YWl0 X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcihzZWxmKToKKyAgICAgICAgZGVm IHNwaW5uZXJfaGFzX2Rpc2FwcGVhcmVkKCk6CisgICAgICAgICAgICB0cnk6 CisgICAgICAgICAgICAgICAgc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50X2J5 X2lkKCJwZy1zcGlubmVyIikKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFs c2UKKyAgICAgICAgICAgIGV4Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9u OgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgc2Vs Zi5fX3dhaXRfZm9yKCJzcGlubmVyIHRvIGRpc2FwcGVhciIsIHNwaW5uZXJf aGFzX2Rpc2FwcGVhcmVkKQorCisgICAgZGVmIF93YWl0X2Zvcl9hcHAoc2Vs Zik6CisgICAgICAgIGRlZiBwYWdlX3Nob3dzX2FwcCgpOgorICAgICAgICAg ICAgaWYgc2VsZi5kcml2ZXIudGl0bGUgPT0gY29uZmlnLkFQUF9OQU1FOgor ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLnJlZnJlc2goKQorICAg ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHNlbGYuX193 YWl0X2ZvcigiYXBwIHRvIHN0YXJ0IiwgcGFnZV9zaG93c19hcHApCisKKyAg ICBkZWYgX193YWl0X2ZvcihzZWxmLCB3YWl0aW5nX2Zvcl9tZXNzYWdlLCBj b25kaXRpb25fbWV0X2Z1bmN0aW9uKToKKyAgICAgICAgdGltZW91dCA9IDUK KyAgICAgICAgdGltZV93YWl0ZWQgPSAwCisgICAgICAgIHNsZWVwX3RpbWUg PSAwLjAxCisKKyAgICAgICAgd2hpbGUgdGltZV93YWl0ZWQgPCB0aW1lb3V0 OgorICAgICAgICAgICAgcmVzdWx0ID0gY29uZGl0aW9uX21ldF9mdW5jdGlv bigpCisgICAgICAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAgICAgICAg cmV0dXJuIHJlc3VsdAorICAgICAgICAgICAgdGltZV93YWl0ZWQgKz0gc2xl ZXBfdGltZQorICAgICAgICAgICAgdGltZS5zbGVlcChzbGVlcF90aW1lKQor CisgICAgICAgIHNlbGYuZmFpbCgiVGltZWQgb3V0IHdhaXRpbmcgZm9yICIg KyB3YWl0aW5nX2Zvcl9tZXNzYWdlKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5w eQppbmRleCBmMThkMmMxOC4uZmVkMjZhMGYgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3V0aWxzL3JvdXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxz L3JvdXRlLnB5CkBAIC01NCwyMCArNTQsMjUgQEAgY2xhc3MgVGVzdHNHZW5l cmF0b3JSZWdpc3RyeShBQkNNZXRhKToKICAgICAgICAgQUJDTWV0YS5fX2lu aXRfXyhjbHMsIG5hbWUsIGJhc2VzLCBkKQogCiAgICAgQGNsYXNzbWV0aG9k Ci0gICAgZGVmIGxvYWRfZ2VuZXJhdG9ycyhjbHMsIHBrZyk6CisgICAgZGVm IGxvYWRfZ2VuZXJhdG9ycyhjbHMsICpwa2dzKToKIAogICAgICAgICBjbHMu cmVnaXN0cnkgPSBkaWN0KCkKIAorICAgICAgICBhbGxfbW9kdWxlcyA9IFtd CisKKyAgICAgICAgZm9yIHBrZyBpbiBwa2dzOgorICAgICAgICAgICAgYWxs X21vZHVsZXMgKz0gZmluZF9tb2R1bGVzKHBrZywgRmFsc2UsIFRydWUpCisK KwogICAgICAgICAjIENoZWNrIGZvciBTRVJWRVIgbW9kZQotICAgICAgICBp ZiBjb25maWcuU0VSVkVSX01PREU6Ci0gICAgICAgICAgICBmb3IgbW9kdWxl X25hbWUgaW4gZmluZF9tb2R1bGVzKHBrZywgRmFsc2UsIFRydWUpOgorICAg ICAgICBmb3IgbW9kdWxlX25hbWUgaW4gYWxsX21vZHVsZXM6CisgICAgICAg ICAgICBpZiBjb25maWcuU0VSVkVSX01PREU6CiAgICAgICAgICAgICAgICAg dHJ5OgogICAgICAgICAgICAgICAgICAgICBpZiAidGVzdHMuIiBpbiBzdHIo bW9kdWxlX25hbWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0 X21vZHVsZShtb2R1bGVfbmFtZSkKICAgICAgICAgICAgICAgICBleGNlcHQg SW1wb3J0RXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5w cmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICBlbHNlOgotICAg ICAgICAgICAgZm9yIG1vZHVsZV9uYW1lIGluIGZpbmRfbW9kdWxlcyhwa2cs IEZhbHNlLCBUcnVlKToKKyAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAjIEV4Y2x1ZGUgdGhl IHRlc3QgY2FzZXMgaW4gYnJvd3NlciBub2RlIGlmIFNFUlZFUl9NT0RFCiAg ICAgICAgICAgICAgICAgICAgICMgaXMgRmFsc2UKZGlmZiAtLWdpdCBhL3dl Yi9yZWdyZXNzaW9uLy5naXRpZ25vcmUgYi93ZWIvcmVncmVzc2lvbi8uZ2l0 aWdub3JlCmluZGV4IDA1ODE4MTBiLi43MjNmY2U3ZSAxMDA2NDQKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vLmdpdGlnbm9yZQorKysgYi93ZWIvcmVncmVzc2lv bi8uZ2l0aWdub3JlCkBAIC0xLDQgKzEsNSBAQAogcGFyZW50X2lkLnBrbAog cmVncmVzc2lvbi5sb2cKK3Rlc3RfZ3JlZW5wbHVtX2NvbmZpZy5qc29uCiB0 ZXN0X2FkdmFuY2VkX2NvbmZpZy5qc29uCiB0ZXN0X2NvbmZpZy5qc29uCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9SRUFETUUgYi93ZWIvcmVncmVz c2lvbi9SRUFETUUKaW5kZXggOGNjMjk5ODcuLmFlNWQyNjhkIDEwMDY0NAot LS0gYS93ZWIvcmVncmVzc2lvbi9SRUFETUUKKysrIGIvd2ViL3JlZ3Jlc3Np b24vUkVBRE1FCkBAIC0xMDMsNiArMTAzLDEwIEBAIFRlc3QgRGF0YSBEZXRh aWxzCiBFeGVjdXRpb246CiAtLS0tLS0tLS0tLQogCistIEZvciBhY2NlcHRh bmNlIHRlc3RzIHRvIHJ1biBhcyBwYXJ0IG9mIHRoZSBlbnRpcmUgdGVzdCBz dWl0ZSwgQ2hyb21lIGFuZCBjaHJvbWVkcml2ZXIgbmVlZCB0byBiZSBpbnN0 YWxsZWQ6CisgIGdldCBjaHJvbWVkcml2ZXIgZnJvbSBodHRwczovL3NpdGVz Lmdvb2dsZS5jb20vYS9jaHJvbWl1bS5vcmcvY2hyb21lZHJpdmVyL2Rvd25s b2FkcyBvciBhIHBhY2thZ2UgbWFuYWdlcgorICBhbmQgbWFrZSBzdXJlIGl0 IGlzIG9uIHRoZSBQQVRICisKIC0gVGhlIHRlc3QgZnJhbWV3b3JrIGlzIG1v ZHVsYXIgYW5kIHBsdWdnYWJsZSBhbmQgZHluYW1pY2FsbHkgbG9jYXRlcyB0 ZXN0cwogICBmb3IgbW9kdWxlcyB3aGljaCBhcmUgZGlzY292ZXJlZCBhdCBy dW50aW1lLiBBbGwgdGVzdCBjYXNlcyBhcmUgZm91bmQKICAgYW5kIHJlZ2lz dGVyZWQgYXV0b21hdGljYWxseSBieSBpdHMgbW9kdWxlIG5hbWUgaW4KZGlm ZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkgYi93ZWIv cmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5CmluZGV4IGEyZDJmNWNkLi4xZjlm MDUyMiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5w eQorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5CkBAIC02OSw3 ICs2OSw3IEBAIGRlZiBnZXRfY29uZmlnX2RhdGEoKToKICAgICAiIiJUaGlz IGZ1bmN0aW9uIHJlYWRzIHRoZSBzZXJ2ZXIgZGF0YSBmcm9tIGNvbmZpZ19k YXRhIiIiCiAgICAgc2VydmVyX2RhdGEgPSBbXQogICAgIGZvciBzcnYgaW4g dGVzdF9zZXR1cC5jb25maWdfZGF0YVsnc2VydmVyX2NyZWRlbnRpYWxzJ106 Ci0gICAgICAgIGlmIChub3Qgc3J2Lmhhc19rZXkoJ2VuYWJsZWQnKSkgb3Ig c3J2WydlbmFibGVkJ10gPT0gVHJ1ZToKKyAgICAgICAgaWYgKG5vdCAnZW5h YmxlZCcgaW4gc3J2KSBvciBzcnZbJ2VuYWJsZWQnXToKICAgICAgICAgICAg IGRhdGEgPSB7Im5hbWUiOiBzcnZbJ25hbWUnXSwKICAgICAgICAgICAgICAg ICAgICAgImNvbW1lbnQiOiBzcnZbJ2NvbW1lbnQnXSwKICAgICAgICAgICAg ICAgICAgICAgImhvc3QiOiBzcnZbJ2hvc3QnXSwK --f403045e66a829c9ac05468a0bf3 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --f403045e66a829c9ac05468a0bf3--