Files
Paradise/code/modules/unit_tests/log_format.dm
2021-02-03 14:54:53 +00:00

27 lines
1.0 KiB
Plaintext

// This exists so that logs are the designated format. If they arent, it breaks logging tooling. Also 8601 is king.
#define TEST_MESSAGE "Log time format test"
#define TEST_LOG_FILE "data/ci_testing.log"
/proc/generate_test_log_message(time)
var/date_portion = time2text(time, "YYYY-MM-DD")
var/time_portion = time2text(time, "hh:mm:ss")
return "\[[date_portion]T[time_portion]] [TEST_MESSAGE]"
/datum/unit_test/log_format/Run()
// Generate a list of valid log timestamps. It can be the current time, or up to 2 seconds later to account for spurious CI lag
var/valid_lines = list(
"[generate_test_log_message(world.timeofday)]",
"[generate_test_log_message(world.timeofday + 10)]",
"[generate_test_log_message(world.timeofday + 20)]",
)
rustg_log_write(TEST_LOG_FILE, TEST_MESSAGE)
var/list/lines = file2list(TEST_LOG_FILE)
if(!(lines[1] in valid_lines))
Fail("RUSTG log format is not valid 8601 format. Expected '[generate_test_log_message(world.timeofday)]', got '[lines[1]]'")
#undef TEST_MESSAGE
#undef TEST_LOG_FILE