On Fri, Jan 8, 2016 at 5:22 PM, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote:
>> People have said that issuing SQL commands directly from a TAP test >> via DBD::Pg is not acceptable for a core feature, and (despite >> assertions to the contrary) I see no way to test this feature with >> existing testing mechanisms. The bigger set of work here, if we >> don't want this feature to go in without any testing scripts (which >> is not acceptable IMO), is to enhance the isolation tester or >> hybridize TAP testing with the isolation tester. > > Is it possible to use the PostgresNode stuff to test this? If not, > perhaps if you restate what additional capabilities you need we could > look into adding them there. I suspect that what you need is the > ability to keep more than one session open and feed them commands; > perhaps we could have the framework have a function that opens a psql > process and returns a FD to which the test program can write, using the > IPC::Run stuff (start / pump / finish). Resubmitting for the March CF. The main thing that changed is that I can now run all the regression and isolation tests using installcheck with old_snapshot_threshold = 0 and get a clean run. That probably gets better overall coverage than specific tests to demonstrate the "snapshot too old" error, but of course we need those, too. While I can do that with hand-run psql sessions or through connectors from different languages, I have not been able to wrangle the testing tools we support through the build system into working for this purpose. (I had been hoping that the recent improvements to the TAP testing libraries would give me the traction to get there, but either it's still not there or my perl-fu is just too weak to figure out how to use those features -- suggestions welcome.) Basically, a connection needs to remain open and interleave commands with other connections, which the isolation tester does just fine; but it needs to do that using a custom postgresql.conf file, which TAP does just fine. I haven't been able to see the right way to get a TAP test to set up a customized installation to run isolation tests against. If I can get that working, I have additional tests I can drop into that. -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
snapshot-too-old-v4.patch
Description: invalid/octet-stream
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers