TAP: allow overriding PostgresNode in get_new_node
Craig Ringer <craig@2ndquadrant.com>
From: Craig Ringer <craig@2ndquadrant.com>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-05-31T00:43:34Z
Lists: pgsql-hackers
Attachments
- v1-0001-Allow-creation-of-PostgresNode-subclasses-from-ge.patch (text/x-patch) patch v1-0001
Hi all More and more I'm finding it useful to extend PostgresNode for project specific helper classes. But PostgresNode::get_new_node is a factory that doesn't provide any mechanism for overriding, so you have to create a PostgresNode then re-bless it as your desired subclass. Ugly. The attached patch allows an optional second argument, a class name, to be passed to PostgresNode::get_new_node . It's instantiated instead of PostgresNode if supplied. Its 'new' constructor must take the same arguments. BTW, it strikes me that we should really template a Perl file with the postgres version. Or finally add a --version-num to pg_config so we don't have to do version parsing. When you're writing extension TAP tests you often need to know the target postgres version and parsing our version strings, already annoying, got even more so with Pg 10. I prefer adding --version-num to pg_config. Any objections? Will submit patch if none. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Make PostgresNode easily subclassable
- 54dacc746628 10.0 landed
- 3b7bbee7b661 9.6.4 landed