Skip to content

Commit f22d2f1

Browse files
committed
Fix some test cases that only fail in May
1 parent 08328a4 commit f22d2f1

File tree

1 file changed

+68
-52
lines changed

1 file changed

+68
-52
lines changed

spdlog/tests/pattern.rs

+68-52
Original file line numberDiff line numberDiff line change
@@ -224,15 +224,17 @@ fn test_builtin_patterns() {
224224
"Saturday",
225225
"Sunday",
226226
];
227-
const MONTH_NAMES: [&str; 12] = [
228-
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
227+
// "May" is ambiguous for short or full :)
228+
const MONTH_NAMES: [&str; 11] = [
229+
"Jan", "Feb", "Mar", "Apr", // "May",
230+
"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
229231
];
230-
const MONTH_FULL_NAMES: [&str; 12] = [
232+
const MONTH_FULL_NAMES: [&str; 11] = [
231233
"January",
232234
"February",
233235
"March",
234236
"April",
235-
"May",
237+
// "May",
236238
"June",
237239
"July",
238240
"August",
@@ -246,7 +248,7 @@ fn test_builtin_patterns() {
246248
#[track_caller]
247249
fn check_inner(
248250
pattern: impl Pattern + Clone + 'static,
249-
template: Option<impl AsRef<str>>,
251+
expected_templates: Option<impl IntoIterator<Item = impl AsRef<str>>>, // OR list
250252
ranges: Vec<RangeInclusive<u64>>,
251253
) {
252254
#[track_caller]
@@ -282,6 +284,7 @@ fn test_builtin_patterns() {
282284
res = replace_substring(res, MONTH_FULL_NAMES, "{month_name_full}");
283285
res = replace_substring(res, WEEKDAY_NAMES, "{weekday_name}");
284286
res = replace_substring(res, MONTH_NAMES, "{month_name}");
287+
res = replace_substring(res, ["May"], "{month_name|month_name_full}");
285288
res = replace_substring(res, AM_PM, "{am_pm}");
286289
res = replace_substring(res, [__EOL], "{eol}");
287290

@@ -302,8 +305,10 @@ fn test_builtin_patterns() {
302305
assert!(r.contains(d));
303306
});
304307

305-
if let Some(template) = template {
306-
assert_eq!(input.1, template.as_ref());
308+
if let Some(expected_templates) = expected_templates {
309+
assert!(expected_templates
310+
.into_iter()
311+
.any(|t| input.1 == t.as_ref()));
307312
}
308313
}
309314

@@ -330,13 +335,24 @@ fn test_builtin_patterns() {
330335
const SOURCE_RANGE: RangeInclusive<u64> = 0..=9999;
331336
const OS_ID_RANGE: RangeInclusive<u64> = 1..=u64::MAX;
332337

333-
check!("{weekday_name}", Some("{weekday_name}"), vec![]);
334-
check!("{weekday_name_full}", Some("{weekday_name_full}"), vec![]);
335-
check!("{month_name}", Some("{month_name}"), vec![]);
336-
check!("{month_name_full}", Some("{month_name_full}"), vec![]);
338+
check!("{weekday_name}", Some(["{weekday_name}"]), vec![]);
339+
check!("{weekday_name_full}", Some(["{weekday_name_full}"]), vec![]);
340+
check!(
341+
"{month_name}",
342+
Some(["{month_name}", "{month_name|month_name_full}"]),
343+
vec![]
344+
);
345+
check!(
346+
"{month_name_full}",
347+
Some(["{month_name_full}", "{month_name|month_name_full}"]),
348+
vec![]
349+
);
337350
check!(
338351
"{datetime}",
339-
Some("{weekday_name} {month_name} 00 00:00:00 0000"),
352+
Some([
353+
"{weekday_name} {month_name} 00 00:00:00 0000",
354+
"{weekday_name} {month_name|month_name_full} 00 00:00:00 0000"
355+
]),
340356
vec![
341357
DAY_RANGE,
342358
HOUR_RANGE,
@@ -345,59 +361,59 @@ fn test_builtin_patterns() {
345361
YEAR_RANGE,
346362
],
347363
);
348-
check!("{year_short}", Some("00"), vec![YEAR_SHORT_RANGE]);
349-
check!("{year}", Some("0000"), vec![YEAR_RANGE]);
364+
check!("{year_short}", Some(["00"]), vec![YEAR_SHORT_RANGE]);
365+
check!("{year}", Some(["0000"]), vec![YEAR_RANGE]);
350366
check!(
351367
"{date_short}",
352-
Some("00/00/00"),
368+
Some(["00/00/00"]),
353369
vec![MONTH_RANGE, DAY_RANGE, YEAR_SHORT_RANGE],
354370
);
355371
check!(
356372
"{date}",
357-
Some("0000-00-00"),
373+
Some(["0000-00-00"]),
358374
vec![YEAR_RANGE, MONTH_RANGE, DAY_RANGE],
359375
);
360-
check!("{month}", Some("00"), vec![MONTH_RANGE]);
361-
check!("{day}", Some("00"), vec![DAY_RANGE]);
362-
check!("{hour}", Some("00"), vec![HOUR_RANGE]);
363-
check!("{hour_12}", Some("00"), vec![HOUR_12_RANGE]);
364-
check!("{minute}", Some("00"), vec![MINUTE_RANGE]);
365-
check!("{second}", Some("00"), vec![SECOND_RANGE]);
366-
check!("{millisecond}", Some("000"), vec![MILLISECOND_RANGE]);
367-
check!("{microsecond}", Some("000000"), vec![MICROSECOND_RANGE]);
368-
check!("{nanosecond}", Some("000000000"), vec![NANOSECOND_RANGE]);
369-
check!("{am_pm}", Some("{am_pm}"), vec![]);
376+
check!("{month}", Some(["00"]), vec![MONTH_RANGE]);
377+
check!("{day}", Some(["00"]), vec![DAY_RANGE]);
378+
check!("{hour}", Some(["00"]), vec![HOUR_RANGE]);
379+
check!("{hour_12}", Some(["00"]), vec![HOUR_12_RANGE]);
380+
check!("{minute}", Some(["00"]), vec![MINUTE_RANGE]);
381+
check!("{second}", Some(["00"]), vec![SECOND_RANGE]);
382+
check!("{millisecond}", Some(["000"]), vec![MILLISECOND_RANGE]);
383+
check!("{microsecond}", Some(["000000"]), vec![MICROSECOND_RANGE]);
384+
check!("{nanosecond}", Some(["000000000"]), vec![NANOSECOND_RANGE]);
385+
check!("{am_pm}", Some(["{am_pm}"]), vec![]);
370386
check!(
371387
"{time_12}",
372-
Some("00:00:00 {am_pm}"),
388+
Some(["00:00:00 {am_pm}"]),
373389
vec![HOUR_12_RANGE, MINUTE_RANGE, SECOND_RANGE],
374390
);
375391
check!(
376392
"{time_short}",
377-
Some("00:00"),
393+
Some(["00:00"]),
378394
vec![HOUR_RANGE, MINUTE_RANGE],
379395
);
380396
check!(
381397
"{time}",
382-
Some("00:00:00"),
398+
Some(["00:00:00"]),
383399
vec![HOUR_RANGE, MINUTE_RANGE, SECOND_RANGE],
384400
);
385401
check!(
386402
"{tz_offset}",
387-
Some("{begin_sign}00:00"),
403+
Some(["{begin_sign}00:00"]),
388404
vec![HOUR_RANGE, MINUTE_RANGE],
389405
);
390406
check!(
391407
"{unix_timestamp}",
392-
None as Option<&str>,
408+
None as Option<Vec<&str>>,
393409
vec![0..=i32::MAX as u64],
394410
);
395411

396412
cfg_if! {
397413
if #[cfg(feature = "source-location")] {
398414
check!(
399415
"{full}",
400-
Some(format!("[0000-00-00 00:00:00.000] [logger-name] [info] [pattern, {}:000] test payload", file!())),
416+
Some([format!("[0000-00-00 00:00:00.000] [logger-name] [info] [pattern, {}:000] test payload", file!())]),
401417
vec![
402418
YEAR_RANGE,
403419
MONTH_RANGE,
@@ -412,7 +428,7 @@ fn test_builtin_patterns() {
412428
} else {
413429
check!(
414430
"{full}",
415-
Some("[0000-00-00 00:00:00.000] [logger-name] [info] test payload"),
431+
Some(["[0000-00-00 00:00:00.000] [logger-name] [info] test payload"]),
416432
vec![
417433
YEAR_RANGE,
418434
MONTH_RANGE,
@@ -426,30 +442,30 @@ fn test_builtin_patterns() {
426442
}
427443
}
428444

429-
check!("{level}", Some("info"), vec![]);
430-
check!("{level_short}", Some("I"), vec![]);
445+
check!("{level}", Some(["info"]), vec![]);
446+
check!("{level_short}", Some(["I"]), vec![]);
431447
cfg_if! {
432448
if #[cfg(feature = "source-location")] {
433-
check!("{source}", Some(format!("{}:000", file!())), vec![SOURCE_RANGE]);
434-
check!("{file_name}", Some("pattern.rs"), vec![]);
435-
check!("{file}", Some(file!()), vec![]);
436-
check!("{line}", Some("000"), vec![SOURCE_RANGE]);
437-
check!("{column}", Some("0"), vec![SOURCE_RANGE]);
438-
check!("{module_path}", Some(module_path!()), vec![]);
449+
check!("{source}", Some([format!("{}:000", file!())]), vec![SOURCE_RANGE]);
450+
check!("{file_name}", Some(["pattern.rs"]), vec![]);
451+
check!("{file}", Some([file!()]), vec![]);
452+
check!("{line}", Some(["000"]), vec![SOURCE_RANGE]);
453+
check!("{column}", Some(["0"]), vec![SOURCE_RANGE]);
454+
check!("{module_path}", Some([module_path!()]), vec![]);
439455
} else {
440-
check!("{source}", Some(""), vec![]);
441-
check!("{file_name}", Some(""), vec![]);
442-
check!("{file}", Some(""), vec![]);
443-
check!("{line}", Some(""), vec![]);
444-
check!("{column}", Some(""), vec![]);
445-
check!("{module_path}", Some(""), vec![]);
456+
check!("{source}", Some([""]), vec![]);
457+
check!("{file_name}", Some([""]), vec![]);
458+
check!("{file}", Some([""]), vec![]);
459+
check!("{line}", Some([""]), vec![]);
460+
check!("{column}", Some([""]), vec![]);
461+
check!("{module_path}", Some([""]), vec![]);
446462
}
447463
}
448-
check!("{logger}", Some("logger-name"), vec![]);
449-
check!("{payload}", Some("test payload"), vec![]);
450-
check!("{pid}", None as Option<&str>, vec![OS_ID_RANGE]);
451-
check!("{tid}", None as Option<&str>, vec![OS_ID_RANGE]);
452-
check!("{eol}", Some("{eol}"), vec![]);
464+
check!("{logger}", Some(["logger-name"]), vec![]);
465+
check!("{payload}", Some(["test payload"]), vec![]);
466+
check!("{pid}", None as Option<Vec<&str>>, vec![OS_ID_RANGE]);
467+
check!("{tid}", None as Option<Vec<&str>>, vec![OS_ID_RANGE]);
468+
check!("{eol}", Some(["{eol}"]), vec![]);
453469
}
454470

455471
#[cfg(feature = "runtime-pattern")]

0 commit comments

Comments
 (0)