Module Name: src Committed By: gson Date: Wed Dec 15 09:19:28 UTC 2021
Modified Files: src/tests/lib/libc/gen: isqemu.h Log Message: When running the tests under "qemu -accel kvm" on a Linux host, isQEMU_TCG() should return false. Fixes multiple test cases that were failing with "Test case was expecting a failure but none were raised" on that platform. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/tests/lib/libc/gen/isqemu.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/lib/libc/gen/isqemu.h diff -u src/tests/lib/libc/gen/isqemu.h:1.5 src/tests/lib/libc/gen/isqemu.h:1.6 --- src/tests/lib/libc/gen/isqemu.h:1.5 Sun Aug 23 11:00:18 2020 +++ src/tests/lib/libc/gen/isqemu.h Wed Dec 15 09:19:28 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: isqemu.h,v 1.5 2020/08/23 11:00:18 gson Exp $ */ +/* $NetBSD: isqemu.h,v 1.6 2021/12/15 09:19:28 gson Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -72,10 +72,18 @@ isQEMU_TCG(void) { return false; err(EXIT_FAILURE, "sysctl"); } - return strstr(name, "QEMU") != NULL; -#else - return false; + if (strstr(name, "QEMU") == NULL) + return false; + if (sysctlbyname("machdep.hypervisor", name, &len, NULL, 0) == -1) { + if (errno == ENOENT) + return true; + err(EXIT_FAILURE, "sysctl"); + } + if (strcmp(name, "KVM") == 0) + return false; + return true; #endif + return false; } #ifdef TEST