cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

rtas-test.c (1198B)


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