summaryrefslogtreecommitdiff
path: root/tests/test_document.cpp
diff options
context:
space:
mode:
authorarseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>2010-07-22 17:22:44 +0000
committerarseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>2010-07-22 17:22:44 +0000
commit958ee27e7fafb0bc5702ac3959cebaf18dce68e0 (patch)
tree52f1b6f2fb204b3dcc10ad43baee6351868d3315 /tests/test_document.cpp
parent6b69701cdde71a96a73daa4f4d0ec39530b68a80 (diff)
tests: Miscellaneous test fixes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@618 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'tests/test_document.cpp')
-rw-r--r--tests/test_document.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/tests/test_document.cpp b/tests/test_document.cpp
index 35f3f7d..85a63a7 100644
--- a/tests/test_document.cpp
+++ b/tests/test_document.cpp
@@ -108,15 +108,17 @@ TEST(document_load_stream_exceptions)
{
pugi::xml_document doc;
+ // Windows has newline translation for text-mode files, so reading from this stream reaches eof and sets fail|eof bits.
+ // This test does not cause stream to throw an exception on Linux - I have no idea how to get read() to fail except
+ // newline translation.
std::ifstream iss("tests/data/multiline.xml");
- iss.exceptions(std::ios::eofbit);
+ iss.exceptions(std::ios::eofbit | std::ios::badbit | std::ios::failbit);
try
{
doc.load(iss);
- volatile bool exception_should_be_thrown = false; // to avoid 'controlling expression is constant' warning
- CHECK(exception_should_be_thrown);
+ CHECK(iss.good()); // if the exception was not thrown, stream reading should succeed without errors
}
catch (const std::ios_base::failure&)
{