Boost logo

Boost :

From: Stefan Slapeta (stefan_at_[hidden])
Date: 2004-10-08 11:18:36


Hi all,

there are two failures reported for the intel-win32-8.1 toolset (both in
operations_test): http://tinyurl.com/5dbla

After some investigation I've found out now that the tests fail only
because they are run on a FAT32 disk! It was just coincidence that the
failures popped up in the Intel 8.1 tests (...and it's quite amusing to
say that we would need another toolset dimension for the filesystem :) )

Anyway, here some analysis (the second failure seems to be a general
design problem!):

First failure:

operations_test.cpp(287): test time_diff >= 0.0 && time_diff < 60.0 failed

--> the actual difference is -2!

Second failure:

std::exception: boost::filesystem::last_write_time
("wrong parameter")

last_write_time contains this code:

       ::utimbuf buf;
       buf.actime = std::time_t();
                    ^^^^^^^^^^^^^
       buf.modtime = new_time;

This means that the last access (!) time is set to 1970-01-01-... when
the last write time is changed by this call! IMO that's absolutely
incorrect because it's a side effect which I'm sure the user wouldn't
expect to happen!
Furthermore - a nice coincidence again - it seems not to be allowed to
set this early access time for FAT32. I didn't investigate too much, but
what I can say for sure is that it works to set an access time of this
year, but not for 1970 (-> results in an error "wrong parameter").

Stefan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk