From f6dd93d0dc6c22cc71223b9b38528d64a624583b Mon Sep 17 00:00:00 2001 From: Arran Cudbard-Bell Date: Thu, 11 Apr 2024 11:00:03 -0600 Subject: [PATCH] Print sizes with suffixes --- src/lib/util/size.c | 5 ++++- src/lib/util/value.c | 2 +- src/tests/keywords/escape-sequences | 4 ++-- src/tests/keywords/truncation | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/lib/util/size.c b/src/lib/util/size.c index 4a1b2f856f..88e3226489 100644 --- a/src/lib/util/size.c +++ b/src/lib/util/size.c @@ -174,6 +174,7 @@ fr_slen_t fr_size_to_str(fr_sbuff_t *out, size_t in) { "PB", (uint64_t)1000 * 1000 * 1000 * 1000 * 1000}, { "EB", (uint64_t)1000 * 1000 * 1000 * 1000 * 1000 * 1000}, }; + fr_slen_t slen; fr_size_unit_t const *unit = &base10_units[0]; uint8_t pos2 = fr_low_bit_pos(in); @@ -195,5 +196,7 @@ fr_slen_t fr_size_to_str(fr_sbuff_t *out, size_t in) else if (pos2 >= 10) unit = &base2_units[pos2 / 10]; done: - return fr_sbuff_in_sprintf(&our_out, "%zu%s", in / unit->mul, unit->suffix); + slen = fr_sbuff_in_sprintf(&our_out, "%zu%s", in / unit->mul, unit->suffix); + if (slen < 0) return slen; + return fr_sbuff_set(out, &our_out); } diff --git a/src/lib/util/value.c b/src/lib/util/value.c index bb0821a956..4e62462ed2 100644 --- a/src/lib/util/value.c +++ b/src/lib/util/value.c @@ -5414,7 +5414,7 @@ ssize_t fr_value_box_print(fr_sbuff_t *out, fr_value_box_t const *data, fr_sbuff } case FR_TYPE_SIZE: - FR_SBUFF_IN_SPRINTF_RETURN(&our_out, "%zu", data->datum.size); + FR_SBUFF_RETURN(fr_size_to_str, &our_out, data->datum.size); break; case FR_TYPE_TIME_DELTA: diff --git a/src/tests/keywords/escape-sequences b/src/tests/keywords/escape-sequences index d600ce50d0..459bcfc09f 100644 --- a/src/tests/keywords/escape-sequences +++ b/src/tests/keywords/escape-sequences @@ -21,11 +21,11 @@ string result_string } -if (!("%length(%{Reply-Message})" == 39)) { +if (!(%length(%{Reply-Message}) == 39)) { test_fail } -if (!("%length(%{Callback-Number})" == 42)) { +if (!(%length(%{Callback-Number}) == 42)) { test_fail } diff --git a/src/tests/keywords/truncation b/src/tests/keywords/truncation index 1267a04425..82912e4800 100644 --- a/src/tests/keywords/truncation +++ b/src/tests/keywords/truncation @@ -87,7 +87,7 @@ if !("0x%hex(%{test_octets})" =~ /^0x([0-9a-f]+)$/) { &result_string := "%{1}" -if (!("%length(%{result_string})" == 8166)) { +if (!(%length(%{result_string}) == 8166)) { test_fail } -- 2.47.3