[elephant-devel] Re: Test of 0.9 on LispWorks 5.0 (64-bit) for Linux
Chun Tian binghe
binghe.lisp at gmail.com
Tue Jun 12 16:59:00 UTC 2007
Ian Eslick <eslick at csail.mit.edu> 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 <eslick at csail.mit.edu> 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
>>>
More information about the elephant-devel
mailing list