mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 14:02:06 -04:00
KVM: selftests: Generalize check_clocksource() from kvm_clock_test
Several existing x86 selftests need to check that the underlying system clocksource is TSC or based on TSC but every test implements its own check. As a first step towards unification, extract check_clocksource() from kvm_clock_test and split it into two functions: arch-neutral 'sys_get_cur_clocksource()' and x86-specific 'sys_clocksource_is_tsc()'. Fix a couple of pre-existing issues in kvm_clock_test: memory leakage in check_clocksource() and using TEST_ASSERT() instead of TEST_REQUIRE(). The change also makes the test fail when system clocksource can't be read from sysfs. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Link: https://lore.kernel.org/r/20240109141121.1619463-2-vkuznets@redhat.com [sean: eliminate if-elif pattern just to set a bool true] Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
committed by
Sean Christopherson
parent
c2a449a30f
commit
e440c5f2e3
@@ -392,3 +392,28 @@ char *strdup_printf(const char *fmt, ...)
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
#define CLOCKSOURCE_PATH "/sys/devices/system/clocksource/clocksource0/current_clocksource"
|
||||
|
||||
char *sys_get_cur_clocksource(void)
|
||||
{
|
||||
char *clk_name;
|
||||
struct stat st;
|
||||
FILE *fp;
|
||||
|
||||
fp = fopen(CLOCKSOURCE_PATH, "r");
|
||||
TEST_ASSERT(fp, "failed to open clocksource file, errno: %d", errno);
|
||||
|
||||
TEST_ASSERT(!fstat(fileno(fp), &st), "failed to stat clocksource file, errno: %d",
|
||||
errno);
|
||||
|
||||
clk_name = malloc(st.st_size);
|
||||
TEST_ASSERT(clk_name, "failed to allocate buffer to read file");
|
||||
|
||||
TEST_ASSERT(fgets(clk_name, st.st_size, fp), "failed to read clocksource file: %d",
|
||||
ferror(fp));
|
||||
|
||||
fclose(fp);
|
||||
|
||||
return clk_name;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user