diff --git a/adb/adb_io_test.cpp b/adb/adb_io_test.cpp index f637073a7..84e3db6f7 100644 --- a/adb/adb_io_test.cpp +++ b/adb/adb_io_test.cpp @@ -31,10 +31,11 @@ #include "base/test_utils.h" // All of these tests fail on Windows because they use the C Runtime open(), -// but the adb_io APIs expect file descriptors from adb_open(). Also, the -// android::base file APIs use the C Runtime which uses CR/LF translation by -// default (changeable with _setmode()), but the adb_io APIs use adb_read() -// and adb_write() which do no translation. +// but the adb_io APIs expect file descriptors from adb_open(). This could +// theoretically be fixed by making adb_read()/adb_write() fallback to using +// read()/write() if an unrecognized fd is used, and by making adb_open() return +// fds far from the range that open() returns. But all of that might defeat the +// purpose of the tests. TEST(io, ReadFdExactly_whole) { const char expected[] = "Foobar"; diff --git a/base/test_utils.cpp b/base/test_utils.cpp index b0c5a12c0..22641e79d 100644 --- a/base/test_utils.cpp +++ b/base/test_utils.cpp @@ -37,9 +37,9 @@ int mkstemp(char* template_name) { return -1; } // Use open() to match the close() that TemporaryFile's destructor does. - // Note that on Windows, this does CR/LF translation and _setmode() should - // be used to change that if appropriate. - return open(template_name, O_CREAT | O_EXCL | O_RDWR, S_IRUSR | S_IWUSR); + // Use O_BINARY to match base file APIs. + return open(template_name, O_CREAT | O_EXCL | O_RDWR | O_BINARY, + S_IRUSR | S_IWUSR); } char* mkdtemp(char* template_name) {