Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bn2JX-0005JZ-Nr for pgadmin-hackers@arkaria.postgresql.org; Thu, 22 Sep 2016 11:37:16 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bn2JX-0004oX-94 for pgadmin-hackers@arkaria.postgresql.org; Thu, 22 Sep 2016 11:37:15 +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 1bn2JG-0004TI-4W for pgadmin-hackers@postgresql.org; Thu, 22 Sep 2016 11:36:58 +0000 Received: from mail-qt0-x22a.google.com ([2607:f8b0:400d:c0d::22a]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bn2JB-0002w6-Iy for pgadmin-hackers@postgresql.org; Thu, 22 Sep 2016 11:36:57 +0000 Received: by mail-qt0-x22a.google.com with SMTP id 93so36114997qtg.2 for ; Thu, 22 Sep 2016 04:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mExz4o+oN+mIS1JOa5yVq6VGYr5HC0JQQHZ1m4Z6H64=; b=a79DxmGIi59oa/5R2yPOKGaicYs6LHuP43jJcMpucornQ86To3IBmTy7jMENGLswdk 8Ovv19AQqKR+irgykMHUCT41vaIo6Mr5BDgCvDUMHBzr2py4v85i3uyG1floJ+ETdaX5 cqdhPObTKayepaKZNMgxh0pyHJv0yUw1kGfxzV6dcLjf4L4SoWGUuQy6d0qdnQnzWxV9 u4qIyzcC+vrlKbr1xy60lOj9b5Se/r6N7508xA3eersPyLhzNrRI1ITNSR2W9FuWg0wl txunSWuVHrksV3zui12VJqGbz/ZVT72jgxk6DvhDQnM8Gi9qXvddA9A49P/hTqps8yS6 12bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=mExz4o+oN+mIS1JOa5yVq6VGYr5HC0JQQHZ1m4Z6H64=; b=bfTKexkr11L7h4gvo0eHCAhct3u8YpMOTk98sKtqgqFzpZsUxjaF3/u6cI6uDfx6CW klvHINIb55phNUSR32iLYNmZG+fGoElyVfgS4av9teGCdQTEkCItmpX0yJy8gunYHF76 IoaS0c0GHPZWSYsjtjfOMGtjD3fiNHM5fDgHr1tAeZoGg5KsmnstQe9N7InTDzLIWgcu +QTn3G7/m41HS0pfmilZfl4tMdrdXNRdqQ00+xdaPECPO84z69mVKCLZwLvHsUAbpLsG wb3aEXCTCQLsR7TFUpwasCARTZ7LIL5E+13fYqJj2MVwYZ1mNxZU17RJZq2y2VPh3vBQ K1cQ== X-Gm-Message-State: AA6/9RnHFWaMWcmrS1H49Eg0YrdlSiZAVBmPj8wEfl+wD/w4kuJCYzckG2h/N0zHVZWsnKGClRLQNkq79jYxGnnY X-Received: by 10.200.48.243 with SMTP id w48mr1429291qta.71.1474544211954; Thu, 22 Sep 2016 04:36:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.114 with HTTP; Thu, 22 Sep 2016 04:36:51 -0700 (PDT) In-Reply-To: References: From: Navnath Gadakh Date: Thu, 22 Sep 2016 17:06:51 +0530 Message-ID: Subject: Re: Regression errors - database node To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11404c5cf5c9e8053d171354 X-Pg-Spam-Score: -2.5 (--) 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 --001a11404c5cf5c9e8053d171354 Content-Type: multipart/alternative; boundary=001a11404c5cf5c9e4053d171352 --001a11404c5cf5c9e4053d171352 Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find the attached revised patch for regression errors which we faced. Firstly, apply patch for RM#1720(Harshal worked on this) and then apply this patch. There is some code change in test suite due to code modification in dev side. Note: Run test suite only for server or database node. Thanks. On Wed, Sep 21, 2016 at 4:46 PM, Navnath Gadakh < navnath.gadakh@enterprisedb.com> wrote: > Hi Dave, > After a long debugging of these errors with Harshal, we found the > issue is in the handling pyscopg connection. Need to add some code in the > pyscopg connection manager as per Harshal. > > For more details, Please refer RM #1720. > > > @Harshal, thanks for the time invested. > > Thanks. > > > > On Mon, Sep 19, 2016 at 9:22 PM, Dave Page wrote: > >> Hi Navnath >> >> I keep seeing the errors below when running tests. It seems to be >> consistent on EPAS, but intermittent on PG. Any ideas what the issue >> is? I'm fairly convinced it's a test issue not an actual problem. >> >> 2016-09-19 16:47:49,567:ERROR:STDERR:================================== >> ==================================== >> 2016-09-19 16:47:49,568:ERROR:STDERR:ERROR: runTest >> (pgadmin.browser.server_groups.servers.databases.tests.test_ >> db_get.DatabasesGetTestCase) >> 2016-09-19 16:47:49,568:ERROR:STDERR:This function will fetch added >> database. (Check Databases Node URL) >> 2016-09-19 16:47:49,568:ERROR:STDERR:---------------------------------- >> ------------------------------------ >> 2016-09-19 16:47:49,568:ERROR:STDERR:Traceback (most recent call last): >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/tests/test_db_get.py", >> line 33, in runTest >> 2016-09-19 16:47:49,568:ERROR:STDERR: self.db_id) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/tests/utils.py", >> line 142, in verify_database >> 2016-09-19 16:47:49,568:ERROR:STDERR: follow_redirects=True) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 788, in post >> 2016-09-19 16:47:49,568:ERROR:STDERR: return self.open(*args, **kw) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/testing.py", >> line 113, in open >> 2016-09-19 16:47:49,568:ERROR:STDERR: follow_redirects=follow_redire >> cts) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 751, in open >> 2016-09-19 16:47:49,568:ERROR:STDERR: response = >> self.run_wsgi_app(environ, buffered=buffered) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 668, in run_wsgi_app >> 2016-09-19 16:47:49,568:ERROR:STDERR: rv = >> run_wsgi_app(self.application, environ, buffered=buffered) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 871, in run_wsgi_app >> 2016-09-19 16:47:49,568:ERROR:STDERR: app_rv = app(environ, >> start_response) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 2000, in __call__ >> 2016-09-19 16:47:49,568:ERROR:STDERR: return self.wsgi_app(environ, >> start_response) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1991, in wsgi_app >> 2016-09-19 16:47:49,568:ERROR:STDERR: response = >> self.make_response(self.handle_exception(e)) >> 2016-09-19 16:47:49,568:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1567, in handle_exception >> 2016-09-19 16:47:49,568:ERROR:STDERR: reraise(exc_type, exc_value, tb) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1988, in wsgi_app >> 2016-09-19 16:47:49,569:ERROR:STDERR: response = >> self.full_dispatch_request() >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1641, in full_dispatch_request >> 2016-09-19 16:47:49,569:ERROR:STDERR: rv = >> self.handle_user_exception(e) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1544, in handle_user_exception >> 2016-09-19 16:47:49,569:ERROR:STDERR: reraise(exc_type, exc_value, tb) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1639, in full_dispatch_request >> 2016-09-19 16:47:49,569:ERROR:STDERR: rv = self.dispatch_request() >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1625, in dispatch_request >> 2016-09-19 16:47:49,569:ERROR:STDERR: return >> self.view_functions[rule.endpoint](**req.view_args) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/views.py", >> line 84, in view >> 2016-09-19 16:47:49,569:ERROR:STDERR: return >> self.dispatch_request(*args, **kwargs) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line 235, in >> dispatch_request >> 2016-09-19 16:47:49,569:ERROR:STDERR: return method(*args, **kwargs) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/__init__.py", >> line 364, in connect >> 2016-09-19 16:47:49,569:ERROR:STDERR: conn = >> manager.connection(did=did, auto_reconnect=True) >> 2016-09-19 16:47:49,569:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2 >> /__init__.py", >> line 1447, in connection >> 2016-09-19 16:47:49,569:ERROR:STDERR: "Couldn't find the specified >> database." >> 2016-09-19 16:47:49,569:ERROR:STDERR:Exception: Couldn't find the >> specified database. >> 2016-09-19 16:47:49,569:ERROR:STDERR:================================== >> ==================================== >> 2016-09-19 16:47:49,569:ERROR:STDERR:ERROR: runTest >> (pgadmin.browser.server_groups.servers.databases.tests.test_ >> db_put.DatabasesUpdateTestCase) >> 2016-09-19 16:47:49,569:ERROR:STDERR:This function will update the >> comments field of database. (Check Databases Node) >> 2016-09-19 16:47:49,569:ERROR:STDERR:---------------------------------- >> ------------------------------------ >> 2016-09-19 16:47:49,570:ERROR:STDERR:Traceback (most recent call last): >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/tests/test_db_put.py", >> line 37, in runTest >> 2016-09-19 16:47:49,570:ERROR:STDERR: db_id) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/tests/utils.py", >> line 142, in verify_database >> 2016-09-19 16:47:49,570:ERROR:STDERR: follow_redirects=True) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 788, in post >> 2016-09-19 16:47:49,570:ERROR:STDERR: return self.open(*args, **kw) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/testing.py", >> line 113, in open >> 2016-09-19 16:47:49,570:ERROR:STDERR: follow_redirects=follow_redire >> cts) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 751, in open >> 2016-09-19 16:47:49,570:ERROR:STDERR: response = >> self.run_wsgi_app(environ, buffered=buffered) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 668, in run_wsgi_app >> 2016-09-19 16:47:49,570:ERROR:STDERR: rv = >> run_wsgi_app(self.application, environ, buffered=buffered) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/werkzeug/test.py", >> line 871, in run_wsgi_app >> 2016-09-19 16:47:49,570:ERROR:STDERR: app_rv = app(environ, >> start_response) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 2000, in __call__ >> 2016-09-19 16:47:49,570:ERROR:STDERR: return self.wsgi_app(environ, >> start_response) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1991, in wsgi_app >> 2016-09-19 16:47:49,570:ERROR:STDERR: response = >> self.make_response(self.handle_exception(e)) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1567, in handle_exception >> 2016-09-19 16:47:49,570:ERROR:STDERR: reraise(exc_type, exc_value, tb) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1988, in wsgi_app >> 2016-09-19 16:47:49,570:ERROR:STDERR: response = >> self.full_dispatch_request() >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1641, in full_dispatch_request >> 2016-09-19 16:47:49,570:ERROR:STDERR: rv = >> self.handle_user_exception(e) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1544, in handle_user_exception >> 2016-09-19 16:47:49,570:ERROR:STDERR: reraise(exc_type, exc_value, tb) >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1639, in full_dispatch_request >> 2016-09-19 16:47:49,570:ERROR:STDERR: rv = self.dispatch_request() >> 2016-09-19 16:47:49,570:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/app.py", >> line 1625, in dispatch_request >> 2016-09-19 16:47:49,571:ERROR:STDERR: return >> self.view_functions[rule.endpoint](**req.view_args) >> 2016-09-19 16:47:49,571:ERROR:STDERR: File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >> ges/flask/views.py", >> line 84, in view >> 2016-09-19 16:47:49,571:ERROR:STDERR: return >> self.dispatch_request(*args, **kwargs) >> 2016-09-19 16:47:49,571:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line 235, in >> dispatch_request >> 2016-09-19 16:47:49,571:ERROR:STDERR: return method(*args, **kwargs) >> 2016-09-19 16:47:49,571:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/__init__.py", >> line 364, in connect >> 2016-09-19 16:47:49,571:ERROR:STDERR: conn = >> manager.connection(did=did, auto_reconnect=True) >> 2016-09-19 16:47:49,571:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2 >> /__init__.py", >> line 1447, in connection >> 2016-09-19 16:47:49,571:ERROR:STDERR: "Couldn't find the specified >> database." >> 2016-09-19 16:47:49,571:ERROR:STDERR:Exception: Couldn't find the >> specified database. >> 2016-09-19 16:47:49,571:ERROR:STDERR:================================== >> ==================================== >> 2016-09-19 16:47:49,571:ERROR:STDERR:FAIL: runTest >> (pgadmin.browser.server_groups.servers.databases.tests.test_ >> db_delete.DatabaseDeleteTestCase) >> 2016-09-19 16:47:49,571:ERROR:STDERR:This function will delete the >> database. (Check Databases Node URL) >> 2016-09-19 16:47:49,571:ERROR:STDERR:---------------------------------- >> ------------------------------------ >> 2016-09-19 16:47:49,571:ERROR:STDERR:Traceback (most recent call last): >> 2016-09-19 16:47:49,571:ERROR:STDERR: File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups >> /servers/databases/tests/test_db_delete.py", >> line 38, in runTest >> 2016-09-19 16:47:49,571:ERROR:STDERR: >> self.assertEquals(response.status_code, 200) >> 2016-09-19 16:47:49,571:ERROR:STDERR:AssertionError: 410 != 200 >> 2016-09-19 16:47:49,571:ERROR:STDERR:---------------------------------- >> ------------------------------------ >> 2016-09-19 16:47:49,571:ERROR:STDERR:Ran 25 tests in 12.664s >> 2016-09-19 16:47:49,571:ERROR:STDERR:FAILED >> 2016-09-19 16:47:49,571:ERROR:STDERR: (failures=1, errors=2) >> 2016-09-19 16:47:50,033:ERROR:STDERR: >> 2016-09-19 16:47:50,033:ERROR:STDERR:Test Result Summary >> 2016-09-19 16:47:50,033:ERROR:STDERR:============================ >> 2016-09-19 16:47:50,033:ERROR:STDERR:Regression - EPAS 9.5: 22 tests >> passed, 3 tests failed : >> 2016-09-19 16:47:50,033:ERROR:STDERR: DatabaseDeleteTestCase >> 2016-09-19 16:47:50,033:ERROR:STDERR: DatabasesGetTestCase >> 2016-09-19 16:47:50,033:ERROR:STDERR: DatabasesUpdateTestCase >> 2016-09-19 16:47:50,033:ERROR:STDERR:Regression - PG 9.5: 22 tests >> passed, 3 tests failed : >> 2016-09-19 16:47:50,033:ERROR:STDERR: DatabaseDeleteTestCase >> 2016-09-19 16:47:50,033:ERROR:STDERR: DatabasesGetTestCase >> 2016-09-19 16:47:50,033:ERROR:STDERR: DatabasesUpdateTestCase >> 2016-09-19 16:47:50,034:ERROR:STDERR:Regression - PG 9.4: 25 tests >> passed, 0 tests failed >> 2016-09-19 16:47:50,034:ERROR:STDERR:============================ >> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > > -- > Regards, > Navnath > > > -- Regards, Navnath --001a11404c5cf5c9e4053d171352 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 =C2=A0 =C2=A0Please find the at= tached revised patch for regression errors which we faced.
Firstl= y, =C2=A0apply patch for RM#1720(Harshal worked on this) and then apply thi= s patch. There is some code change in test suite due to code modification i= n dev side.

Note: Run test suite=C2=A0only for ser= ver or database node.

Thanks.

=



On Wed, Sep 21, 2016 at 4:46 PM, Navnath Gadakh <navnath.gadakh@enterprisedb.com> wrote:
Hi Dave,
=C2=A0 =C2=A0 =C2=A0Afte= r a long debugging=C2=A0of these=C2=A0errors=C2=A0with Harshal, we found th= e issue is in the handling pyscopg connection. Need to add some code in the= pyscopg=C2=A0connection manager as per Harshal.

F= or more details, Please refer RM #1720.

@Harshal= , thanks for the time invested.

Thanks.
=
=C2=A0

On Mon, Sep 19, 2016 at 9:22 PM, Dav= e Page <dpage@pgadmin.org> wrote:
Hi Navnath

I keep seeing the errors below when running tests. It seems to be
consistent on EPAS, but intermittent on PG. Any ideas what the issue
is? I'm fairly convinced it's a test issue not an actual problem.
2016-09-19 16:47:49,567:ERROR:STDERR:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
2016-09-19 16:47:49,568:ERROR:STDERR:ERROR: runTest
(pgadmin.browser.server_groups.servers.databases.tests.test_db_ge= t.DatabasesGetTestCase)
2016-09-19 16:47:49,568:ERROR:STDERR:This function will fetch added
database. (Check Databases Node URL)
2016-09-19 16:47:49,568:ERROR:STDERR:---------------------------------= -------------------------------------
2016-09-19 16:47:49,568:ERROR:STDERR:Traceback (most recent call last)= :
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/tests/test_db_get.py",
line 33, in runTest
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 self.db_id)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/tests/utils.py",
line 142, in verify_database
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 follow_redirects=3DTrue)=
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 788, in post
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 return self.open(*args, = **kw)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/testing.py",
line 113, in open
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 follow_redirects=3Dfollo= w_redirects)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 751, in open
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 response =3D
self.run_wsgi_app(environ, buffered=3Dbuffered)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 668, in run_wsgi_app
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 rv =3D
run_wsgi_app(self.application, environ, buffered=3Dbuffered)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 871, in run_wsgi_app
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 app_rv =3D app(environ, = start_response)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 2000, in __call__
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 return self.wsgi_app(env= iron,
start_response)
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1991, in wsgi_app
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 response =3D
self.make_response(self.handle_exception(e))
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1567, in handle_exception
2016-09-19 16:47:49,568:ERROR:STDERR:=C2=A0 =C2=A0 reraise(exc_type, exc_va= lue, tb)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1988, in wsgi_app
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 response =3D self.full_d= ispatch_request()
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1641, in full_dispatch_request
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 rv =3D self.handle_user_= exception(e)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1544, in handle_user_exception
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 reraise(exc_type, exc_va= lue, tb)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1639, in full_dispatch_request
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 rv =3D self.dispatch_req= uest()
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1625, in dispatch_request
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 return
self.view_functions[rule.endpoint](**req.view_args)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/views.py",
line 84, in view
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 return
self.dispatch_request(*args, **kwargs)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", li= ne 235, in
dispatch_request
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 return method(*args, **k= wargs)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/__init__.py",
line 364, in connect
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 conn =3D
manager.connection(did=3Ddid, auto_reconnect=3DTrue)
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2= /__init__.py",
line 1447, in connection
2016-09-19 16:47:49,569:ERROR:STDERR:=C2=A0 =C2=A0 "Couldn't find = the specified database."
2016-09-19 16:47:49,569:ERROR:STDERR:Exception: Couldn't find the<= br> specified database.
2016-09-19 16:47:49,569:ERROR:STDERR:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
2016-09-19 16:47:49,569:ERROR:STDERR:ERROR: runTest
(pgadmin.browser.server_groups.servers.databases.tests.test_db_pu= t.DatabasesUpdateTestCase)
2016-09-19 16:47:49,569:ERROR:STDERR:This function will update the
comments field of database. (Check Databases Node)
2016-09-19 16:47:49,569:ERROR:STDERR:---------------------------------= -------------------------------------
2016-09-19 16:47:49,570:ERROR:STDERR:Traceback (most recent call last)= :
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/tests/test_db_put.py",
line 37, in runTest
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 db_id)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/tests/utils.py",
line 142, in verify_database
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 follow_redirects=3DTrue)=
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 788, in post
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 return self.open(*args, = **kw)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/testing.py",
line 113, in open
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 follow_redirects=3Dfollo= w_redirects)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 751, in open
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 response =3D
self.run_wsgi_app(environ, buffered=3Dbuffered)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 668, in run_wsgi_app
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 rv =3D
run_wsgi_app(self.application, environ, buffered=3Dbuffered)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/werkzeug/test.py",
line 871, in run_wsgi_app
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 app_rv =3D app(environ, = start_response)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 2000, in __call__
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 return self.wsgi_app(env= iron,
start_response)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1991, in wsgi_app
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 response =3D
self.make_response(self.handle_exception(e))
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1567, in handle_exception
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 reraise(exc_type, exc_va= lue, tb)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1988, in wsgi_app
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 response =3D self.full_d= ispatch_request()
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1641, in full_dispatch_request
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 rv =3D self.handle_user_= exception(e)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1544, in handle_user_exception
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 reraise(exc_type, exc_va= lue, tb)
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1639, in full_dispatch_request
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 =C2=A0 rv =3D self.dispatch_req= uest()
2016-09-19 16:47:49,570:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/app.py",
line 1625, in dispatch_request
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 =C2=A0 return
self.view_functions[rule.endpoint](**req.view_args)
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/views.py",
line 84, in view
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 =C2=A0 return
self.dispatch_request(*args, **kwargs)
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", li= ne 235, in
dispatch_request
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 =C2=A0 return method(*args, **k= wargs)
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/__init__.py",
line 364, in connect
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 =C2=A0 conn =3D
manager.connection(did=3Ddid, auto_reconnect=3DTrue)
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2= /__init__.py",
line 1447, in connection
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 =C2=A0 "Couldn't find = the specified database."
2016-09-19 16:47:49,571:ERROR:STDERR:Exception: Couldn't find the<= br> specified database.
2016-09-19 16:47:49,571:ERROR:STDERR:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
2016-09-19 16:47:49,571:ERROR:STDERR:FAIL: runTest
(pgadmin.browser.server_groups.servers.databases.tests.test_db_de= lete.DatabaseDeleteTestCase)
2016-09-19 16:47:49,571:ERROR:STDERR:This function will delete the
database. (Check Databases Node URL)
2016-09-19 16:47:49,571:ERROR:STDERR:---------------------------------= -------------------------------------
2016-09-19 16:47:49,571:ERROR:STDERR:Traceback (most recent call last)= :
2016-09-19 16:47:49,571:ERROR:STDERR:=C2=A0 File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups= /servers/databases/tests/test_db_delete.py",
line 38, in runTest
2016-09-19 16:47:49,571:ERROR:STDERR:
self.assertEquals(response.status_code, 200)
2016-09-19 16:47:49,571:ERROR:STDERR:AssertionError: 410 !=3D 200
2016-09-19 16:47:49,571:ERROR:STDERR:---------------------------------= -------------------------------------
2016-09-19 16:47:49,571:ERROR:STDERR:Ran 25 tests in 12.664s
2016-09-19 16:47:49,571:ERROR:STDERR:FAILED
2016-09-19 16:47:49,571:ERROR:STDERR: (failures=3D1, errors=3D2)
2016-09-19 16:47:50,033:ERROR:STDERR:
2016-09-19 16:47:50,033:ERROR:STDERR:Test Result Summary
2016-09-19 16:47:50,033:ERROR:STDERR:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
2016-09-19 16:47:50,033:ERROR:STDERR:Regression - EPAS 9.5: 22 tests passed, 3 tests failed :
2016-09-19 16:47:50,033:ERROR:STDERR:=C2=A0 DatabaseDeleteTestCase
2016-09-19 16:47:50,033:ERROR:STDERR:=C2=A0 DatabasesGetTestCase
2016-09-19 16:47:50,033:ERROR:STDERR:=C2=A0 DatabasesUpdateTestCase
2016-09-19 16:47:50,033:ERROR:STDERR:Regression - PG 9.5: 22 tests
passed, 3 tests failed :
2016-09-19 16:47:50,033:ERROR:STDERR:=C2=A0 DatabaseDeleteTestCase
2016-09-19 16:47:50,033:ERROR:STDERR:=C2=A0 DatabasesGetTestCase
2016-09-19 16:47:50,033:ERROR:STDERR:=C2=A0 DatabasesUpdateTestCase
2016-09-19 16:47:50,034:ERROR:STDERR:Regression - PG 9.4: 25 tests
passed, 0 tests failed
2016-09-19 16:47:50,034:ERROR:STDERR:=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D



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

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



--
Regards,
Navnath





--
Regards,
Navnath


--001a11404c5cf5c9e4053d171352-- --001a11404c5cf5c9e8053d171354 Content-Type: application/octet-stream; name="regression_errors.patch" Content-Disposition: attachment; filename="regression_errors.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ite9i26w0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQppbmRleCA0MWQ2ZGE2Li4xZDEz YzAyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC0zMCwyMSAr MzAsMjEgQEAgY2xhc3MgRGF0YWJhc2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGRhdGFiYXNlIHVuZGVyIDFzdCBz ZXJ2ZXIgb2YgdHJlZSBub2RlLiAiIiIKICAgICAgICAgc2VsZi5kYl9uYW1l ID0gJycKLSAgICAgICAgc2VydmVyX2lkID0gdGVzdF9zZXJ2ZXJfZGljdFsi c2VydmVyIl1bMF1bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlcnZlcl9yZXNw b25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2 ZXJfaWQpCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdGVzdF9zZXJ2ZXJf ZGljdFsic2VydmVyIl1bMF1bInNlcnZlcl9pZCJdCisgICAgICAgIHNlcnZl cl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxm LCBzZWxmLnNlcnZlcl9pZCkKICAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNl WyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKICAgICAgICAgICAg IGRiX293bmVyID0gc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ3VzZXInXVsn bmFtZSddCiAgICAgICAgICAgICBzZWxmLmRhdGEgPSBkYXRhYmFzZV91dGls cy5nZXRfZGJfZGF0YShkYl9vd25lcikKICAgICAgICAgICAgIHNlbGYuZGJf bmFtZSA9IHNlbGYuZGF0YVsnbmFtZSddCiAgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi8iICsgc3RyKHNlcnZlcl9pZCkgKyAiLyIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgc3RyKHNl bGYuc2VydmVyX2lkKSArICIvIiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCiAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogICAgICAgICAg ICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoJ3V0Zi04JykpCiAgICAgICAgICAgICBkYl9pZCA9IHJlc3BvbnNl X2RhdGFbJ25vZGUnXVsnX2lkJ10KICAgICAgICAgICAgIGRiX2RpY3QgPSB7 ImRiX2lkIjogZGJfaWQsICJkYl9uYW1lIjogc2VsZi5kYl9uYW1lfQotICAg ICAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKGludChzZXJ2ZXJfaWQp LCAiZGlkIiwgZGJfZGljdCkKKyAgICAgICAgICAgIHV0aWxzLndyaXRlX25v ZGVfaW5mbyhpbnQoc2VsZi5zZXJ2ZXJfaWQpLCAiZGlkIiwgZGJfZGljdCkK ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi RXJyb3Igd2hpbGUgY29ubmVjdGluZyBzZXJ2ZXIgdG8gYWRkIHRoZSIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRhdGFiYXNlLiIpCkBAIC01 OSwzICs1OSw0IEBAIGNsYXNzIERhdGFiYXNlQWRkVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWydwb3J0J10pCiAgICAgICAgIHV0aWxzLmRyb3BfZGF0YWJhc2UoY29u bmVjdGlvbiwgc2VsZi5kYl9uYW1lKQorCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv dGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdXRpbHMucHkKaW5kZXgg NzkwMDg2My4uNmIyNjg2MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3V0 aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5weQpAQCAtMTAsMTMg KzEwLDEyIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJvbSBy ZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGFkdmFuY2VkX2NvbmZpZ19k YXRhCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAogREFU QUJBU0VfVVJMID0gJy9icm93c2VyL2RhdGFiYXNlL29iai8nCi1EQVRBQkFT RV9DT05ORUNUX1VSTCA9ICdicm93c2VyL2RhdGFiYXNlL2Nvbm5lY3QvJwor REFUQUJBU0VfQ09OTkVDVF9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJhc2UvY29u bmVjdC8nCiAKIAogZGVmIGdldF9kYl9kYXRhKGRiX293bmVyKToKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2FkZC5weQppbmRleCA2YWQ5Y2Y3Li42NDMzODg4IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRk LnB5CkBAIC0zNiw0ICszNiw0IEBAIGNsYXNzIFNlcnZlcnNBZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICBkZWYgdGVhckRvd24oc2Vs Zik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2 ZXIgZnJvbSBTUUxpdGUgIiIiCi0gICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2 ZXIoc2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2 ZXIoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVs ZXRlLnB5CmluZGV4IDZmNTdlNTUuLjRmOWU4MmQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3Rz L3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9k ZWxldGUucHkKQEAgLTMzLDQgKzMzLDQgQEAgY2xhc3MgU2VydmVyRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogCiAgICAgZGVmIHRlYXJE b3duKHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0 aGUgc2VydmVyIGZyb20gU1FMaXRlICIiIgotICAgICAgICB1dGlscy5kZWxl dGVfc2VydmVyKHNlbGYuc2VydmVyX2lkKQorICAgICAgICB1dGlscy5kZWxl dGVfc2VydmVyKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X3B1dC5weQppbmRleCA5MjEzNGQyLi4zZGI4YzMzIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0 LnB5CkBAIC0zNyw0ICszNyw0IEBAIGNsYXNzIFNlcnZlclVwZGF0ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNl cnZlciBmcm9tIFNRTGl0ZSIiIgotICAgICAgICB1dGlscy5kZWxldGVfc2Vy dmVyKHNlbGYuc2VydmVyX2lkKQorICAgICAgICB1dGlscy5kZWxldGVfc2Vy dmVyKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkKaW5kZXggYzFiNTI1OS4uZGUz MmQ0NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMu cHkKQEAgLTksMTQgKzksOSBAQAogCiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0 IHByaW50X2Z1bmN0aW9uCiAKLWltcG9ydCBzeXMKIGltcG9ydCBqc29uCi1p bXBvcnQgc3FsaXRlMwotaW1wb3J0IGNvbmZpZwogCi1mcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IG5vZGVfaW5mb19kaWN0CiBmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcmVncmVzc2lvbi50ZXN0 X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQogCiBTRVJWRVJfVVJMID0gJy9i cm93c2VyL3NlcnZlci9vYmovJwogU0VSVkVSX0NPTk5FQ1RfVVJMID0gJy9i cm93c2VyL3NlcnZlci9jb25uZWN0LycKZGlmZiAtLWdpdCBhL3dlYi9yZWdy ZXNzaW9uL3J1bnRlc3RzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMu cHkKaW5kZXggODM3NjBlOS4uNjc4YWRjOCAxMDA2NDQKLS0tIGEvd2ViL3Jl Z3Jlc3Npb24vcnVudGVzdHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVu dGVzdHMucHkKQEAgLTE5LDYgKzE5LDkgQEAgaW1wb3J0IGF0ZXhpdAogaW1w b3J0IHVuaXR0ZXN0CiBpbXBvcnQgbG9nZ2luZwogCitsb2dnZXIgPSBsb2dn aW5nLmdldExvZ2dlcihfX25hbWVfXykKK2ZpbGVfbmFtZSA9IG9zLnBhdGgu YmFzZW5hbWUoX19maWxlX18pCisKIGZyb20gdGVzdHNjZW5hcmlvcy5zY2Vu YXJpb3MgaW1wb3J0IGdlbmVyYXRlX3NjZW5hcmlvcwogCiBDVVJSRU5UX1BB VEggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVf XykpCkBAIC0zMywzNCArMzYsMzAgQEAgaWYgc3lzLnBhdGhbMF0gIT0gcm9v dDoKIGZyb20gcGdhZG1pbiBpbXBvcnQgY3JlYXRlX2FwcAogaW1wb3J0IGNv bmZpZwogaW1wb3J0IHRlc3Rfc2V0dXAKLWltcG9ydCByZWdyZXNzaW9uCiAK LSMgRXhlY3V0ZSBzZXR1cC5weSBpZiB0ZXN0IFNRTGl0ZSBkYXRhYmFzZSBk b2Vzbid0IGV4aXN0LgorIyBEZWxldGUgU1FMaXRlIGRiIGZpbGUgaWYgZXhp c3RzCiBpZiBvcy5wYXRoLmlzZmlsZShjb25maWcuVEVTVF9TUUxJVEVfUEFU SCk6Ci0gICAgcHJpbnQoIlRoZSBjb25maWd1cmF0aW9uIGRhdGFiYXNlIGFs cmVhZHkgZXhpc3RlZCBhdCAnJXMnLiAiCi0gICAgICAgICAgIlBsZWFzZSBy ZW1vdmUgdGhlIGRhdGFiYXNlIGFuZCBhZ2FpbiBydW4gdGhlIHRlc3Qgc3Vp dGUuIiAlCi0gICAgICAgICAgY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgpCi0g ICAgc3lzLmV4aXQoMSkKLWVsc2U6Ci0gICAgY29uZmlnLlRFU1RJTkdfTU9E RSA9IFRydWUKLSAgICBwZ2FkbWluX2NyZWRlbnRpYWxzID0gdGVzdF9zZXR1 cC5jb25maWdfZGF0YQotCi0gICAgIyBTZXQgZW52aXJvbm1lbnQgdmFyaWFi bGVzIGZvciBlbWFpbCBhbmQgcGFzc3dvcmQKLSAgICBvcy5lbnZpcm9uWydQ R0FETUlOX1NFVFVQX0VNQUlMJ10gPSAnJwotICAgIG9zLmVudmlyb25bJ1BH QURNSU5fU0VUVVBfUEFTU1dPUkQnXSA9ICcnCi0gICAgaWYgcGdhZG1pbl9j cmVkZW50aWFsczoKLSAgICAgICAgaWYgJ3BnQWRtaW40X2xvZ2luX2NyZWRl bnRpYWxzJyBpbiBwZ2FkbWluX2NyZWRlbnRpYWxzOgotICAgICAgICAgICAg aWYgYWxsKGl0ZW0gaW4gcGdhZG1pbl9jcmVkZW50aWFsc1sncGdBZG1pbjRf bG9naW5fY3JlZGVudGlhbHMnXQotICAgICAgICAgICAgICAgICAgIGZvciBp dGVtIGluIFsnbG9naW5fdXNlcm5hbWUnLCAnbG9naW5fcGFzc3dvcmQnXSk6 Ci0gICAgICAgICAgICAgICAgcGdhZG1pbl9jcmVkZW50aWFscyA9IHBnYWRt aW5fY3JlZGVudGlhbHNbCi0gICAgICAgICAgICAgICAgICAgICdwZ0FkbWlu NF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAgb3MuZW52 aXJvblsnUEdBRE1JTl9TRVRVUF9FTUFJTCddID0gcGdhZG1pbl9jcmVkZW50 aWFsc1sKLSAgICAgICAgICAgICAgICAgICAgJ2xvZ2luX3VzZXJuYW1lJ10K LSAgICAgICAgICAgICAgICBvcy5lbnZpcm9uWydQR0FETUlOX1NFVFVQX1BB U1NXT1JEJ10gPSBwZ2FkbWluX2NyZWRlbnRpYWxzWwotICAgICAgICAgICAg ICAgICAgICAnbG9naW5fcGFzc3dvcmQnXQotCi0gICAgIyBFeGVjdXRlIHRo ZSBzZXR1cCBmaWxlCi0gICAgZXhlYyAob3Blbigic2V0dXAucHkiKS5yZWFk KCkpCisgICAgb3MucmVtb3ZlKGNvbmZpZy5URVNUX1NRTElURV9QQVRIKQor Citjb25maWcuVEVTVElOR19NT0RFID0gVHJ1ZQorcGdhZG1pbl9jcmVkZW50 aWFscyA9IHRlc3Rfc2V0dXAuY29uZmlnX2RhdGEKKworIyBTZXQgZW52aXJv bm1lbnQgdmFyaWFibGVzIGZvciBlbWFpbCBhbmQgcGFzc3dvcmQKK29zLmVu dmlyb25bJ1BHQURNSU5fU0VUVVBfRU1BSUwnXSA9ICcnCitvcy5lbnZpcm9u WydQR0FETUlOX1NFVFVQX1BBU1NXT1JEJ10gPSAnJworaWYgcGdhZG1pbl9j cmVkZW50aWFsczoKKyAgICBpZiAncGdBZG1pbjRfbG9naW5fY3JlZGVudGlh bHMnIGluIHBnYWRtaW5fY3JlZGVudGlhbHM6CisgICAgICAgIGlmIGFsbChp dGVtIGluIHBnYWRtaW5fY3JlZGVudGlhbHNbJ3BnQWRtaW40X2xvZ2luX2Ny ZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgIGZvciBpdGVtIGluIFsnbG9n aW5fdXNlcm5hbWUnLCAnbG9naW5fcGFzc3dvcmQnXSk6CisgICAgICAgICAg ICBwZ2FkbWluX2NyZWRlbnRpYWxzID0gcGdhZG1pbl9jcmVkZW50aWFsc1sK KyAgICAgICAgICAgICAgICAncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMn XQorICAgICAgICAgICAgb3MuZW52aXJvblsnUEdBRE1JTl9TRVRVUF9FTUFJ TCddID0gcGdhZG1pbl9jcmVkZW50aWFsc1sKKyAgICAgICAgICAgICAgICAn bG9naW5fdXNlcm5hbWUnXQorICAgICAgICAgICAgb3MuZW52aXJvblsnUEdB RE1JTl9TRVRVUF9QQVNTV09SRCddID0gcGdhZG1pbl9jcmVkZW50aWFsc1sK KyAgICAgICAgICAgICAgICAnbG9naW5fcGFzc3dvcmQnXQorCisjIEV4ZWN1 dGUgdGhlIHNldHVwIGZpbGUKK2V4ZWMgKG9wZW4oInNldHVwLnB5IikucmVh ZCgpKQogCiAjIEdldCB0aGUgY29uZmlnIGRhdGFiYXNlIHNjaGVtYSB2ZXJz aW9uLiBXZSBzdG9yZSB0aGlzIGluIHBnYWRtaW4ubW9kZWwKICMgYXMgaXQg dHVybnMgb3V0IHRoYXQgcHV0dGluZyBpdCBpbiB0aGUgY29uZmlnIGZpbGVz IGlzbid0IGEgZ3JlYXQgaWRlYQpAQCAtODAsNDAgKzc5LDI1IEBAIGNvbmZp Zy5DT05TT0xFX0xPR19MRVZFTCA9IFdBUk5JTkcKIGFwcCA9IGNyZWF0ZV9h cHAoKQogYXBwLmNvbmZpZ1snV1RGX0NTUkZfRU5BQkxFRCddID0gRmFsc2UK IHRlc3RfY2xpZW50ID0gYXBwLnRlc3RfY2xpZW50KCkKK2Ryb3Bfb2JqZWN0 cyA9IHRlc3RfdXRpbHMuZ2V0X2NsZWFudXBfaGFuZGxlcih0ZXN0X2NsaWVu dCkKIAogCi1kZWYgZ2V0X3N1aXRlKGFyZ3VtZW50cywgc2VydmVyLCB0ZXN0 X2FwcF9jbGllbnQpOgorZGVmIGdldF9zdWl0ZShtb2R1bGVfbGlzdCwgdGVz dF9zZXJ2ZXIsIHRlc3RfYXBwX2NsaWVudCk6CiAgICAgIiIiCi0gICAgIFRo aXMgZnVuY3Rpb24gbG9hZHMgdGhlIGFsbCBtb2R1bGVzIGluIHRoZSB0ZXN0 cyBkaXJlY3RvcnkgaW50byB0ZXN0aW5nCi0gICAgIGVudmlyb25tZW50Lgot Ci0gICAgOnBhcmFtIGFyZ3VtZW50czogdGhpcyBpcyBjb21tYW5kIGxpbmUg YXJndW1lbnRzIGZvciBtb2R1bGUgbmFtZSB0bwotICAgIHdoaWNoIHRlc3Qg c3VpdGUgd2lsbCBydW4KLSAgICA6dHlwZSBhcmd1bWVudHM6IHN0cgotICAg IDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCi0gICAgOnR5cGUgc2Vy dmVyOiBkaWN0CisgICAgIFRoaXMgZnVuY3Rpb24gYWRkIHRoZSB0ZXN0cyB0 byB0ZXN0IHN1aXRlIGFuZCByZXR1cm4gbW9kaWZpZWQgdGVzdCBzdWl0ZQor ICAgICAgdmFyaWFibGUuCisgICAgOnBhcmFtIG1vZHVsZV9saXN0OiB0ZXN0 IG1vZHVsZSBsaXN0CisgICAgOnR5cGUgbW9kdWxlX2xpc3Q6IGxpc3QKKyAg ICA6cGFyYW0gdGVzdF9zZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5 cGUgdGVzdF9zZXJ2ZXI6IGRpY3QKICAgICA6cGFyYW0gdGVzdF9hcHBfY2xp ZW50OiB0ZXN0IGNsaWVudAogICAgIDp0eXBlIHRlc3RfYXBwX2NsaWVudDog cGdhZG1pbiBhcHAgb2JqZWN0CiAgICAgOnJldHVybiBwZ2FkbWluX3N1aXRl OiB0ZXN0IHN1aXRlIHdpdGggdGVzdCBjYXNlcwogICAgIDpydHlwZTogVGVz dFN1aXRlCiAgICAgIiIiCi0KLSAgICBmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkKLQogICAgIG1vZHVs ZXMgPSBbXQogICAgIHBnYWRtaW5fc3VpdGUgPSB1bml0dGVzdC5UZXN0U3Vp dGUoKQogCi0gICAgIyBMb2FkIHRoZSB0ZXN0IG1vZHVsZXMgd2hpY2ggYXJl IGluIGdpdmVuIHBhY2thZ2UoaS5lLiBpbiBhcmd1bWVudHMucGtnKQotICAg IGlmIGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNbJ3Br ZyddID09ICJhbGwiOgotICAgICAgICBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5 LmxvYWRfZ2VuZXJhdG9ycygncGdhZG1pbicpCi0gICAgZWxzZToKLSAgICAg ICAgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dlbmVyYXRvcnMoJ3Bn YWRtaW4uJXMudGVzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWydwa2cnXSkKLQotICAg ICMgU29ydCBtb2R1bGUgbGlzdCBzbyB0aGF0IHRlc3Qgc3VpdGUgZXhlY3V0 ZXMgdGhlIHRlc3QgY2FzZXMgc2VxdWVudGlhbGx5Ci0gICAgbW9kdWxlX2xp c3QgPSBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5LnJlZ2lzdHJ5Lml0ZW1zKCkK LSAgICBtb2R1bGVfbGlzdCA9IHNvcnRlZChtb2R1bGVfbGlzdCwga2V5PWxh bWJkYSBtb2R1bGVfdHVwbGU6IG1vZHVsZV90dXBsZVswXSkKLQogICAgICMg R2V0IHRoZSBlYWNoIHRlc3QgbW9kdWxlIGFuZCBhZGQgaW50byBsaXN0CiAg ICAgZm9yIGtleSwga2xhc3MgaW4gbW9kdWxlX2xpc3Q6CiAgICAgICAgIGdl biA9IGtsYXNzCkBAIC0xMjQsMTMgKzEwOCw0MSBAQCBkZWYgZ2V0X3N1aXRl KGFyZ3VtZW50cywgc2VydmVyLCB0ZXN0X2FwcF9jbGllbnQpOgogICAgICAg ICBvYmogPSBtb2R1bGUoKQogICAgICAgICBvYmouc2V0QXBwKGFwcCkKICAg ICAgICAgb2JqLnNldFRlc3RDbGllbnQodGVzdF9hcHBfY2xpZW50KQotICAg ICAgICBvYmouc2V0VGVzdFNlcnZlcihzZXJ2ZXIpCisgICAgICAgIG9iai5z ZXRUZXN0U2VydmVyKHRlc3Rfc2VydmVyKQogICAgICAgICBzY2VuYXJpbyA9 IGdlbmVyYXRlX3NjZW5hcmlvcyhvYmopCiAgICAgICAgIHBnYWRtaW5fc3Vp dGUuYWRkVGVzdHMoc2NlbmFyaW8pCiAKICAgICByZXR1cm4gcGdhZG1pbl9z dWl0ZQogCiAKK2RlZiBnZXRfdGVzdF9tb2R1bGVzKGFyZ3VtZW50cyk6Cisg ICAgIiIiCisgICAgIFRoaXMgZnVuY3Rpb24gbG9hZHMgdGhlIGFsbCBtb2R1 bGVzIGluIHRoZSB0ZXN0cyBkaXJlY3RvcnkgaW50byB0ZXN0aW5nCisgICAg IGVudmlyb25tZW50LgorCisgICAgOnBhcmFtIGFyZ3VtZW50czogdGhpcyBp cyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBtb2R1bGUgbmFtZSB0bwor ICAgIHdoaWNoIHRlc3Qgc3VpdGUgd2lsbCBydW4KKyAgICA6dHlwZSBhcmd1 bWVudHM6IHN0cgorICAgIDpyZXR1cm4gbW9kdWxlIGxpc3Q6IHRlc3QgbW9k dWxlIGxpc3QKKyAgICA6cnR5cGU6IGxpc3QKKyAgICAiIiIKKworICAgIGZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgVGVzdHNHZW5lcmF0b3JS ZWdpc3RyeQorCisgICAgIyBMb2FkIHRoZSB0ZXN0IG1vZHVsZXMgd2hpY2gg YXJlIGluIGdpdmVuIHBhY2thZ2UoaS5lLiBpbiBhcmd1bWVudHMucGtnKQor ICAgIGlmIGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNb J3BrZyddID09ICJhbGwiOgorICAgICAgICBUZXN0c0dlbmVyYXRvclJlZ2lz dHJ5LmxvYWRfZ2VuZXJhdG9ycygncGdhZG1pbicpCisgICAgZWxzZToKKyAg ICAgICAgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dlbmVyYXRvcnMo J3BnYWRtaW4uJXMudGVzdHMnICUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWydwa2cnXSkKKwor ICAgICMgU29ydCBtb2R1bGUgbGlzdCBzbyB0aGF0IHRlc3Qgc3VpdGUgZXhl Y3V0ZXMgdGhlIHRlc3QgY2FzZXMgc2VxdWVudGlhbGx5CisgICAgbW9kdWxl X2xpc3QgPSBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5LnJlZ2lzdHJ5Lml0ZW1z KCkKKyAgICBtb2R1bGVfbGlzdCA9IHNvcnRlZChtb2R1bGVfbGlzdCwga2V5 PWxhbWJkYSBtb2R1bGVfdHVwbGU6IG1vZHVsZV90dXBsZVswXSkKKworICAg IHJldHVybiBtb2R1bGVfbGlzdAorCisKIGRlZiBhZGRfYXJndW1lbnRzKCk6 CiAgICAgIiIiCiAgICAgVGhpcyBmdW5jdGlvbiBwYXJzZSB0aGUgY29tbWFu ZCBsaW5lIGFyZ3VtZW50cyhwcm9qZWN0J3MgcGFja2FnZSBuYW1lCkBAIC0x NDksMjcgKzE2MSw0MSBAQCBkZWYgYWRkX2FyZ3VtZW50cygpOgogCiAKIGRl ZiBzaWdfaGFuZGxlcihzaWdubywgZnJhbWUpOgotICAgIHRlc3RfdXRpbHMu ZHJvcF9vYmplY3RzKCkKKyAgICBkcm9wX29iamVjdHMoKQogCiAKLWRlZiBn ZXRfdGVzdHNfcmVzdWx0KHRlc3RzKToKK2RlZiBnZXRfdGVzdHNfcmVzdWx0 KHRlc3Rfc3VpdGUpOgogICAgICIiIlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0 aGUgdG90YWwgcmFuIGFuZCB0b3RhbCBmYWlsZWQgdGVzdCBjYXNlcyBjb3Vu dCIiIgotICAgIHRvdGFsX3JhbiA9IHRlc3RzLnRlc3RzUnVuCi0gICAgZmFp bGVkX2Nhc2VzX3Jlc3VsdCA9IFtdCi0gICAgaWYgdG90YWxfcmFuOgotICAg ICAgICBpZiB0ZXN0cy5mYWlsdXJlczoKLSAgICAgICAgICAgIGZvciBmYWls ZWRfY2FzZSBpbiB0ZXN0cy5mYWlsdXJlczoKLSAgICAgICAgICAgICAgICBj bGFzc19uYW1lID0gc3RyKGZhaWxlZF9jYXNlWzBdKS5zcGxpdCgnLicpWy0x XS5zcGxpdCgpWzBdLlwKLSAgICAgICAgICAgICAgICAgICAgc3RyaXAoJykn KQotICAgICAgICAgICAgICAgIGZhaWxlZF9jYXNlc19yZXN1bHQuYXBwZW5k KGNsYXNzX25hbWUpCi0gICAgICAgIGlmIHRlc3RzLmVycm9yczoKLSAgICAg ICAgICAgIGZvciBlcnJvcl9jYXNlIGluIHRlc3RzLmVycm9yczoKLSAgICAg ICAgICAgICAgICBjbGFzc19uYW1lID0gc3RyKGVycm9yX2Nhc2VbMF0pLnNw bGl0KCcuJylbLTFdLnNwbGl0KClbMF0uXAotICAgICAgICAgICAgICAgICAg ICBzdHJpcCgnKScpCi0gICAgICAgICAgICAgICAgaWYgY2xhc3NfbmFtZSBu b3QgaW4gZmFpbGVkX2Nhc2VzX3Jlc3VsdDoKKyAgICB0cnk6CisgICAgICAg IHRvdGFsX3JhbiA9IHRlc3Rfc3VpdGUudGVzdHNSdW4KKyAgICAgICAgZmFp bGVkX2Nhc2VzX3Jlc3VsdCA9IFtdCisgICAgICAgIHNraXBwZWRfY2FzZXNf cmVzdWx0ID0gW10KKyAgICAgICAgaWYgdG90YWxfcmFuOgorICAgICAgICAg ICAgaWYgdGVzdF9zdWl0ZS5mYWlsdXJlczoKKyAgICAgICAgICAgICAgICBm b3IgZmFpbGVkX2Nhc2UgaW4gdGVzdF9zdWl0ZS5mYWlsdXJlczoKKyAgICAg ICAgICAgICAgICAgICAgY2xhc3NfbmFtZSA9IHN0cigKKyAgICAgICAgICAg ICAgICAgICAgICAgIGZhaWxlZF9jYXNlWzBdKS5zcGxpdCgnLicpWy0xXS5z cGxpdCgpWzBdLnN0cmlwKCcpJykKICAgICAgICAgICAgICAgICAgICAgZmFp bGVkX2Nhc2VzX3Jlc3VsdC5hcHBlbmQoY2xhc3NfbmFtZSkKLQotICAgIHJl dHVybiB0b3RhbF9yYW4sIGZhaWxlZF9jYXNlc19yZXN1bHQKKyAgICAgICAg ICAgIGlmIHRlc3Rfc3VpdGUuZXJyb3JzOgorICAgICAgICAgICAgICAgIGZv ciBlcnJvcl9jYXNlIGluIHRlc3Rfc3VpdGUuZXJyb3JzOgorICAgICAgICAg ICAgICAgICAgICBjbGFzc19uYW1lID0gc3RyKAorICAgICAgICAgICAgICAg ICAgICAgICAgZXJyb3JfY2FzZVswXSkuc3BsaXQoJy4nKVstMV0uc3BsaXQo KVswXS5zdHJpcCgnKScpCisgICAgICAgICAgICAgICAgICAgIGlmIGNsYXNz X25hbWUgbm90IGluIGZhaWxlZF9jYXNlc19yZXN1bHQ6CisgICAgICAgICAg ICAgICAgICAgICAgICBmYWlsZWRfY2FzZXNfcmVzdWx0LmFwcGVuZChjbGFz c19uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgIyBUT0RPOiBDb2Rl IHJlbWFpbmluZyB0byBjb3VudCB0aGUgc2tpcHBlZCB0ZXN0IGNhc2VzCisg ICAgICAgICAgICAgICAgICAgICAgICAjIGlmIHRlc3Rfc3VpdGUuc2tpcHBl ZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIGZvciBza2lwX3Rl c3QgaW4gdGVzdF9zdWl0ZS5za2lwcGVkOgorICAgICAgICAgICAgICAgICAg ICAgICAgIyAgICAgICAgIGNsYXNzX25hbWUgPSBzdHIoCisgICAgICAgICAg ICAgICAgICAgICAgICAjICAgICAgICAgICBza2lwX3Rlc3RbMF0pLnNwbGl0 KCcuJylbLTFdLnNwbGl0KClbMF0uc3RyaXAoJyknKQorICAgICAgICAgICAg ICAgICAgICAgICAgIyAgICAgICAgIGlmIGNsYXNzX25hbWUgbm90IGluIGZh aWxlZF9jYXNlc19yZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAj ICAgICAgICAgICAgIHNraXBwZWRfY2FzZXNfcmVzdWx0LmFwcGVuZChjbGFz c19uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIHBy aW50KGNsYXNzX25hbWUpCisgICAgICAgIHJldHVybiB0b3RhbF9yYW4sIGZh aWxlZF9jYXNlc19yZXN1bHQsIHNraXBwZWRfY2FzZXNfcmVzdWx0CisgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAgIGV4Y2Vw dGlvbiA9ICJFeGNlcHRpb246ICVzOiBsaW5lOiVzICVzIiAlICgKKyAgICAg ICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5v LCBleGNlcHRpb24pCisgICAgICAgIHByaW50KGV4Y2VwdGlvbikKKyAgICAg ICAgbG9nZ2VyLmV4Y2VwdGlvbihleGNlcHRpb24pCiAKIAogY2xhc3MgU3Ry ZWFtVG9Mb2dnZXIob2JqZWN0KToKQEAgLTE5OSw3ICsyMjUsNyBAQCBjbGFz cyBTdHJlYW1Ub0xvZ2dlcihvYmplY3QpOgogaWYgX19uYW1lX18gPT0gJ19f bWFpbl9fJzoKICAgICB0ZXN0X3Jlc3VsdCA9IGRpY3QoKQogICAgICMgUmVn aXN0ZXIgY2xlYW51cCBmdW5jdGlvbiB0byBjbGVhbnVwIG9uIGV4aXQKLSAg ICBhdGV4aXQucmVnaXN0ZXIodGVzdF91dGlscy5kcm9wX29iamVjdHMpCisg ICAgYXRleGl0LnJlZ2lzdGVyKGRyb3Bfb2JqZWN0cykKICAgICAjIFNldCBz aWduYWwgaGFuZGxlciBmb3IgY2xlYW51cAogICAgIHNpZ25hbC5zaWduYWwo c2lnbmFsLlNJR1RFUk0sIHNpZ19oYW5kbGVyKQogICAgIHNpZ25hbC5zaWdu YWwoc2lnbmFsLlNJR0FCUlQsIHNpZ19oYW5kbGVyKQpAQCAtMjE3LDQ2ICsy NDMsNDggQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAjIENy ZWF0ZSBsb2dnZXIgdG8gd3JpdGUgbG9nIGluIHRoZSBsb2dnZXIgZmlsZSBh cyB3ZWxsIGFzIG9uIGNvbnNvbGUKICAgICBzdGRlcnJfbG9nZ2VyID0gbG9n Z2luZy5nZXRMb2dnZXIoJ1NUREVSUicpCiAgICAgc3lzLnN0ZGVyciA9IFN0 cmVhbVRvTG9nZ2VyKHN0ZGVycl9sb2dnZXIsIGxvZ2dpbmcuRVJST1IpCi0K ICAgICBhcmdzID0gdmFycyhhZGRfYXJndW1lbnRzKCkpCisgICAgIyBHZXQg dGVzdCBtb2R1bGUgbGlzdAorICAgIHRlc3RfbW9kdWxlX2xpc3QgPSBnZXRf dGVzdF9tb2R1bGVzKGFyZ3MpCisgICAgIyBMb2dpbiB0aGUgdGVzdCBjbGll bnQKKyAgICB0ZXN0X3V0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHRlc3Rf Y2xpZW50KQogCiAgICAgc2VydmVyc19pbmZvID0gdGVzdF91dGlscy5nZXRf Y29uZmlnX2RhdGEoKQogICAgIHRyeToKICAgICAgICAgZm9yIHNlcnZlciBp biBzZXJ2ZXJzX2luZm86CiAgICAgICAgICAgICBwcmludCgiXG49PT09PT09 PT09PT09UnVubmluZyB0aGUgdGVzdCBjYXNlcyBmb3IgJyVzJz09PT09PT09 PT09PT0iCiAgICAgICAgICAgICAgICAgICAlIHNlcnZlclsnbmFtZSddLCBm aWxlPXN5cy5zdGRlcnIpCi0KKyAgICAgICAgICAgICMgQ3JlYXRlIHRlc3Qg c2VydmVyCiAgICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90ZXN0X3Nl cnZlcihzZXJ2ZXIpCiAKLSAgICAgICAgICAgICMgTG9naW4gdGhlIHRlc3Qg Y2xpZW50Ci0gICAgICAgICAgICB0ZXN0X3V0aWxzLmxvZ2luX3Rlc3Rlcl9h Y2NvdW50KHRlc3RfY2xpZW50KQotCi0gICAgICAgICAgICBzdWl0ZSA9IGdl dF9zdWl0ZShhcmdzLCBzZXJ2ZXIsIHRlc3RfY2xpZW50KQorICAgICAgICAg ICAgc3VpdGUgPSBnZXRfc3VpdGUodGVzdF9tb2R1bGVfbGlzdCwgc2VydmVy LCB0ZXN0X2NsaWVudCkKICAgICAgICAgICAgIHRlc3RzID0gdW5pdHRlc3Qu VGV4dFRlc3RSdW5uZXIoc3RyZWFtPXN5cy5zdGRlcnIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u cz1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2ZXJib3NpdHk9MikucnVuKHN1aXRlKQogCi0gICAgICAgICAg ICByYW5fdGVzdHMsIGZhaWxlZF9jYXNlcyA9IGdldF90ZXN0c19yZXN1bHQo dGVzdHMpCi0gICAgICAgICAgICB0ZXN0X3Jlc3VsdFtzZXJ2ZXJbJ25hbWUn XV0gPSBbcmFuX3Rlc3RzLCBmYWlsZWRfY2FzZXNdCi0KLSAgICAgICAgICAg ICMgTG9nb3V0IHRoZSB0ZXN0IGNsaWVudAotICAgICAgICAgICAgdGVzdF91 dGlscy5sb2dvdXRfdGVzdGVyX2FjY291bnQodGVzdF9jbGllbnQpCi0KLSAg ICAgICAgICAgIHRlc3RfdXRpbHMuZGVsZXRlX3Rlc3Rfc2VydmVyKCkKKyAg ICAgICAgICAgIHJhbl90ZXN0cywgZmFpbGVkX2Nhc2VzLCBza2lwcGVkX2Nh c2VzID0gXAorICAgICAgICAgICAgICAgIGdldF90ZXN0c19yZXN1bHQodGVz dHMpCisgICAgICAgICAgICB0ZXN0X3Jlc3VsdFtzZXJ2ZXJbJ25hbWUnXV0g PSBbcmFuX3Rlc3RzLCBmYWlsZWRfY2FzZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBlZF9jYXNlc10KKyAg ICAgICAgICAgICMgRGVsZXRlIHRlc3Qgc2VydmVyCisgICAgICAgICAgICB0 ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3NlcnZlcih0ZXN0X2NsaWVudCkKICAg ICBleGNlcHQgU3lzdGVtRXhpdDoKLSAgICAgICAgdGVzdF91dGlscy5kcm9w X29iamVjdHMoKQorICAgICAgICBkcm9wX29iamVjdHMoKQogCiAgICAgcHJp bnQoIlxuVGVzdCBSZXN1bHQgU3VtbWFyeSIsIGZpbGU9c3lzLnN0ZGVycikK ICAgICBwcmludCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PSIsIGZp bGU9c3lzLnN0ZGVycikKICAgICBmb3Igc2VydmVyX3JlcyBpbiB0ZXN0X3Jl c3VsdDoKICAgICAgICAgZmFpbGVkX2Nhc2VzID0gIlxuXHQiLmpvaW4odGVz dF9yZXN1bHRbc2VydmVyX3Jlc11bMV0pCiAgICAgICAgIHRvdGFsX2ZhaWxl ZCA9IGxlbih0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcmVzXVsxXSkKKyAgICAgICAg IyBUT0RPIDogY29kZSByZW1haW5pbmcgdG8gaGFuZGxlICctMScgY29uZGl0 aW9uCiAgICAgICAgIHRvdGFsX3Bhc3NlZCA9IGludCh0ZXN0X3Jlc3VsdFtz ZXJ2ZXJfcmVzXVswXSkgLSB0b3RhbF9mYWlsZWQKIAogICAgICAgICBwcmlu dCgiJXM6ICVzIHRlc3QlcyBwYXNzZWQsICVzIHRlc3QlcyBmYWlsZWQgJXMl cyIgJQogICAgICAgICAgICAgICAoc2VydmVyX3JlcywgdG90YWxfcGFzc2Vk LCAodG90YWxfcGFzc2VkICE9IDEgYW5kICJzIiBvciAiIiksCiAgICAgICAg ICAgICAgICB0b3RhbF9mYWlsZWQsICh0b3RhbF9mYWlsZWQgIT0gMSBhbmQg InMiIG9yICIiKSwKLSAgICAgICAgICAgICAgICh0b3RhbF9mYWlsZWQgIT0g MCBhbmQgIjpcblx0IiBvciAiIiksIGZhaWxlZF9jYXNlcyksIGZpbGU9c3lz LnN0ZGVycikKKyAgICAgICAgICAgICAgICh0b3RhbF9mYWlsZWQgIT0gMCBh bmQgIjpcblx0IiBvciAiIiksIGZhaWxlZF9jYXNlcyksCisgICAgICAgICAg ICAgIGZpbGU9c3lzLnN0ZGVycikKKwogICAgIHByaW50KCI9PT09PT09PT09 PT09PT09PT09PT09PT09PT09IiwgZmlsZT1zeXMuc3RkZXJyKQogCiAgICAg cHJpbnQoIlxuUGxlYXNlIGNoZWNrIG91dHB1dCBpbiBmaWxlOiAlcy9yZWdy ZXNzaW9uLmxvZyAiICUgQ1VSUkVOVF9QQVRIKQpkaWZmIC0tZ2l0IGEvd2Vi L3JlZ3Jlc3Npb24vdGVzdF9zZXR1cC5weSBiL3dlYi9yZWdyZXNzaW9uL3Rl c3Rfc2V0dXAucHkKaW5kZXggNmU4Y2FhZi4uNjA2NGFiZiAxMDA2NDQKLS0t IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9zZXR1cC5weQorKysgYi93ZWIvcmVn cmVzc2lvbi90ZXN0X3NldHVwLnB5CkBAIC0xMywxNyArMTMsOSBAQCBpbXBv cnQgb3MKIAogQ1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBh dGgucmVhbHBhdGgoX19maWxlX18pKQogCi0KIHRyeToKICAgICB3aXRoIG9w ZW4oQ1VSUkVOVF9QQVRIICsgJy90ZXN0X2NvbmZpZy5qc29uJykgYXMgZGF0 YV9maWxlOgogICAgICAgICBjb25maWdfZGF0YSA9IGpzb24ubG9hZChkYXRh X2ZpbGUpCi1leGNlcHQ6CitleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlv bjoKICAgICB3aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgJy90ZXN0X2NvbmZp Zy5qc29uLmluJykgYXMgZGF0YV9maWxlOgogICAgICAgICBjb25maWdfZGF0 YSA9IGpzb24ubG9hZChkYXRhX2ZpbGUpCi0KLXRyeToKLSAgICB3aXRoIG9w ZW4oQ1VSUkVOVF9QQVRIICsgJy90ZXN0X2FkdmFuY2VkX2NvbmZpZy5qc29u JykgYXMgZGF0YV9maWxlOgotICAgICAgICBhZHZhbmNlZF9jb25maWdfZGF0 YSA9IGpzb24ubG9hZChkYXRhX2ZpbGUpCi1leGNlcHQ6Ci0gICAgd2l0aCBv cGVuKENVUlJFTlRfUEFUSCArICcvdGVzdF9hZHZhbmNlZF9jb25maWcuanNv bi5pbicpIGFzIGRhdGFfZmlsZToKLSAgICAgICAgYWR2YW5jZWRfY29uZmln X2RhdGEgPSBqc29uLmxvYWQoZGF0YV9maWxlKQpkaWZmIC0tZ2l0IGEvd2Vi L3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weSBiL3dlYi9yZWdyZXNzaW9uL3Rl c3RfdXRpbHMucHkKaW5kZXggYzgzNzJjZi4uNzNjNDVhNiAxMDA2NDQKLS0t IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQorKysgYi93ZWIvcmVn cmVzc2lvbi90ZXN0X3V0aWxzLnB5CkBAIC0xNCwxNSArMTQsMTIgQEAgaW1w b3J0IHV1aWQKIGltcG9ydCBwc3ljb3BnMgogaW1wb3J0IHNxbGl0ZTMKIAot aW1wb3J0IGxvZ2dpbmcKLQogaW1wb3J0IGNvbmZpZwotCiBpbXBvcnQgdGVz dF9zZXR1cAogaW1wb3J0IHJlZ3Jlc3Npb24KK2Zyb20gZnVuY3Rvb2xzIGlt cG9ydCBwYXJ0aWFsCiAKIFNFUlZFUl9HUk9VUCA9IHRlc3Rfc2V0dXAuY29u ZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCi1sb2dnZXIgPSBsb2dnaW5nLmdl dExvZ2dlcihfX25hbWVfXykKIGZpbGVfbmFtZSA9IG9zLnBhdGguYmFzZW5h bWUoX19maWxlX18pCiAKIApAQCAtMzYsMTAgKzMzLDYgQEAgZGVmIGdldF9k Yl9jb25uZWN0aW9uKGRiLCB1c2VybmFtZSwgcGFzc3dvcmQsIGhvc3QsIHBv cnQpOgogICAgIHJldHVybiBjb25uZWN0aW9uCiAKIAotZGVmIGdldF9ub2Rl X2luZm9fZGljdCgpOgotICAgIHJldHVybiByZWdyZXNzaW9uLm5vZGVfaW5m b19kaWN0Ci0KLQogZGVmIGxvZ2luX3Rlc3Rlcl9hY2NvdW50KHRlc3Rlcik6 CiAgICAgIiIiCiAgICAgVGhpcyBmdW5jdGlvbiBsb2dpbiB0aGUgdGVzdCBj bGllbnQgdXNpbmcgZW52IHZhcmlhYmxlcyBlbWFpbCBhbmQgcGFzc3dvcmQK QEAgLTQ3LDggKzQwLDggQEAgZGVmIGxvZ2luX3Rlc3Rlcl9hY2NvdW50KHRl c3Rlcik6CiAgICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBv YmplY3QKICAgICA6cmV0dXJuOiBOb25lCiAgICAgIiIiCi0gICAgaWYgb3Mu ZW52aXJvblsnUEdBRE1JTl9TRVRVUF9FTUFJTCddIGFuZCBvcy5lbnZpcm9u WwotICAgICAgICAnUEdBRE1JTl9TRVRVUF9QQVNTV09SRCddOgorICAgIGlm IG9zLmVudmlyb25bJ1BHQURNSU5fU0VUVVBfRU1BSUwnXSBhbmRcCisgICAg ICAgICAgICBvcy5lbnZpcm9uWydQR0FETUlOX1NFVFVQX1BBU1NXT1JEJ106 CiAgICAgICAgIGVtYWlsID0gb3MuZW52aXJvblsnUEdBRE1JTl9TRVRVUF9F TUFJTCddCiAgICAgICAgIHBhc3N3b3JkID0gb3MuZW52aXJvblsnUEdBRE1J Tl9TRVRVUF9QQVNTV09SRCddCiAgICAgICAgIHRlc3Rlci5wb3N0KCcvbG9n aW4nLCBkYXRhPWRpY3QoZW1haWw9ZW1haWwsIHBhc3N3b3JkPXBhc3N3b3Jk KSwKQEAgLTU2LDcgKzQ5LDcgQEAgZGVmIGxvZ2luX3Rlc3Rlcl9hY2NvdW50 KHRlc3Rlcik6CiAgICAgZWxzZToKICAgICAgICAgcHJpbnQoIlVuYWJsZSB0 byBsb2dpbiB0ZXN0IGNsaWVudCwgZW1haWwgYW5kIHBhc3N3b3JkIG5vdCBm b3VuZC4iLAogICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCi0gICAg ICAgIGRyb3Bfb2JqZWN0cygpCisgICAgICAgIF9kcm9wX29iamVjdHModGVz dGVyKQogICAgICAgICBzeXMuZXhpdCgxKQogCiAKQEAgLTE1MSwxOSArMTQ0 LDI1IEBAIGRlZiBjcmVhdGVfZGF0YWJhc2Uoc2VydmVyLCBkYl9uYW1lKToK IGRlZiBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUp OgogICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlZCB0byBkcm9wIHRoZSBkYXRh YmFzZSIiIgogCi0gICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3Io KQotICAgIHBnX2N1cnNvci5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIHBnX2Rh dGFiYXNlIGRiIFdIRVJFIGRiLmRhdG5hbWU9JyVzJyIKLSAgICAgICAgICAg ICAgICAgICAgICAlIGRhdGFiYXNlX25hbWUpCi0gICAgaWYgcGdfY3Vyc29y LmZldGNoYWxsKCk6Ci0gICAgICAgICMgUmVsZWFzZSBwaWQgaWYgYW55IHBy b2Nlc3MgdXNpbmcgZGF0YWJhc2UKLSAgICAgICAgcGdfY3Vyc29yLmV4ZWN1 dGUoInNlbGVjdCBwZ190ZXJtaW5hdGVfYmFja2VuZChwaWQpIGZyb20iCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICIgcGdfc3RhdF9hY3Rpdml0eSB3 aGVyZSBkYXRuYW1lPSclcyciICUKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YWJhc2VfbmFtZSkKLSAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZl bCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCi0gICAgICAgIGNvbm5l Y3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQotICAgICAgICBwZ19jdXJz b3IuZXhlY3V0ZSgnJydEUk9QIERBVEFCQVNFICIlcyInJycgJSBkYXRhYmFz ZV9uYW1lKQotICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2 ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKLSAgICAgICAgY29ubmVjdGlvbi5j b21taXQoKQorICAgIHRyeToKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVj dGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiU0VM RUNUICogRlJPTSBwZ19kYXRhYmFzZSBkYiBXSEVSRSBkYi5kYXRuYW1lPScl cyciCisgICAgICAgICAgICAgICAgICAgICAgICAgICUgZGF0YWJhc2VfbmFt ZSkKKyAgICAgICAgaWYgcGdfY3Vyc29yLmZldGNoYWxsKCk6CisgICAgICAg ICAgICAjIFJlbGVhc2UgcGlkIGlmIGFueSBwcm9jZXNzIHVzaW5nIGRhdGFi YXNlCisgICAgICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IHBn X3Rlcm1pbmF0ZV9iYWNrZW5kKHBpZCkgZnJvbSIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgcGdfc3RhdF9hY3Rpdml0eSB3aGVyZSBkYXRu YW1lPSclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFiYXNlX25hbWUpCisgICAgICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVs ID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAgIGNv bm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUoJycnRFJPUCBEQVRBQkFTRSAiJXMiJycnICUg ZGF0YWJhc2VfbmFtZSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lz b2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICAg ICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICAgICAgY29ubmVjdGlv bi5jbG9zZSgpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246 CisgICAgICAgIGV4Y2VwdGlvbiA9ICIlczogbGluZTolcyAlcyIgJSAoCisg ICAgICAgICAgICBmaWxlX25hbWUsIHN5cy5leGNfdHJhY2ViYWNrLnRiX2xp bmVubywgZXhjZXB0aW9uKQorICAgICAgICBwcmludChleGNlcHRpb24sIGZp bGU9c3lzLnN0ZGVycikKIAogCiBkZWYgY3JlYXRlX3NlcnZlcihzZXJ2ZXIp OgpAQCAtMTg1LDE5ICsxODQsMzcgQEAgZGVmIGNyZWF0ZV9zZXJ2ZXIoc2Vy dmVyKToKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBj cmVhdGluZyBzZXJ2ZXIuICVzIiAlIGV4Y2VwdGlvbikKIAogCi1kZWYgZGVs ZXRlX3NlcnZlcihzaWQpOgorZGVmIGRlbGV0ZV9zZXJ2ZXIodGVzdGVyLCBz aWQpOgogICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlZCB0byBkZWxldGUgc2Vy dmVyIGZyb20gU1FMaXRlIiIiCiAgICAgdHJ5OgotICAgICAgICBjb25uID0g c3FsaXRlMy5jb25uZWN0KGNvbmZpZy5TUUxJVEVfUEFUSCkKLSAgICAgICAg Y3VyID0gY29ubi5jdXJzb3IoKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIv c2VydmVyL29iai8nICsgc3RyKFNFUlZFUl9HUk9VUCkgKyAiLyIKKyAgICAg ICAgIyBDYWxsIEFQSSB0byBkZWxldGUgdGhlIHNlcnZlcgorICAgICAgICBy ZXNwb25zZSA9IHRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNpZCkpCisgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAgIGV4Y2Vw dGlvbiA9ICIlczogbGluZTolcyAlcyIgJSAoCisgICAgICAgICAgICBmaWxl X25hbWUsIHN5cy5leGNfdHJhY2ViYWNrLnRiX2xpbmVubywgZXhjZXB0aW9u KQorICAgICAgICBwcmludChleGNlcHRpb24sIGZpbGU9c3lzLnN0ZGVycikK KworCitkZWYgZGVsZXRlX3NlcnZlcl9mcm9tX3NxbGl0ZShzaWQpOgorICAg ICIiIlRoaXMgZnVuY3Rpb24gdXNlZCB0byBkZWxldGUgc2VydmVyIGZyb20g U1FMaXRlIiIiCisgICAgdHJ5OgorICAgICAgICBjb24gPSBzcWxpdGUzLmNv bm5lY3QoY29uZmlnLlNRTElURV9QQVRIKQorICAgICAgICBjdXIgPSBjb24u Y3Vyc29yKCkKICAgICAgICAgc2VydmVyX29iamVjdHMgPSBjdXIuZXhlY3V0 ZSgnU0VMRUNUICogRlJPTSBzZXJ2ZXIgV0hFUkUgaWQ9JXMnICUgc2lkKQot ICAgICAgICBzZXJ2ZXJzX2NvdW50ID0gbGVuKHNlcnZlcl9vYmplY3RzLmZl dGNoYWxsKCkpCisgICAgICAgIHNzID0gc2VydmVyX29iamVjdHMuZmV0Y2hh bGwoKQorICAgICAgICAjIGZvciBpIGluIHNzOgorICAgICAgICAjICAgICBw cmludCgiPj4+Pj4+Pj4+Pj4iLCBpKQorICAgICAgICBzZXJ2ZXJzX2NvdW50 ID0gbGVuKHNzKQorICAgICAgICAjIHByaW50KCI+Pj4+Pj4+Iiwgc2lkKQog ICAgICAgICBpZiBzZXJ2ZXJzX2NvdW50OgogICAgICAgICAgICAgY3VyLmV4 ZWN1dGUoJ0RFTEVURSBGUk9NIHNlcnZlciBXSEVSRSBpZD0lcycgJSBzaWQp Ci0gICAgICAgICAgICBjb25uLmNvbW1pdCgpCi0gICAgICAgIGNvbm4uY2xv c2UoKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyOgotICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGRlbGV0aW5nIHNlcnZlciAl cyIgJSBlcnIpCisgICAgICAgICAgICBjb24uY29tbWl0KCkKKyAgICAgICAg Y29uLmNsb3NlKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlv bjoKKyAgICAgICAgZXhjZXB0aW9uID0gIiVzOiBsaW5lOiVzICVzIiAlICgK KyAgICAgICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJf bGluZW5vLCBleGNlcHRpb24pCisgICAgICAgIHByaW50KGV4Y2VwdGlvbiwg ZmlsZT1zeXMuc3RkZXJyKQogCiAKIGRlZiBjcmVhdGVfdGFibGVzcGFjZShz ZXJ2ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKToKQEAgLTI0Niw3ICsyNjMs NiBAQCBkZWYgZGVsZXRlX3RhYmxlc3BhY2UoY29ubmVjdGlvbiwgdGVzdF90 YWJsZXNwYWNlX25hbWUpOgogICAgICAgICBleGNlcHRpb24gPSAiJXM6IGxp bmU6JXMgJXMiICUgKAogICAgICAgICAgICAgZmlsZV9uYW1lLCBzeXMuZXhj X3RyYWNlYmFjay50Yl9saW5lbm8sIGV4Y2VwdGlvbikKICAgICAgICAgcHJp bnQoZXhjZXB0aW9uLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgIHJhaXNl IEV4Y2VwdGlvbihleGNlcHRpb24pCiAKIAogZGVmIGNyZWF0ZV90ZXN0X3Nl cnZlcihzZXJ2ZXJfaW5mbyk6CkBAIC0yNzcsNyArMjkzLDcgQEAgZGVmIGNy ZWF0ZV90ZXN0X3NlcnZlcihzZXJ2ZXJfaW5mbyk6CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiX25h bWUiOiB0ZXN0X2RiX25hbWV9KQogCiAKLWRlZiBkZWxldGVfdGVzdF9zZXJ2 ZXIoKToKK2RlZiBkZWxldGVfdGVzdF9zZXJ2ZXIodGVzdGVyKToKICAgICB0 ZXN0X3NlcnZlcl9kaWN0ID0gcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0 CiAgICAgdGVzdF9zZXJ2ZXJzID0gdGVzdF9zZXJ2ZXJfZGljdFsic2VydmVy Il0KICAgICB0ZXN0X2RhdGFiYXNlcyA9IHRlc3Rfc2VydmVyX2RpY3RbImRh dGFiYXNlIl0KQEAgLTI5NSwxNCArMzExLDEyIEBAIGRlZiBkZWxldGVfdGVz dF9zZXJ2ZXIoKToKICAgICAgICAgICAgICAgICBkYXRhYmFzZV9uYW1lID0g ZGF0YWJhc2VbImRiX25hbWUiXQogICAgICAgICAgICAgICAgICMgRHJvcCBk YXRhYmFzZQogICAgICAgICAgICAgICAgIGRyb3BfZGF0YWJhc2UoY29ubmVj dGlvbiwgZGF0YWJhc2VfbmFtZSkKLQogICAgICAgICAgICAgIyBEZWxldGUg c2VydmVyCi0gICAgICAgICAgICBkZWxldGVfc2VydmVyKHNydl9pZCkKKyAg ICAgICAgICAgIGRlbGV0ZV9zZXJ2ZXIodGVzdGVyLCBzcnZfaWQpCiAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CiAgICAgICAgIGV4Y2Vw dGlvbiA9ICJFeGNlcHRpb246ICVzOiBsaW5lOiVzICVzIiAlICgKICAgICAg ICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5v LCBleGNlcHRpb24pCi0gICAgICAgIHByaW50KGV4Y2VwdGlvbikKLSAgICAg ICAgbG9nZ2VyLmV4Y2VwdGlvbihleGNlcHRpb24pCisgICAgICAgIHByaW50 KGV4Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQogCiAgICAgIyBDbGVhciB0 ZXN0X3NlcnZlcl9kaWN0CiAgICAgZm9yIGl0ZW0gaW4gcmVncmVzc2lvbi50 ZXN0X3NlcnZlcl9kaWN0OgpAQCAtMzEwLDExICszMjQsMTIgQEAgZGVmIGRl bGV0ZV90ZXN0X3NlcnZlcigpOgogCiAKIGRlZiByZW1vdmVfZGJfZmlsZSgp OgorICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlIHRvIHJlbW92ZSBTUUxpdGUg REIgZmlsZSIiIgogICAgIGlmIG9zLnBhdGguaXNmaWxlKGNvbmZpZy5TUUxJ VEVfUEFUSCk6CiAgICAgICAgIG9zLnJlbW92ZShjb25maWcuU1FMSVRFX1BB VEgpCiAKIAotZGVmIGRyb3Bfb2JqZWN0cygpOgorZGVmIF9kcm9wX29iamVj dHModGVzdGVyKToKICAgICAiIiJUaGlzIGZ1bmN0aW9uIHVzZSB0byBjbGVh bnVwIHRoZSBjcmVhdGVkIHRoZSBvYmplY3RzKHNlcnZlcnMsIGRhdGFiYXNl cywKICAgICAgc2NoZW1hcyBldGMpIGR1cmluZyB0aGUgdGVzdCBzdWl0ZSBy dW4iIiIKICAgICB0cnk6CkBAIC0zMjksNyArMzQ0LDYgQEAgZGVmIGRyb3Bf b2JqZWN0cygpOgogICAgICAgICAgICAgICAgIGhvc3QgPSBzZXJ2ZXJfaW5m b1sxXQogICAgICAgICAgICAgICAgIGRiX3BvcnQgPSBzZXJ2ZXJfaW5mb1sy XQogCi0gICAgICAgICAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2luZm9b NV0KICAgICAgICAgICAgICAgICBjb25maWdfc2VydmVycyA9IHRlc3Rfc2V0 dXAuY29uZmlnX2RhdGFbJ3NlcnZlcl9jcmVkZW50aWFscyddCiAgICAgICAg ICAgICAgICAgZGJfcGFzc3dvcmQgPSAnJwogICAgICAgICAgICAgICAgICMg R2V0IHRoZSBkYiBwYXNzd29yZCBmcm9tIGNvbmZpZyBmaWxlIGZvciBhcHBy b3ByaWF0ZSBzZXJ2ZXIKQEAgLTM1MCwxMSArMzY0LDE1IEBAIGRlZiBkcm9w X29iamVjdHMoKToKICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VzID0g cGdfY3Vyc29yLmZldGNoYWxsKCkKICAgICAgICAgICAgICAgICAgICAgaWYg ZGF0YWJhc2VzOgogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGRiIGlu IGRhdGFiYXNlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u ZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24oc2VydmVyX2luZm9bM10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl9pbmZvWzRdLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk Yl9wYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2luZm9bMV0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl9pbmZvWzJdKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgRG8gbm90IGRyb3AgdGhlIGRlZmF1bHQgZGF0YWJh c2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGJbMF0gbm90 IGluIFsicG9zdGdyZXMiLCAidGVtcGxhdGUxIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZTAiXToK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9kYXRhYmFz ZShjb25uZWN0aW9uLCBkYlswXSkKLSAgICAgICAgICAgICAgICAgICAgY29u bmVjdGlvbi5jbG9zZSgpCiAKICAgICAgICAgICAgICAgICAgICAgIyBEZWxl dGUgdGFibGVzcGFjZQogICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u ID0gZ2V0X2RiX2Nvbm5lY3Rpb24oc2VydmVyX2luZm9bM10sCkBAIC0zNzQs MTQgKzM5MiwzMCBAQCBkZWYgZHJvcF9vYmplY3RzKCk6CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgRGVsZXRlIHRhYmxlc3BhY2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlX3RhYmxlc3Bh Y2UoY29ubmVjdGlvbiwgdGFibGVzcGFjZV9uYW1lKQogCisgICAgICAgICAg ICBmb3Igc2VydmVyX2luZm8gaW4gYWxsX3NlcnZlcnM6CisgICAgICAgICAg ICAgICAgc2VydmVyX2lkID0gc2VydmVyX2luZm9bNV0KICAgICAgICAgICAg ICAgICAjIERlbGV0ZSBzZXJ2ZXIKLSAgICAgICAgICAgICAgICBkZWxldGVf c2VydmVyKHNlcnZlcl9pZCkKKyAgICAgICAgICAgICAgICB0cnk6CisgICAg ICAgICAgICAgICAgICAgIGRlbGV0ZV9zZXJ2ZXIodGVzdGVyLCBzZXJ2ZXJf aWQpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNl cHRpb246CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9ICJFeGNl cHRpb24gd2hpbGUgZGVsZXRpbmcgc2VydmVyOiAlczoiIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiBsaW5lOiVzICVzIiAlXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZV9uYW1lLCBzeXMu ZXhjX3RyYWNlYmFjay50Yl9saW5lbm8sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAg IHByaW50KGV4Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAg ICAgICAgICAgICBjb250aW51ZQogICAgICAgICBjb25uLmNsb3NlKCkKLSAg ICAgICAgIyBSZW1vdmUgU1FMaXRlIGRiIGZpbGUKLSAgICAgICAgcmVtb3Zl X2RiX2ZpbGUoKQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9u OgotICAgICAgICByZW1vdmVfZGJfZmlsZSgpCiAgICAgICAgIGV4Y2VwdGlv biA9ICJFeGNlcHRpb246ICVzOiBsaW5lOiVzICVzIiAlICgKICAgICAgICAg ICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5vLCBl eGNlcHRpb24pCi0gICAgICAgIHByaW50KGV4Y2VwdGlvbikKLSAgICAgICAg bG9nZ2VyLmV4Y2VwdGlvbihleGNlcHRpb24pCisgICAgICAgIHByaW50KGV4 Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQorICAgIGZpbmFsbHk6CisgICAg ICAgICMgTG9nb3V0IHRoZSB0ZXN0IGNsaWVudAorICAgICAgICBsb2dvdXRf dGVzdGVyX2FjY291bnQodGVzdGVyKQorICAgICAgICAjIFJlbW92ZSBTUUxp dGUgZGIgZmlsZQorICAgICAgICByZW1vdmVfZGJfZmlsZSgpCisKKworZGVm IGdldF9jbGVhbnVwX2hhbmRsZXIodGVzdGVyKToKKyAgICAiIiJUaGlzIGZ1 bmN0aW9uIHVzZSB0byBiaW5kIHZhcmlhYmxlIHRvIGRyb3Bfb2JqZWN0cyBm dW5jdGlvbiIiIgorICAgIHJldHVybiBwYXJ0aWFsKF9kcm9wX29iamVjdHMs IHRlc3RlcikK --001a11404c5cf5c9e8053d171354 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 --001a11404c5cf5c9e8053d171354--