diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-07-09 20:45:19 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-07-09 20:45:19 +0100 |
commit | 1335e6359797e4e3fa1a6590b407d92281686c8e (patch) | |
tree | 24a118ff605dc658798bab52261feb8e83dbf4a7 | |
parent | 41d4dbca113d696d5628f071869d18834d419733 (diff) | |
download | rspamd-1335e6359797e4e3fa1a6590b407d92281686c8e.tar.gz rspamd-1335e6359797e4e3fa1a6590b407d92281686c8e.zip |
[Test] Add unit test for keepalive timeout parsing
-rw-r--r-- | test/rspamd_cxx_unit_utils.hxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/rspamd_cxx_unit_utils.hxx b/test/rspamd_cxx_unit_utils.hxx index c85315379..602b32a7e 100644 --- a/test/rspamd_cxx_unit_utils.hxx +++ b/test/rspamd_cxx_unit_utils.hxx @@ -28,6 +28,8 @@ #include <utility> #include <string> +extern "C" long rspamd_http_parse_keepalive_timeout (const rspamd_ftok_t *tok); + TEST_SUITE("rspamd_utils") { TEST_CASE("rspamd_strip_smtp_comments_inplace") @@ -58,6 +60,30 @@ TEST_CASE("rspamd_strip_smtp_comments_inplace") } } +TEST_CASE("rspamd_http_parse_keepalive_timeout") +{ + std::vector<std::pair<std::string, long>> cases { + {"timeout=5, max=1000", 5}, + {"max=1000, timeout=5", 5}, + {"max=1000, timeout=", -1}, + {"max=1000, timeout=0", 0}, + {"max=1000, timeout=-5", -1}, + {"timeout=5", 5}, + {" timeout=5; ", 5}, + {"timeout = 5", 5}, + }; + + for (const auto &c : cases) { + SUBCASE (("parse http keepalive header " + c.first).c_str()) { + rspamd_ftok_t t; + t.begin = c.first.data(); + t.len = c.first.size(); + auto res = rspamd_http_parse_keepalive_timeout(&t); + CHECK(res == c.second); + } + } +} + } #endif |