1eeddd59fSLaurent Vivier #include "qemu/osdep.h" 2eeddd59fSLaurent Vivier #include "qemu/cutils.h" 3a2ce7dbdSPaolo Bonzini #include "libqos/libqtest.h" 4eeddd59fSLaurent Vivier 5eeddd59fSLaurent Vivier #include "libqos/libqos-spapr.h" 6eeddd59fSLaurent Vivier #include "libqos/rtas.h" 7eeddd59fSLaurent Vivier 8eeddd59fSLaurent Vivier static void test_rtas_get_time_of_day(void) 9eeddd59fSLaurent Vivier { 10eeddd59fSLaurent Vivier QOSState *qs; 11eeddd59fSLaurent Vivier struct tm tm; 12eeddd59fSLaurent Vivier uint32_t ns; 13eeddd59fSLaurent Vivier uint64_t ret; 14eeddd59fSLaurent Vivier time_t t1, t2; 15eeddd59fSLaurent Vivier 16eeddd59fSLaurent Vivier qs = qtest_spapr_boot("-machine pseries"); 17eeddd59fSLaurent Vivier 18eeddd59fSLaurent Vivier t1 = time(NULL); 19eb5937baSPaolo Bonzini ret = qrtas_get_time_of_day(qs->qts, &qs->alloc, &tm, &ns); 20eeddd59fSLaurent Vivier g_assert_cmpint(ret, ==, 0); 21eeddd59fSLaurent Vivier t2 = mktimegm(&tm); 22eeddd59fSLaurent Vivier g_assert(t2 - t1 < 5); /* 5 sec max to run the test */ 23eeddd59fSLaurent Vivier 2461ae5cf3SLaurent Vivier qtest_shutdown(qs); 25eeddd59fSLaurent Vivier } 26eeddd59fSLaurent Vivier 27eeddd59fSLaurent Vivier int main(int argc, char *argv[]) 28eeddd59fSLaurent Vivier { 29eeddd59fSLaurent Vivier const char *arch = qtest_get_arch(); 30eeddd59fSLaurent Vivier 31eeddd59fSLaurent Vivier g_test_init(&argc, &argv, NULL); 32eeddd59fSLaurent Vivier 33eeddd59fSLaurent Vivier if (strcmp(arch, "ppc64")) { 34*64ed6f92SPaolo Bonzini g_printerr("RTAS requires qemu-system-ppc64\n"); 35eeddd59fSLaurent Vivier exit(EXIT_FAILURE); 36eeddd59fSLaurent Vivier } 37eeddd59fSLaurent Vivier qtest_add_func("rtas/get-time-of-day", test_rtas_get_time_of_day); 38eeddd59fSLaurent Vivier 39eeddd59fSLaurent Vivier return g_test_run(); 40eeddd59fSLaurent Vivier } 41