socket: parse message queue size as IEC size
Allow MessageQueueMessageSize= to accept IEC size suffixes in socket unit files. Support the same syntax for transient property assignments. Keep MessageQueueMaxMessages= as a plain message count.
This commit is contained in:
committed by
Yu Watanabe
parent
3bb3c54f3d
commit
78238fd7c9
@@ -848,7 +848,6 @@ TEST(socket_properties) {
|
||||
|
||||
/* 64-bit integer properties */
|
||||
"MessageQueueMaxMessages=10",
|
||||
"MessageQueueMessageSize=8192",
|
||||
|
||||
/* Timespan properties */
|
||||
"TimeoutSec=90s",
|
||||
@@ -871,6 +870,7 @@ TEST(socket_properties) {
|
||||
"ReceiveBuffer=512K",
|
||||
"SendBuffer=1.M", // TODO: should this accept multiple components?
|
||||
"PipeSize=512K",
|
||||
"MessageQueueMessageSize=8K",
|
||||
|
||||
/* Exec command properties */
|
||||
"ExecStartPre=true",
|
||||
|
||||
@@ -41,6 +41,14 @@ static void test_config_parse_iec_size_one(const char *rvalue, size_t expected)
|
||||
ASSERT_EQ(expected, iec_size);
|
||||
}
|
||||
|
||||
static void test_config_parse_iec_size_long_one(const char *rvalue, long expected) {
|
||||
long iec_size = 0;
|
||||
|
||||
ASSERT_OK(config_parse_iec_size_long(
|
||||
"unit", "filename", 1, "section", 1, "lvalue", 0, rvalue, &iec_size, NULL));
|
||||
ASSERT_EQ(expected, iec_size);
|
||||
}
|
||||
|
||||
static void test_config_parse_si_uint64_one(const char *rvalue, uint64_t expected) {
|
||||
uint64_t si_uint64 = 0;
|
||||
|
||||
@@ -135,6 +143,19 @@ TEST(config_parse_iec_size) {
|
||||
test_config_parse_iec_size_one("garbage", 0);
|
||||
}
|
||||
|
||||
TEST(config_parse_iec_size_long) {
|
||||
test_config_parse_iec_size_long_one("1024", 1024);
|
||||
test_config_parse_iec_size_long_one("2K", 2048);
|
||||
test_config_parse_iec_size_long_one("10M", 10 * 1024 * 1024);
|
||||
test_config_parse_iec_size_long_one("1G", 1L * 1024 * 1024 * 1024);
|
||||
test_config_parse_iec_size_long_one("0G", 0);
|
||||
test_config_parse_iec_size_long_one("0", 0);
|
||||
|
||||
test_config_parse_iec_size_long_one("-982", 0);
|
||||
test_config_parse_iec_size_long_one("49874444198739873000000G", 0);
|
||||
test_config_parse_iec_size_long_one("garbage", 0);
|
||||
}
|
||||
|
||||
TEST(config_parse_si_uint64) {
|
||||
test_config_parse_si_uint64_one("1024", 1024);
|
||||
test_config_parse_si_uint64_one("2K", 2000);
|
||||
|
||||
Reference in New Issue
Block a user