more code
This commit is contained in:
parent
277bc9f249
commit
32d0ec167b
@ -42,6 +42,8 @@ gchar const *ed_journal_file_get_commander(EDJournalFile *self);
|
||||
|
||||
gchar const *ed_journal_file_get_gameversion(EDJournalFile *self);
|
||||
|
||||
gint ed_journal_file_compare(EDJournalFile *lhs, EDJournalFile *rhs);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
||||
|
@ -382,3 +382,14 @@ gchar const *ed_journal_file_get_gameversion(EDJournalFile *self)
|
||||
EDJournalFilePrivate *p = ed_journal_file_get_instance_private(self);
|
||||
return p->gameversion;
|
||||
}
|
||||
|
||||
gint ed_journal_file_compare(EDJournalFile *lhs, EDJournalFile *rhs)
|
||||
{
|
||||
return_if_true(lhs == NULL || rhs == NULL, 0);
|
||||
|
||||
GDateTime *ldate = ed_journal_file_get_datetime(lhs);
|
||||
GDateTime *rdate = ed_journal_file_get_datetime(rhs);
|
||||
return_if_true(ldate == NULL || rdate == NULL, 0);
|
||||
|
||||
return g_date_time_compare(ldate, rdate);
|
||||
}
|
||||
|
@ -136,6 +136,9 @@ static void ed_journal_load_files(EDJournal *self)
|
||||
g_free(full);
|
||||
}
|
||||
|
||||
p->files = g_list_sort(
|
||||
p->files, (GCompareFunc)ed_journal_file_compare);
|
||||
|
||||
done:
|
||||
|
||||
if (loc != NULL) {
|
||||
|
@ -40,6 +40,64 @@ static void test_old_filename(void **state)
|
||||
g_clear_object(&file);
|
||||
}
|
||||
|
||||
static void test_new_datetime(void **state)
|
||||
{
|
||||
char const *filename = "Journal.2023-04-18T061507.01.log";
|
||||
|
||||
EDJournalFile *file = ed_journal_file_new();
|
||||
EDErrorCode ret = 0;
|
||||
GError *error = NULL;
|
||||
|
||||
assert_non_null(file);
|
||||
|
||||
ret = ed_journal_file_open(file, filename, &error);
|
||||
assert_int_equal(ret, ed_error_success);
|
||||
assert_null(error);
|
||||
|
||||
GDateTime *dt = ed_journal_file_get_datetime(file);
|
||||
|
||||
assert_non_null(dt);
|
||||
|
||||
assert_int_equal(g_date_time_get_year(dt), 2023);
|
||||
assert_int_equal(g_date_time_get_month(dt), 04);
|
||||
assert_int_equal(g_date_time_get_day_of_month(dt), 18);
|
||||
|
||||
assert_int_equal(g_date_time_get_hour(dt), 6);
|
||||
assert_int_equal(g_date_time_get_minute(dt), 15);
|
||||
assert_int_equal(g_date_time_get_second(dt), 7);
|
||||
|
||||
g_clear_object(&file);
|
||||
}
|
||||
|
||||
static void test_old_datetime(void **state)
|
||||
{
|
||||
char const *filename = "Journal.230418061507.01.log";
|
||||
|
||||
EDJournalFile *file = ed_journal_file_new();
|
||||
EDErrorCode ret = 0;
|
||||
GError *error = NULL;
|
||||
|
||||
assert_non_null(file);
|
||||
|
||||
ret = ed_journal_file_open(file, filename, &error);
|
||||
assert_int_equal(ret, ed_error_success);
|
||||
assert_null(error);
|
||||
|
||||
GDateTime *dt = ed_journal_file_get_datetime(file);
|
||||
|
||||
assert_non_null(dt);
|
||||
|
||||
assert_int_equal(g_date_time_get_year(dt), 2023);
|
||||
assert_int_equal(g_date_time_get_month(dt), 04);
|
||||
assert_int_equal(g_date_time_get_day_of_month(dt), 18);
|
||||
|
||||
assert_int_equal(g_date_time_get_hour(dt), 6);
|
||||
assert_int_equal(g_date_time_get_minute(dt), 15);
|
||||
assert_int_equal(g_date_time_get_second(dt), 7);
|
||||
|
||||
g_clear_object(&file);
|
||||
}
|
||||
|
||||
static void test_valid_load(void **state)
|
||||
{
|
||||
char const *filename = "Journal.2023-04-18T061507.01.log";
|
||||
@ -77,6 +135,8 @@ int main(int ac, char **av)
|
||||
cmocka_unit_test(test_new_filename),
|
||||
cmocka_unit_test(test_old_filename),
|
||||
cmocka_unit_test(test_valid_load),
|
||||
cmocka_unit_test(test_new_datetime),
|
||||
cmocka_unit_test(test_old_datetime),
|
||||
};
|
||||
|
||||
return cmocka_run_group_tests(tests, NULL, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user