📄 newline_test.cpp
字号:
BOOST_CHECK_MESSAGE(
false, "failed checking for dos line endings"
);
}
in.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
BOOST_CHECK(!checker->is_posix());
BOOST_CHECK(checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
in.pop(); // pop checker.
// Verify properties of ::mac.
in.push(io::newline_checker(io::newline::mac));
in.push(string_source(::mac));
BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
in.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
BOOST_CHECK(!checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
in.pop(); // pop checker.
// Verify properties of no_final_newline.
in.push(io::newline_checker(io::newline::posix));
in.push(string_source(::no_final_newline));
BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
in.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
BOOST_CHECK(checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(!checker->has_final_newline());
in.pop(); // pop checker.
// Verify properties of mixed.
in.push(io::newline_checker());
in.push(string_source(::mixed));
BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
in.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
BOOST_CHECK(!checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(checker->is_mixed_posix());
BOOST_CHECK(checker->is_mixed_dos());
BOOST_CHECK(checker->is_mixed_mac());
BOOST_CHECK(checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
in.pop(); // pop checker.
// Verify exceptions when input does not satisfy target conditions.
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::dos, ::posix, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::mac, ::posix, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::posix, ::dos, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::mac, ::dos, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::posix, ::mac, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::dos, ::mac, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::final_newline, ::no_final_newline, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::posix, ::mixed, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::dos, ::mixed, true),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::mac, ::mixed, true),
io::newline_error
)
}
void write_newline_checker()
{
io::filtering_ostream out;
io::newline_checker* checker = 0;
// Verify properties of ::posix.
out.push(io::newline_checker(io::newline::posix));
out.push(io::null_sink());
BOOST_CHECK_NO_THROW(io::copy(string_source(::posix), out))
out.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
BOOST_CHECK(checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
out.pop(); // pop checker.
// Verify properties of ::dos.
out.push(io::newline_checker(io::newline::dos));
out.push(io::null_sink());
BOOST_CHECK_NO_THROW(io::copy(string_source(::dos), out))
out.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
BOOST_CHECK(!checker->is_posix());
BOOST_CHECK(checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
out.pop(); // pop checker.
// Verify properties of ::mac.
out.push(io::newline_checker(io::newline::mac));
out.push(io::null_sink());
BOOST_CHECK_NO_THROW(io::copy(string_source(::mac), out))
out.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
BOOST_CHECK(!checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
out.pop(); // pop checker.
// Verify properties of no_final_newline.
out.push(io::newline_checker(io::newline::posix));
out.push(io::null_sink());
BOOST_CHECK_NO_THROW(io::copy(string_source(::no_final_newline), out))
out.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
BOOST_CHECK(checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(!checker->is_mixed());
BOOST_CHECK(!checker->has_final_newline());
out.pop(); // pop checker.
// Verify properties of mixed.
out.push(io::newline_checker());
out.push(io::null_sink());
BOOST_CHECK_NO_THROW(io::copy(string_source(::mixed), out))
out.pop(); // pop source.
checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
BOOST_CHECK(!checker->is_posix());
BOOST_CHECK(!checker->is_dos());
BOOST_CHECK(!checker->is_mac());
BOOST_CHECK(checker->is_mixed_posix());
BOOST_CHECK(checker->is_mixed_dos());
BOOST_CHECK(checker->is_mixed_mac());
BOOST_CHECK(checker->is_mixed());
BOOST_CHECK(checker->has_final_newline());
out.pop(); // pop checker.
// Verify exceptions when input does not satisfy target conditions.
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::dos, ::posix, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::mac, ::posix, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::posix, ::dos, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::mac, ::dos, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::posix, ::mac, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::dos, ::mac, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::final_newline, ::no_final_newline, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::posix, ::mixed, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::dos, ::mixed, false),
io::newline_error
)
BOOST_CHECK_THROW(
test_input_against_flags(io::newline::mac, ::mixed, false),
io::newline_error
)
}
test_suite* init_unit_test_suite(int, char* [])
{
test_suite* test = BOOST_TEST_SUITE("newline_filter test");
test->add(BOOST_TEST_CASE(&read_newline_filter));
test->add(BOOST_TEST_CASE(&write_newline_filter));
test->add(BOOST_TEST_CASE(&read_newline_checker));
test->add(BOOST_TEST_CASE(&write_newline_checker));
return test;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -