[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

file.write("stuff",n) failing under CTest on mips*



The simgear package recently added a test ( http://sources.debian.net/src/simgear/3.0.0~git20140204%2Bc99ea4-1/simgear/misc/sgstream_test.cxx ) that uses binary-mode file.write("line1\n" "line2\r" ... ,1024) to create a test file (which it then uses to test the package's file input functions).

On mips and sometimes mipsel, the write() fails, with file.rdstate()==std::ios_base::badbit ( https://buildd.debian.org/status/fetch.php?pkg=simgear&arch=mips&ver=3.0.0~git20140204%2Bc99ea4-1&stamp=1391888133 , search for "9: Unable to run test due to I/O error 1").

Testing under qemu-system-mips found that this problem only happens under CTest (cmake's test runner, which redirects stdout/stderr), not when the test is run directly, and that it leaves the test file existing but empty. Adding a file.flush() doesn't help, but reading file.rdstate() sometimes (not always) avoids the problem.

We are currently working around this problem by not treating this as a test failure (since it's nothing to do with what is being tested), but I'd like to know what's actually wrong here.


Reply to: