Sorry, I was wrong. I check some code, and found these test need a non-nil *store-controller*, that's why you ask me (open-store *testbdb-spec* first.
Now I can show the real reason (I think): ELE-TESTS 28 > *store-controller* NIL ELE-TESTS 29 > (open-store *testbdb-spec*) #<BDB-STORE-CONTROLLER /tmp/testdb/> ELE-TESTS 30 > *store-controller* #<BDB-STORE-CONTROLLER /tmp/testdb/> ELE-TESTS 31 > (with-transaction (:store-controller *store-controller*) (with-btree-cursor (c index1) (multiple-value-bind (has k v) (cursor-set-range c 199.5) (declare (ignore has k)) (= (slot1 v) 200)))) Error: No applicable methods for #<STANDARD-GENERIC-FUNCTION SLOT1 41000535A4> with args (NIL) 1 (continue) Call #<STANDARD-GENERIC-FUNCTION SLOT1 41000535A4> again 2 (abort) Return to level 0. 3 Return to top loop level 0. Type :b for backtrace, :c <option number> to proceed, or :? for other options ELE-TESTS 32 : 1 > :B Call to ERROR Call to CERROR Call to (METHOD NO-APPLICABLE-METHOD (T)) Call to CLOS::GENERIC-FUNCTION-NON-DISCRIMINATOR Call to (METHOD ELEPHANT::EXECUTE-TRANSACTION (DB-BDB::BDB-STORE-CONTROLLER T)) Call to FUNCALL Call to LET Call to EVAL Call to CAPI::CAPI-TOP-LEVEL-FUNCTION Call to CAPI::INTERACTIVE-PANE-TOP-LOOP Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION MP::PROCESS-SG-FUNCTION MP::INITIALIZE-PROCESS-STACK) Chun Tian (binghe) wrote: > Ian Eslick <[EMAIL PROTECTED]> writes: > > >> Sorry about that last test. A better way to do it is to set >> regression-test::*catch-errors* to nil, then run the full regress >> test. That will be informative. >> >> Thank you, >> Ian >> > > Hi, Ian > > Can't run the full regress test when set regression-test::*catch-errors* > to nil, it will halt on first failure test. > > But I think I know what's your meaning, set regression-test::*catch-errors* > to nil can show the real error message and got a full backtrace: > > ELE-TESTS 15 > (do-test 'set-range) > > Error: No applicable methods for #<STANDARD-GENERIC-FUNCTION > ELEPHANT::EXECUTE-TRANSACTION 410003059C> with args (NIL #<anonymous > interpreted function 401003A8F4> :PARENT NIL :RETRIES 200) > 1 (continue) Call #<STANDARD-GENERIC-FUNCTION ELEPHANT::EXECUTE-TRANSACTION > 410003059C> again > 2 (abort) Return to level 0. > 3 Return to top loop level 0. > > Type :b for backtrace, :c <option number> to proceed, or :? for other options > > ELE-TESTS 16 : 1 > :b > Call to ERROR > Call to CERROR > Call to (METHOD NO-APPLICABLE-METHOD (T)) > Call to CLOS::GENERIC-FUNCTION-NON-DISCRIMINATOR > Call to CLOS::APPLY-NO-APPLICABLE-METHOD > Call to FUNCALL > Call to LET > Call to EVAL > Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION REGRESSION-TEST::%DO > REGRESSION-TEST::DO-ENTRY) > Call to REGRESSION-TEST::DO-ENTRY > Call to EVAL > Call to CAPI::CAPI-TOP-LEVEL-FUNCTION > Call to CAPI::INTERACTIVE-PANE-TOP-LOOP > Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION MP::PROCESS-SG-FUNCTION > MP::INITIALIZE-PROCESS-STACK) > > ELE-TESTS 21 > (do-test 'PGET-BOTH-RANGE) > > Error: The error 'MAKE-INSTANCE is called with keyword :FORMAT-CONTROL among > the arguments (CONTROLLER-LOST-ERROR :FORMAT-CONTROL "Store controller for > specification ~A for object ~A cannot be found." :FORMAT-ARGUMENTS (# #) > :OBJECT #<BDB-BTREE-INDEX oid:25> :SPEC (:BDB "/tmp/testdb/")) which is not > one of (:SPEC :OBJECT).' > was raised while coercing (CONTROLLER-LOST-ERROR :FORMAT-CONTROL "Store > controller for specification ~A for object ~A cannot be found." > :FORMAT-ARGUMENTS (#<BDB-BTREE-INDEX oid:25> (:BDB "/tmp/testdb/")) :OBJECT > #<BDB-BTREE-INDEX oid:25> :SPEC (:BDB "/tmp/testdb/")) to a condition. > 1 (continue) Open a new instance and continue? > 2 (abort) Return to level 0. > 3 Return to top loop level 0. > > Type :b for backtrace, :c <option number> to proceed, or :? for other options > > ELE-TESTS 22 : 1 > :b > Call to ERROR > Call to CERROR > Call to ELEPHANT::SIGNAL-CONTROLLER-LOST-ERROR > Call to (METHOD ELEPHANT::GET-CON (PERSISTENT)) > Call to (METHOD MAKE-CURSOR (DB-BDB::BDB-BTREE-INDEX)) > Call to LET > Call to EVAL > Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION REGRESSION-TEST::%DO > REGRESSION-TEST::DO-ENTRY) > Call to REGRESSION-TEST::DO-ENTRY > Call to EVAL > Call to CAPI::CAPI-TOP-LEVEL-FUNCTION > Call to CAPI::INTERACTIVE-PANE-TOP-LOOP > Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION MP::PROCESS-SG-FUNCTION > MP::INITIALIZE-PROCESS-STACK) > > ELE-TESTS 25 > (do-test 'PCURSOR) > Test PCURSOR failed > Form: (WITH-BTREE-CURSOR (C INDEX3) > (VALUES (PCURSOR-PKEY (CURSOR-PFIRST C)) > (PCURSOR-PKEY (CURSOR-PNEXT C)) > (PCURSOR-PKEY (CURSOR-PNEXT-NODUP C)) > (PCURSOR-PKEY (CURSOR-PNEXT-DUP C)) > (PCURSOR-PKEY (CURSOR-PPREV C)) > (PCURSOR-PKEY (CURSOR-PPREV-NODUP C)) > (PCURSOR-PKEY (CURSOR-PLAST C)) > (PCURSOR-PKEY (CURSOR-PSET C 300)) > (PCURSOR-PKEY (CURSOR-PSET-RANGE C 199.5)) > (PCURSOR-PKEY (CURSOR-PGET-BOTH C 10 101)) > (PCURSOR-PKEY (CURSOR-PGET-BOTH-RANGE C 11 111.4)))) > Expected values: 0 > 2 > 10 > 11 > 10 > 9 > 9999 > 3000 > 2000 > 101 > 112 > Actual values: 0 > 2 > 10 > 11 > 10 > 9 > 9999 > 3000 > NIL > 101 > NIL. > NIL > > ELE-TESTS 27 > (do-test 'PCURSOR2) > Test PCURSOR2 failed > Form: (WITH-BTREE-CURSOR (C INDEX4) > (VALUES (PCURSOR-PKEY (CURSOR-PFIRST C)) > (PCURSOR-PKEY (CURSOR-PNEXT C)) > (PCURSOR-PKEY (CURSOR-PNEXT-NODUP C)) > (PCURSOR-PKEY (CURSOR-PNEXT-DUP C)) > (PCURSOR-PKEY (CURSOR-PPREV C)) > (PCURSOR-PKEY (CURSOR-PPREV-NODUP C)) > (PCURSOR-PKEY (CURSOR-PLAST C)) > (PCURSOR-PKEY (CURSOR-PSET C 300)) > (PCURSOR-PKEY (CURSOR-PSET-RANGE C 199.5)) > (PCURSOR-PKEY (CURSOR-PGET-BOTH C 10 101)) > (PCURSOR-PKEY (CURSOR-PGET-BOTH-RANGE C 11 111.4)))) > Expected values: 0 > 2 > 10 > 11 > 10 > 9 > 9999 > 3000 > 2000 > 101 > 112 > Actual values: 0 > 2 > 10 > 11 > 10 > 9 > 9999 > 3000 > NIL > 101 > NIL. > NIL > > Seems the last two test has no error reported, just wrong answer. > > Is this informative? > > Thanks. > > Chun Tian (binghe) > > >> On Jun 12, 2007, at 12:35 PM, Chun Tian (binghe) wrote: >> >> >>> Ian Eslick <[EMAIL PROTECTED]> writes: >>> >>> >>>> Chun Tian, >>>> >>>> Were you able to run the tests on PostgreSQL as well? Did they show >>>> similar failures? >>>> >>> No. On PostgreSQL, only INDEXING-TIMING failes: (but this test is >>> much slower than bdb) >>> >>> Test INDEXING-TIMING failed >>> Form: (PROGN >>> (MAKE-STRESS-CLASSES) >>> (LET ((INSTS (GET-INSTANCES-BY-CLASS 'STRESS-INDEX)) >>> (START NIL) >>> (END NIL) >>> (NORMAL-CHECK NIL) >>> (INDEX-CHECK NIL) >>> (NORMAL-TIME 0) >>> (INDEX-TIME 0)) >>> (WHEN INSTS (DROP-INSTANCES INSTS :SC *STORE-CONTROLLER*)) >>> (WITH-TRANSACTION NIL >>> (NORMAL-STRESS-SETUP *STRESS-COUNT* 'STRESS- >>> NORMAL :STRESS2 10)) >>> (WITH-TRANSACTION NIL >>> (INDEXED-STRESS-SETUP *STRESS-COUNT* 'STRESS- >>> INDEX :STRESS2 10)) >>> (SETF START (GET-INTERNAL-RUN-TIME)) >>> (SETF NORMAL-CHECK (NORMAL-LOOKUP)) >>> (SETF END (GET-INTERNAL-RUN-TIME)) >>> (SETF NORMAL-TIME (/ (- END START 0.0) INTERNAL-TIME- >>> UNITS-PER-SECOND)) >>> (SETF START (GET-INTERNAL-RUN-TIME)) >>> (SETF INDEX-CHECK (INDEX-LOOKUP)) >>> (SETF END (GET-INTERNAL-RUN-TIME)) >>> (SETF INDEX-TIME (/ (- END START 0.0) INTERNAL-TIME-UNITS- >>> PER-SECOND)) >>> (FORMAT T >>> "~%Ranged get of ~A/~A objects = Linear: ~A sec >>> Indexed: ~A sec~%" >>> *RANGE-SIZE* >>> *STRESS-COUNT* >>> NORMAL-TIME >>> INDEX-TIME) >>> (AND (EQUAL NORMAL-CHECK INDEX-CHECK) (> NORMAL-TIME >>> INDEX-TIME)))) >>> Expected value: T >>> Actual value: NIL. >>> >>> And I rerun the BDB test, some fails like before: >>> >>> 4 out of 132 total tests failed: SET-RANGE, PGET-BOTH-RANGE, PCURSOR, >>> PCURSOR2. >>> >>> >>> >>>> The set range features have always been a little fragile, but I'm not >>>> sure how 64-bits would effect it. I can try to run Lispworks 32bit >>>> on Linux as I think there have been some differences between Linux >>>> and other platforms in the past. >>>> >>>> I also noticed that the test 'SET-RANGE' failed with an error. Could >>>> you do the following test? >>>> >>>> (setf regression-test::*catch-errors* nil) >>>> (open-store *testbdb-spec*) >>>> (do-test 'set-range) >>>> >>>> And let me know what the error is? >>>> >>> OK, but something wrong happened: >>> >>> CL-USER 1 > (clc:clc-require :elephant-tests) >>> >>> CL-USER 2 > (in-package :elephant-tests) >>> #<The ELEPHANT-TESTS package, 459/1024 internal, 0/16 external> >>> >>> ELE-TESTS 3 > (clc:clc-require :ele-bdb) >>> >>> ELE-TESTS 4 > *testbdb-spec* >>> (:BDB "/afs/163.org/user/b/binghe/lisp/elephant/tests/testdb/") >>> >>> ELE-TESTS 5 > (setf *testbdb-spec* '(:bdb "/tmp/testdb/")) >>> (:BDB "/tmp/testdb/") >>> >>> ELE-TESTS 6 > (setf *default-spec* *testbdb-spec*) >>> (:BDB "/tmp/testdb/") >>> >>> ELE-TESTS 7 > (setf regression-test::*catch-errors* nil) >>> NIL >>> >>> ELE-TESTS 8 > (open-store *testbdb-spec*) >>> #<BDB-STORE-CONTROLLER /tmp/testdb/> >>> >>> ELE-TESTS 9 > (do-test 'set-range) >>> >>> Error: The variable INDEX1 is unbound. >>> 1 (continue) Try evaluating INDEX1 again. >>> 2 Specify a value to use this time instead of evaluating INDEX1. >>> 3 Specify a value to set INDEX1 to. >>> 4 (abort) Return to level 0. >>> 5 Return to top loop level 0. >>> >>> Type :b for backtrace, :c <option number> to proceed, or :? for >>> other options >>> >>> ELE-TESTS 10 : 1 > :c 5 >>> >>> ELE-TESTS 11 > >>> >>> Sorry, cannot adjust it myself. >>> >>> >>>> Thank you, >>>> Ian >>>> >>>> > > _______________________________________________ > elephant-devel site list > elephant-devel@common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel > > _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel