144 lines
3.6 KiB
C
144 lines
3.6 KiB
C
#include <stdarg.h>
|
|
#include <setjmp.h>
|
|
#include <stddef.h>
|
|
#include <cmocka.h>
|
|
|
|
#include <stdio.h>
|
|
#include <edapi/journal/file.h>
|
|
|
|
static void test_new_filename(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);
|
|
|
|
g_clear_object(&file);
|
|
}
|
|
|
|
static void test_old_filename(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);
|
|
|
|
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";
|
|
|
|
FILE *F = fopen(filename, "w");
|
|
|
|
assert_non_null(F);
|
|
|
|
fprintf(F, "{ \"timestamp\":\"2023-04-18T04:14:56Z\", "
|
|
"\"event\":\"Fileheader\", \"part\":1, "
|
|
"\"language\":\"English/UK\", \"Odyssey\":true, "
|
|
"\"gameversion\":\"4.0.0.1477\", \"build\":\"r291050/r0 \" }\n"
|
|
);
|
|
|
|
fclose(F);
|
|
|
|
EDJournalFile *file = NULL;
|
|
EDErrorCode ret = 0;
|
|
GError *error = NULL;
|
|
|
|
file = ed_journal_file_new();
|
|
assert_non_null(file);
|
|
|
|
ret = ed_journal_file_open(file, filename, &error);
|
|
|
|
assert_null(error);
|
|
assert_int_equal(ret, ed_error_success);
|
|
|
|
g_clear_object(&file);
|
|
}
|
|
|
|
int main(int ac, char **av)
|
|
{
|
|
static const struct CMUnitTest tests[] = {
|
|
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);
|
|
}
|