2010/9/8 Martin J. Evans <martin.ev...@easysoft.com>:
> On 08/09/10 08:58, Jens Rehsack wrote:
>> 2010/9/7 Martin J. Evans <martin.ev...@easysoft.com>:
>>>  After a small discussion on #perl today I found a small amount of time to
>>> look at 51dbm_file.t test failures. There are a few things I noted:
>>>
>>> 1. ribasushi suggests the tests fail because it does a rmtree when still
>>> connected so the files are still open and this fails on Windows. I don't see
>>> this problem but I imagine it would be solved by disconnecting, rmtree then
>>> reconnecting.
>>
>> The error was a failure in DBD::File::Table::file2table function for
>> quoted table
>> names which have a path component (which needs to be supported for
>> backward compatibility).
>>
>>> 2. I'm a bit suspicious about the:
>>>
>>> $test_dir .= "_" . basename($0, qr/\.[^.]*/);
>>>
>>> in lib.t because basename docs say:
>>> "@suffixes work as in fileparse() except all regex metacharacters are
>>> quoted" so those '*' and []^ will be taken literally. It does work if you
>>> just change that to ".t".
>>
>> Well, currently t/lib.pl supports even test scripts with any other extension,
>> e.g. "sandbox/rtxxxxx.pl".
>> I don't see any reason to change this.
>
> The reason to change it is it does not work:
>
> perl -le 'use File::Basename; print basename("/home/martin/51dbm_file.t", 
> qr/\.[^.]*/);'
>
> 51dbm_file.t
>
> The docs for basename say:
>
> "@suffixes work as in fileparse() except all regex metacharacters are quoted"
>
> so those metachrs in the suffix list are treated literally.

But I give there a regex o.O
I think I need to check the source to understand.

> The obvious intention of whoever wrote this was to take the extension out but 
> it does not work. I don't know why the extension was taken out other than 
> maybe '.' is not allowed in some directory names in some operating systems 
> (VMS).

I added the basename because of a misinterpretion of an error in
parallel tests test.
It could be completely removed - $$ should do. At first, I had the
feeling, some tests
are executed in the same process, which was simply a bug in clean up
(which is now
fixed).

>>> 3. personally I don't like ok calls without a test name as it makes it hard
>>> to find the tests when looking at the code and comparing it with the test
>>> output.
>>
>> You're absolutely right here - a good test case name would be
>> "select from full qualified path name as table"
>
> I'll add test names this morning.
>
>
>>> 4. the test that fails for me is test 7 which does a:
>>>
>>> select * from
>>> C:\Users\martin\DBI-1.613_93\test_output_5084_51dbm_file_mine\fred
>>>
>>> which returns no rows. I'm not sure why as that is the name of the file.
>>
>> I do not understand why you aren't sure about what. I would be happy to
>> explain.
>>
>>> I'd be happy to fix (2) and (3) and I don't think (1) will hurt but as I
>>> cannot reproduce a problem with the rmtree as reported by some. Instead the
>>> error I see is the last select which returns nothing.
>>
>> That#s correct, for some reason something during DBD::DBM::Table::open_file()
>> fails because of the bug in DBD::File::Table::file2table. I couldn't
>> figure out what
>> failed and why there was no error message, I assume it's the PathTools error
>> with non-existing path's when concatenating file names.
>
> As I said in a follow up, all tests pass for me now on the trunk of DBI.

Anyway, if there is something you didn't understand in the tests, I
should explain.
It's always good when more than one guy understands what's going on.

/Jens

Reply via email to