From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Sun, 24 Sep 2006 20:55:51 +0200
Hi folks, I've started hacking postgres.pir and related stuff. Some remarkable notes: * there's a test now (or the beginnings of it): $ ./parrot t/library/pg.t (the old code didn't even load_bytecode) The test assumes, there's a user's default table. It turns out that if libpq.so doesn't exist, pg.t makes t/harness give up completely: [EMAIL PROTECTED]> perl t/harness t/library/pg.t t/library/pg....Couldn't load 'libpq': libpq.so: cannot open shared object file: No such file or directory current instr.: 'parrot;Pg;__postgres_init' pc 0 (/usr/src/parrot/runtime/parrot/library/postgres.pir:4) [oops; continuation 0x81d5f94 of type 25 is trying to jump from runloop 8 to runloop 1] FAILED--Further testing stopped: error loading libpg - loadlib failed [EMAIL PROTECTED]> I managed to get it to fail less hard (see patch): [EMAIL PROTECTED]> perl t/harness t/library/pg.t t/library/pg....Couldn't load 'libpq': libpq.so: cannot open shared object file: No such file or directory current instr.: 'parrot;Pg;__postgres_init' pc 0 (/usr/src/parrot/runtime/parrot/library/postgres.pir:4) [oops; continuation 0x81d5e90 of type 25 is trying to jump from runloop 9 to runloop 1] t/library/pg....ok 7/7parrot: src/inter_call.c:122: Parrot_init_arg_op: Assertion `(((sig_pmc)->obj.flags) & PObj_is_PMC_FLAG) && sig_pmc->vtable->base_type == enum_class_FixedIntegerArray' failed. t/library/pg....dubious Test returned status 0 (wstat 6, 0x6) Scalar found where operator expected at (eval 159) line 1, near "'int' $__val" (Missing operator before $__val?) after all the subtests completed successfully Failed Test Stat Wstat Total Fail Failed List of Failed -------------------------------------------------------------------------------- t/library/pg.t 0 6 7 0 0.00% ?? 7 subtests skipped. Failed 1/1 test scripts, 0.00% okay. 0/7 subtests failed, 100.00% okay. [EMAIL PROTECTED]> But, as you can see, the continuation barrier gets in the way of the error handling. -- Bob Rogers http://rgrjr.dyndns.org/
Index: t/library/pg.t =================================================================== --- t/library/pg.t (revision 14703) +++ t/library/pg.t (working copy) @@ -23,12 +23,14 @@ load_bytecode 'Test/Builder.pir' .local pmc test test = new 'Test::Builder' + test.'plan'(N_TESTS) push_eh no_pg load_bytecode 'postgres.pir' - test.'plan'(N_TESTS) test.'ok'(1, 'load_bytecode') load_bytecode 'Pg.pir' test.'ok'(1, 'load_bytecode Pg') + clear_eh + .local pmc cl, con, res cl = getclass 'Pg' test.'ok'(1, 'Pg class exists') @@ -47,7 +49,7 @@ no_pg: .local pmc ex, msg .get_results(ex, msg) - test.'BAILOUT'(msg) + test.'skip'(N_TESTS) test.'finish'() .end