@@ -63,12 +63,13 @@ BOOST_AUTO_TEST_CASE(incremental_parser_constructor) {
63
63
BOOST_AUTO_TEST_CASE (incremental_parser_parse_http_version) {
64
64
response_parser<tags::default_string> p; // default constructible
65
65
logic::tribool parsed_ok = false ;
66
- typedef response_parser<tags::default_string>::range_type range_type;
66
+ typedef response_parser<tags::default_string> response_parser_type;
67
+ typedef response_parser_type::range_type range_type;
67
68
range_type result_range;
68
69
69
70
std::string valid_http_version = " HTTP/1.0 " ;
70
71
fusion::tie (parsed_ok, result_range) = p.parse_until (
71
- response_parser<tags::default_string> ::http_version_done,
72
+ response_parser_type ::http_version_done,
72
73
valid_http_version);
73
74
BOOST_CHECK_EQUAL (parsed_ok, true );
74
75
BOOST_CHECK (!boost::empty (result_range));
@@ -77,10 +78,20 @@ BOOST_AUTO_TEST_CASE(incremental_parser_parse_http_version) {
77
78
p.reset ();
78
79
valid_http_version = " HTTP/1.1 " ;
79
80
fusion::tie (parsed_ok, result_range) = p.parse_until (
80
- response_parser<tags::default_string> ::http_version_done,
81
+ response_parser_type ::http_version_done,
81
82
valid_http_version);
82
83
BOOST_CHECK_EQUAL (parsed_ok, true );
83
84
BOOST_CHECK (!boost::empty (result_range));
84
85
parsed = std::string (boost::begin (result_range), boost::end (result_range));
85
86
std::cout << " PARSED: " << parsed << " state=" << p.state () << std::endl;
87
+
88
+ p.reset ();
89
+ std::string invalid_http_version = " HTTP 1.0" ;
90
+ parsed_ok = logic::indeterminate;
91
+ fusion::tie (parsed_ok, result_range) = p.parse_until (
92
+ response_parser_type::http_version_done,
93
+ invalid_http_version);
94
+ BOOST_CHECK_EQUAL (parsed_ok, false );
95
+ parsed = std::string (boost::begin (result_range), boost::end (result_range));
96
+ std::cout << " PARSED: " << parsed << " state=" << p.state () << std::endl;
86
97
}
0 commit comments