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);
|
gchar const *ed_journal_file_get_gameversion(EDJournalFile *self);
|
||||||
|
|
||||||
|
gint ed_journal_file_compare(EDJournalFile *lhs, EDJournalFile *rhs);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -382,3 +382,14 @@ gchar const *ed_journal_file_get_gameversion(EDJournalFile *self)
|
|||||||
EDJournalFilePrivate *p = ed_journal_file_get_instance_private(self);
|
EDJournalFilePrivate *p = ed_journal_file_get_instance_private(self);
|
||||||
return p->gameversion;
|
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);
|
g_free(full);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p->files = g_list_sort(
|
||||||
|
p->files, (GCompareFunc)ed_journal_file_compare);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
|
||||||
if (loc != NULL) {
|
if (loc != NULL) {
|
||||||
|
@ -40,6 +40,64 @@ static void test_old_filename(void **state)
|
|||||||
g_clear_object(&file);
|
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)
|
static void test_valid_load(void **state)
|
||||||
{
|
{
|
||||||
char const *filename = "Journal.2023-04-18T061507.01.log";
|
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_new_filename),
|
||||||
cmocka_unit_test(test_old_filename),
|
cmocka_unit_test(test_old_filename),
|
||||||
cmocka_unit_test(test_valid_load),
|
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);
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user