#369 closed defect (fixed)
Test totaldoclen1 fails with InvalidOperationError on Solaris 10 U6
Reported by: | Ben Summers | Owned by: | Richard Boulton |
---|---|---|---|
Priority: | normal | Milestone: | 1.0.13 |
Component: | Test Suite | Version: | 1.0.12 |
Severity: | normal | Keywords: | |
Cc: | ben@… | Blocked By: | |
Blocking: | Operating System: | Solaris |
Description
Test totaldoclen1 fails with InvalidOperationError on Solaris 10 U6 - report below.
Also, quite a few tests are skipped.
Compiler: "gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)"
Running test: totaldoclen1... InvalidOperationError ... ======================================= 1 of 7 tests failed Please report to http://xapian.org/bugs ======================================= *** Error code 1 The following command caused the error: failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \ srcdir=.; export srcdir; \ list=' btreetest quartztest apitest internaltest stemtest queryparsertest termgentest '; \ if test -n "$list"; then \ for tst in $list; do \ if test -f ./$tst; then dir=./; \ elif test -f $tst; then dir=; \ else dir="./"; fi; \ if ./runtest ${dir}$tst; then \ all=`expr $all + 1`; \ case " " in \ *$ws$tst$ws*) \ xpass=`expr $xpass + 1`; \ failed=`expr $failed + 1`; \ echo "XPASS: $tst"; \ ;; \ *) \ echo "PASS: $tst"; \ ;; \ esac; \ elif test $? -ne 77; then \ all=`expr $all + 1`; \ case " " in \ *$ws$tst$ws*) \ xfail=`expr $xfail + 1`; \ echo "XFAIL: $tst"; \ ;; \ *) \ failed=`expr $failed + 1`; \ echo "FAIL: $tst"; \ ;; \ esac; \ else \ skip=`expr $skip + 1`; \ echo "SKIP: $tst"; \ fi; \ done; \ if test "$failed" -eq 0; then \ if test "$xfail" -eq 0; then \ banner="All $all tests passed"; \ else \ banner="All $all tests behaved as expected ($xfail expected failures)"; \ fi; \ else \ if test "$xpass" -eq 0; then \ banner="$failed of $all tests failed"; \ else \ banner="$failed of $all tests did not behave as expected ($xpass unexpected passes)"; \ fi; \ fi; \ dashes="$banner"; \ skipped=""; \ if test "$skip" -ne 0; then \ skipped="($skip tests were not run)"; \ test `echo "$skipped" | wc -c` -le `echo "$banner" | wc -c` || \ dashes="$skipped"; \ fi; \ report=""; \ if test "$failed" -ne 0 && test -n "http://xapian.org/bugs"; then \ report="Please report to http://xapian.org/bugs"; \ test `echo "$report" | wc -c` -le `echo "$banner" | wc -c` || \ dashes="$report"; \ fi; \ dashes=`echo "$dashes" | sed s/./=/g`; \ echo "$dashes"; \ echo "$banner"; \ test -z "$skipped" || echo "$skipped"; \ test -z "$report" || echo "$report"; \ echo "$dashes"; \ test "$failed" -eq 0; \ else :; fi make: Fatal error: Command failed for target `check-TESTS' Current working directory /home/ben/xapian-core-1.0.12/tests *** Error code 1 make: Fatal error: Command failed for target `check-am' Current working directory /home/ben/xapian-core-1.0.12/tests *** Error code 1 make: Fatal error: Command failed for target `check' Current working directory /home/ben/xapian-core-1.0.12/tests *** Error code 1 The following command caused the error: failcom='exit 1'; \ for f in x $MAKEFLAGS; do \ case $f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo check-recursive | sed s/-recursive//`; \ list='. docs tests'; for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target `check-recursive' Current working directory /home/ben/xapian-core-1.0.12 *** Error code 1 make: Fatal error: Command failed for target `check'
Change History (7)
comment:1 by , 16 years ago
Cc: | removed |
---|---|
Component: | Other → Test Suite |
Version: | → 1.0.12 |
comment:2 by , 16 years ago
Cc: | added |
---|
comment:3 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 16 years ago
Glad skipping is normal.
Output is:
Running test: totaldoclen1... InvalidOperationErrorInvalidOperationError: Backend inmemory doesn't support get_writable_database_as_database() ./apitest backend inmemory: 0 tests passed, 1 failed. Running test: totaldoclen1... ok ./apitest backend flint: All 1 tests passed. Running test: totaldoclen1... ok ./apitest backend quartz: All 1 tests passed. Running test: totaldoclen1... ok ./apitest backend remoteprog: All 1 tests passed. Running test: totaldoclen1... ok ./apitest backend remotetcp: All 1 tests passed. ./apitest total: 4 tests passed, 1 failed.
comment:5 by , 16 years ago
Milestone: | → 1.0.13 |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
Ah, good. I'm glad to report that this is just a bug in the testcase, and is fixed in the SVN HEAD of the 1.0 branch (in r12564, to be precise). The test isn't valid for the inmemory backend, basically, and should be skipped for it, but the check for this had been broken by updates to other parts of the code.
Marking as for the 1.0.13 milestone, and marking as fixed since it already is. (It'll be moved to the "released" status once that release is made.)
comment:6 by , 16 years ago
Actually, the current ticket workflow we have in trac doesn't allow tickets to move from "fixed" to "released" (the only state they can move to is "reopened").
Instead the milestone of the fixed ticket indicates if the fix has been released and which release it was/will be in. We can configure the workflow if we want, but the current one seems reasonable to me (albeit different to bugzilla).
P.S. Hi Ben! Bit of a blast from the past...
comment:7 by , 16 years ago
RISC OS refugees are everywhere!
Glad it's not a problem on Solaris, thanks for your help.
Ben,
Can you run
And paste the output here - this should give us a better idea of where it's failing. My guess would be an unexpected integer overflow, though; possibly we have a wrong type somewhere.
The skipped tests are quite normal, and shouldn't represent any problem.