1
0
mirror of https://github.com/systemd/systemd synced 2026-03-19 19:44:48 +01:00

Compare commits

..

No commits in common. "16ecf8066dcb81f94f53f6f895041987c391479d" and "df8fd03a7dcf2f06cd9e2ee3eed60c3a83b43ccc" have entirely different histories.

2 changed files with 12 additions and 105 deletions

View File

@ -429,36 +429,18 @@ char *format_timestamp_relative(char *buf, size_t l, usec_t t) {
s = "left"; s = "left";
} }
if (d >= USEC_PER_YEAR) { if (d >= USEC_PER_YEAR)
usec_t years = d / USEC_PER_YEAR; snprintf(buf, l, USEC_FMT " years " USEC_FMT " months %s",
usec_t months = (d % USEC_PER_YEAR) / USEC_PER_MONTH; d / USEC_PER_YEAR,
snprintf(buf, l, USEC_FMT " %s " USEC_FMT " %s %s", (d % USEC_PER_YEAR) / USEC_PER_MONTH, s);
years, else if (d >= USEC_PER_MONTH)
years == 1 ? "year" : "years", snprintf(buf, l, USEC_FMT " months " USEC_FMT " days %s",
months, d / USEC_PER_MONTH,
months == 1 ? "month" : "months", (d % USEC_PER_MONTH) / USEC_PER_DAY, s);
s); else if (d >= USEC_PER_WEEK)
} snprintf(buf, l, USEC_FMT " weeks " USEC_FMT " days %s",
else if (d >= USEC_PER_MONTH) { d / USEC_PER_WEEK,
usec_t months = d / USEC_PER_MONTH; (d % USEC_PER_WEEK) / USEC_PER_DAY, s);
usec_t days = (d % USEC_PER_MONTH) / USEC_PER_DAY;
snprintf(buf, l, USEC_FMT " %s " USEC_FMT " %s %s",
months,
months == 1 ? "month" : "months",
days,
days == 1 ? "day" : "days",
s);
}
else if (d >= USEC_PER_WEEK) {
usec_t weeks = d / USEC_PER_WEEK;
usec_t days = (d % USEC_PER_WEEK) / USEC_PER_DAY;
snprintf(buf, l, USEC_FMT " %s " USEC_FMT " %s %s",
weeks,
weeks == 1 ? "week" : "weeks",
days,
days == 1 ? "day" : "days",
s);
}
else if (d >= 2*USEC_PER_DAY) else if (d >= 2*USEC_PER_DAY)
snprintf(buf, l, USEC_FMT " days %s", d / USEC_PER_DAY, s); snprintf(buf, l, USEC_FMT " days %s", d / USEC_PER_DAY, s);
else if (d >= 25*USEC_PER_HOUR) else if (d >= 25*USEC_PER_HOUR)

View File

@ -360,80 +360,6 @@ static void test_format_timestamp(void) {
} }
} }
static void test_format_timestamp_relative(void) {
log_info("/* %s */", __func__);
char buf[MAX(FORMAT_TIMESTAMP_MAX, FORMAT_TIMESPAN_MAX)];
usec_t x;
/* Only testing timestamps in the past so we don't need to add some delta to account for time passing
* by while we are running the tests (unless we're running on potatoes and 24 hours somehow passes
* between our call to now() and format_timestamp_relative's call to now()). */
/* Years and months */
x = now(CLOCK_REALTIME) - (1*USEC_PER_YEAR + 1*USEC_PER_MONTH);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "1 year 1 month ago"));
x = now(CLOCK_REALTIME) - (1*USEC_PER_YEAR + 2*USEC_PER_MONTH);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "1 year 2 months ago"));
x = now(CLOCK_REALTIME) - (2*USEC_PER_YEAR + 1*USEC_PER_MONTH);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "2 years 1 month ago"));
x = now(CLOCK_REALTIME) - (2*USEC_PER_YEAR + 2*USEC_PER_MONTH);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "2 years 2 months ago"));
/* Months and days */
x = now(CLOCK_REALTIME) - (1*USEC_PER_MONTH + 1*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "1 month 1 day ago"));
x = now(CLOCK_REALTIME) - (1*USEC_PER_MONTH + 2*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "1 month 2 days ago"));
x = now(CLOCK_REALTIME) - (2*USEC_PER_MONTH + 1*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "2 months 1 day ago"));
x = now(CLOCK_REALTIME) - (2*USEC_PER_MONTH + 2*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "2 months 2 days ago"));
/* Weeks and days */
x = now(CLOCK_REALTIME) - (1*USEC_PER_WEEK + 1*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "1 week 1 day ago"));
x = now(CLOCK_REALTIME) - (1*USEC_PER_WEEK + 2*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "1 week 2 days ago"));
x = now(CLOCK_REALTIME) - (2*USEC_PER_WEEK + 1*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "2 weeks 1 day ago"));
x = now(CLOCK_REALTIME) - (2*USEC_PER_WEEK + 2*USEC_PER_DAY);
assert_se(format_timestamp_relative(buf, sizeof(buf), x));
log_info("%s", buf);
assert_se(streq(buf, "2 weeks 2 days ago"));
}
static void test_format_timestamp_utc_one(usec_t val, const char *result) { static void test_format_timestamp_utc_one(usec_t val, const char *result) {
char buf[FORMAT_TIMESTAMP_MAX]; char buf[FORMAT_TIMESTAMP_MAX];
const char *t; const char *t;
@ -613,7 +539,6 @@ int main(int argc, char *argv[]) {
test_usec_sub_signed(); test_usec_sub_signed();
test_usec_sub_unsigned(); test_usec_sub_unsigned();
test_format_timestamp(); test_format_timestamp();
test_format_timestamp_relative();
test_format_timestamp_utc(); test_format_timestamp_utc();
test_deserialize_dual_timestamp(); test_deserialize_dual_timestamp();
test_usec_shift_clock(); test_usec_shift_clock();