Kevin Field wrote:
I use pgTAP to make sure my functions produce the correct errors using throws_ok(). So when I get an error from a plpgsql function, it looks like this: ERROR: upper bound of FOR loop cannot be null CONTEXT: PL/pgSQL function "foo" line 35 at FOR with integer loop variable ...which I can then test using throws_ok by giving it the string 'upper bound of FOR loop cannot be null'. However, in a plperl function, errors come out in this format: error from Perl function "check_no_loop": Loops not allowed! Node 1 cannot be part of node 3 at line 13. Unfortunately, I can't test for this without including the line number, which means that changing any plperl function that I have such a test for pretty much guarantees that I'll need to change the test to reflect the new line numbers the errors would be thrown from in the function. Is it possible to unify the error reporting format, so pgTAP can test them without needing line numbers from plperl functions?
This is under perl's control, not ours. The perl docco says: If the last element of LIST does not end in a newline, the current script line number and input line number (if any) are also printed and a newline is supplied. Can pgTap check for a regex instead if just a string? cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers