diff -r f3121d7dedec -r 7e259e47eb0d gameServer2/src/protocol/parser.rs --- a/gameServer2/src/protocol/parser.rs Wed Jan 18 22:15:55 2017 +0300 +++ b/gameServer2/src/protocol/parser.rs Wed Jan 18 22:23:41 2017 +0300 @@ -111,9 +111,9 @@ | one_param_message | cmd_message | complex_message - | malformed_message ), end_of_message ) + | terminated!(malformed_message, end_of_message) | empty_message ) ); @@ -131,6 +131,8 @@ assert_eq!(message(b"CMD\nwatch\ndemo\n\n"), IResult::Done(&b""[..], Watch("demo"))); assert_eq!(message(b"BAN\nme\nbad\n77\n\n"), IResult::Done(&b""[..], Ban("me", "bad", 77))); + assert_eq!(extract_messages(b"QUIT\n1\n2\n\n"), IResult::Done(&b""[..], vec![Malformed])); + assert_eq!(extract_messages(b"PING\n\nPING\n\nP"), IResult::Done(&b"P"[..], vec![Ping, Ping])); assert_eq!(extract_messages(b"SING\n\nPING\n\n"), IResult::Done(&b""[..], vec![Malformed, Ping])); assert_eq!(extract_messages(b"\n\n\n\nPING\n\n"), IResult::Done(&b""[..], vec![Empty, Empty, Ping]));