diff options
| author | Colton Lewis <[email protected]> | 2022-06-15 19:31:16 +0000 | 
|---|---|---|
| committer | Sean Christopherson <[email protected]> | 2022-07-13 18:14:08 -0700 | 
| commit | 594a1c271c159c9c5f0ff2d92ebfda469e94e48d (patch) | |
| tree | a062ae01bd097faa91247eb8119748b27abbdbd3 | |
| parent | ddcb57afd5815191f02aec12f18b4d1bbad5fb9d (diff) | |
KVM: selftests: Fix filename reporting in guest asserts
Fix filename reporting in guest asserts by ensuring the GUEST_ASSERT
macro records __FILE__ and substituting REPORT_GUEST_ASSERT for many
repetitive calls to TEST_FAIL.
Previously filename was reported by using __FILE__ directly in the
selftest, wrongly assuming it would always be the same as where the
assertion failed.
Signed-off-by: Colton Lewis <[email protected]>
Reported-by: Ricardo Koller <[email protected]>
Fixes: 4e18bccc2e5544f0be28fc1c4e6be47a469d6c60
Link: https://lore.kernel.org/r/[email protected]
[sean: convert more TEST_FAIL => REPORT_GUEST_ASSERT instances]
Signed-off-by: Sean Christopherson <[email protected]>
41 files changed, 68 insertions, 102 deletions
| diff --git a/tools/testing/selftests/kvm/aarch64/arch_timer.c b/tools/testing/selftests/kvm/aarch64/arch_timer.c index f68019be67c0..574eb73f0e90 100644 --- a/tools/testing/selftests/kvm/aarch64/arch_timer.c +++ b/tools/testing/selftests/kvm/aarch64/arch_timer.c @@ -231,10 +231,13 @@ static void *test_vcpu_run(void *arg)  		break;  	case UCALL_ABORT:  		sync_global_from_guest(vm, *shared_data); -		TEST_FAIL("%s at %s:%ld\n\tvalues: %lu, %lu; %lu, vcpu: %u; stage: %u; iter: %u", -			(const char *)uc.args[0], __FILE__, uc.args[1], -			uc.args[2], uc.args[3], uc.args[4], vcpu_idx, -			shared_data->guest_stage, shared_data->nr_iter); +		REPORT_GUEST_ASSERT_N(uc, "values: %lu, %lu; %lu, vcpu %u; stage; %u; iter: %u", +				      GUEST_ASSERT_ARG(uc, 0), +				      GUEST_ASSERT_ARG(uc, 1), +				      GUEST_ASSERT_ARG(uc, 2), +				      vcpu_idx, +				      shared_data->guest_stage, +				      shared_data->nr_iter);  		break;  	default:  		TEST_FAIL("Unexpected guest exit\n"); diff --git a/tools/testing/selftests/kvm/aarch64/debug-exceptions.c b/tools/testing/selftests/kvm/aarch64/debug-exceptions.c index b8072b40ccc8..2ee35cf9801e 100644 --- a/tools/testing/selftests/kvm/aarch64/debug-exceptions.c +++ b/tools/testing/selftests/kvm/aarch64/debug-exceptions.c @@ -283,9 +283,7 @@ int main(int argc, char *argv[])  				stage, (ulong)uc.args[1]);  			break;  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld\n\tvalues: %#lx, %#lx", -				(const char *)uc.args[0], -				__FILE__, uc.args[1], uc.args[2], uc.args[3]); +			REPORT_GUEST_ASSERT_2(uc, "values: %#lx, %#lx");  			break;  		case UCALL_DONE:  			goto done; diff --git a/tools/testing/selftests/kvm/aarch64/hypercalls.c b/tools/testing/selftests/kvm/aarch64/hypercalls.c index 5fce4969cbb9..a39da3fe4952 100644 --- a/tools/testing/selftests/kvm/aarch64/hypercalls.c +++ b/tools/testing/selftests/kvm/aarch64/hypercalls.c @@ -291,9 +291,10 @@ static void test_run(void)  			guest_done = true;  			break;  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld\n\tvalues: 0x%lx, 0x%lx; 0x%lx, stage: %u", -			(const char *)uc.args[0], __FILE__, uc.args[1], -			uc.args[2], uc.args[3], uc.args[4], stage); +			REPORT_GUEST_ASSERT_N(uc, "values: 0x%lx, 0x%lx; 0x%lx, stage: %u", +					      GUEST_ASSERT_ARG(uc, 0), +					      GUEST_ASSERT_ARG(uc, 1), +					      GUEST_ASSERT_ARG(uc, 2), stage);  			break;  		default:  			TEST_FAIL("Unexpected guest exit\n"); diff --git a/tools/testing/selftests/kvm/aarch64/psci_test.c b/tools/testing/selftests/kvm/aarch64/psci_test.c index b665b534cb78..f7621f6e938e 100644 --- a/tools/testing/selftests/kvm/aarch64/psci_test.c +++ b/tools/testing/selftests/kvm/aarch64/psci_test.c @@ -94,8 +94,7 @@ static void enter_guest(struct kvm_vcpu *vcpu)  	vcpu_run(vcpu);  	if (get_ucall(vcpu, &uc) == UCALL_ABORT) -		TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], __FILE__, -			  uc.args[1]); +		REPORT_GUEST_ASSERT(uc);  }  static void assert_vcpu_reset(struct kvm_vcpu *vcpu) diff --git a/tools/testing/selftests/kvm/aarch64/vgic_irq.c b/tools/testing/selftests/kvm/aarch64/vgic_irq.c index 046ba4fde648..17417220a083 100644 --- a/tools/testing/selftests/kvm/aarch64/vgic_irq.c +++ b/tools/testing/selftests/kvm/aarch64/vgic_irq.c @@ -782,9 +782,7 @@ static void test_vgic(uint32_t nr_irqs, bool level_sensitive, bool eoi_split)  			run_guest_cmd(vcpu, gic_fd, &inject_args, &args);  			break;  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld\n\tvalues: %#lx, %#lx", -					(const char *)uc.args[0], -					__FILE__, uc.args[1], uc.args[2], uc.args[3]); +			REPORT_GUEST_ASSERT_2(uc, "values: %#lx, %#lx");  			break;  		case UCALL_DONE:  			goto done; diff --git a/tools/testing/selftests/kvm/include/ucall_common.h b/tools/testing/selftests/kvm/include/ucall_common.h index e8af3b4fef6d..ee79d180e07e 100644 --- a/tools/testing/selftests/kvm/include/ucall_common.h +++ b/tools/testing/selftests/kvm/include/ucall_common.h @@ -41,11 +41,12 @@ enum guest_assert_builtin_args {  	GUEST_ASSERT_BUILTIN_NARGS  }; -#define __GUEST_ASSERT(_condition, _condstr, _nargs, _args...) do {    \ -	if (!(_condition))                                              \ -		ucall(UCALL_ABORT, 2 + _nargs,                          \ -			"Failed guest assert: "                         \ -			_condstr, __LINE__, _args);                     \ +#define __GUEST_ASSERT(_condition, _condstr, _nargs, _args...)		\ +do {									\ +	if (!(_condition))						\ +		ucall(UCALL_ABORT, GUEST_ASSERT_BUILTIN_NARGS + _nargs,	\ +		      "Failed guest assert: " _condstr,			\ +		      __FILE__, __LINE__, ##_args);			\  } while (0)  #define GUEST_ASSERT(_condition) \ diff --git a/tools/testing/selftests/kvm/memslot_perf_test.c b/tools/testing/selftests/kvm/memslot_perf_test.c index 5f98489e4f4d..44995446d942 100644 --- a/tools/testing/selftests/kvm/memslot_perf_test.c +++ b/tools/testing/selftests/kvm/memslot_perf_test.c @@ -162,9 +162,7 @@ static void *vcpu_worker(void *__data)  				goto done;  			break;  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld, val = %lu", -					(const char *)uc.args[0], -					__FILE__, uc.args[1], uc.args[2]); +			REPORT_GUEST_ASSERT_1(uc, "val = %lu");  			break;  		case UCALL_DONE:  			goto done; diff --git a/tools/testing/selftests/kvm/s390x/tprot.c b/tools/testing/selftests/kvm/s390x/tprot.c index 015a13056503..a9a0b76e5fa4 100644 --- a/tools/testing/selftests/kvm/s390x/tprot.c +++ b/tools/testing/selftests/kvm/s390x/tprot.c @@ -181,20 +181,18 @@ static void guest_code(void)  	GUEST_SYNC(perform_next_stage(&i, mapped_0));  } -#define HOST_SYNC_NO_TAP(vcpup, stage)						\ -({										\ -	struct kvm_vcpu *__vcpu = (vcpup);					\ -	struct ucall uc;							\ -	int __stage = (stage);							\ -										\ -	vcpu_run(__vcpu);							\ -	get_ucall(__vcpu, &uc);							\ -	if (uc.cmd == UCALL_ABORT) {						\ -		TEST_FAIL("line %lu: %s, hints: %lu, %lu", uc.args[1],		\ -			  (const char *)uc.args[0], uc.args[2], uc.args[3]);	\ -	}									\ -	ASSERT_EQ(uc.cmd, UCALL_SYNC);						\ -	ASSERT_EQ(uc.args[1], __stage);						\ +#define HOST_SYNC_NO_TAP(vcpup, stage)				\ +({								\ +	struct kvm_vcpu *__vcpu = (vcpup);			\ +	struct ucall uc;					\ +	int __stage = (stage);					\ +								\ +	vcpu_run(__vcpu);					\ +	get_ucall(__vcpu, &uc);					\ +	if (uc.cmd == UCALL_ABORT)				\ +		REPORT_GUEST_ASSERT_2(uc, "hints: %lu, %lu");	\ +	ASSERT_EQ(uc.cmd, UCALL_SYNC);				\ +	ASSERT_EQ(uc.args[1], __stage);				\  })  #define HOST_SYNC(vcpu, stage)			\ diff --git a/tools/testing/selftests/kvm/set_memory_region_test.c b/tools/testing/selftests/kvm/set_memory_region_test.c index 47b219dd60e4..0d55f508d595 100644 --- a/tools/testing/selftests/kvm/set_memory_region_test.c +++ b/tools/testing/selftests/kvm/set_memory_region_test.c @@ -88,8 +88,7 @@ static void *vcpu_worker(void *data)  	}  	if (run->exit_reason == KVM_EXIT_IO && cmd == UCALL_ABORT) -		TEST_FAIL("%s at %s:%ld, val = %lu", (const char *)uc.args[0], -			  __FILE__, uc.args[1], uc.args[2]); +		REPORT_GUEST_ASSERT_1(uc, "val = %lu");  	return NULL;  } diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c index d122f1e05cdd..9866a71463d7 100644 --- a/tools/testing/selftests/kvm/steal_time.c +++ b/tools/testing/selftests/kvm/steal_time.c @@ -234,8 +234,7 @@ static void run_vcpu(struct kvm_vcpu *vcpu)  	case UCALL_DONE:  		break;  	case UCALL_ABORT: -		TEST_ASSERT(false, "%s at %s:%ld", (const char *)uc.args[0], -			    __FILE__, uc.args[1]); +		REPORT_GUEST_ASSERT(uc);  	default:  		TEST_ASSERT(false, "Unexpected exit: %s",  			    exit_reason_str(vcpu->run->exit_reason)); diff --git a/tools/testing/selftests/kvm/system_counter_offset_test.c b/tools/testing/selftests/kvm/system_counter_offset_test.c index 862a8e93e070..1c274933912b 100644 --- a/tools/testing/selftests/kvm/system_counter_offset_test.c +++ b/tools/testing/selftests/kvm/system_counter_offset_test.c @@ -83,8 +83,7 @@ static void handle_sync(struct ucall *uc, uint64_t start, uint64_t end)  static void handle_abort(struct ucall *uc)  { -	TEST_FAIL("%s at %s:%ld", (const char *)uc->args[0], -		  __FILE__, uc->args[1]); +	REPORT_GUEST_ASSERT(*uc);  }  static void enter_guest(struct kvm_vcpu *vcpu) diff --git a/tools/testing/selftests/kvm/x86_64/amx_test.c b/tools/testing/selftests/kvm/x86_64/amx_test.c index dab4ca16a2df..b71763b11b78 100644 --- a/tools/testing/selftests/kvm/x86_64/amx_test.c +++ b/tools/testing/selftests/kvm/x86_64/amx_test.c @@ -373,8 +373,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -				  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			switch (uc.args[1]) { diff --git a/tools/testing/selftests/kvm/x86_64/cpuid_test.c b/tools/testing/selftests/kvm/x86_64/cpuid_test.c index 4aa784932597..3767a0cc694b 100644 --- a/tools/testing/selftests/kvm/x86_64/cpuid_test.c +++ b/tools/testing/selftests/kvm/x86_64/cpuid_test.c @@ -132,8 +132,7 @@ static void run_vcpu(struct kvm_vcpu *vcpu, int stage)  	case UCALL_DONE:  		return;  	case UCALL_ABORT: -		TEST_ASSERT(false, "%s at %s:%ld\n\tvalues: %#lx, %#lx", (const char *)uc.args[0], -			    __FILE__, uc.args[1], uc.args[2], uc.args[3]); +		REPORT_GUEST_ASSERT_2(uc, "values: %#lx, %#lx");  	default:  		TEST_ASSERT(false, "Unexpected exit: %s",  			    exit_reason_str(vcpu->run->exit_reason)); diff --git a/tools/testing/selftests/kvm/x86_64/cr4_cpuid_sync_test.c b/tools/testing/selftests/kvm/x86_64/cr4_cpuid_sync_test.c index a80940ac420f..56d8ab92eed4 100644 --- a/tools/testing/selftests/kvm/x86_64/cr4_cpuid_sync_test.c +++ b/tools/testing/selftests/kvm/x86_64/cr4_cpuid_sync_test.c @@ -94,7 +94,7 @@ int main(int argc, char *argv[])  			vcpu_sregs_set(vcpu, &sregs);  			break;  		case UCALL_ABORT: -			TEST_FAIL("Guest CR4 bit (OSXSAVE) unsynchronized with CPUID bit."); +			REPORT_GUEST_ASSERT(uc);  			break;  		case UCALL_DONE:  			goto done; diff --git a/tools/testing/selftests/kvm/x86_64/emulator_error_test.c b/tools/testing/selftests/kvm/x86_64/emulator_error_test.c index bfff2d271c48..3aa3d17f230f 100644 --- a/tools/testing/selftests/kvm/x86_64/emulator_error_test.c +++ b/tools/testing/selftests/kvm/x86_64/emulator_error_test.c @@ -92,8 +92,7 @@ static void process_exit_on_emulation_error(struct kvm_vcpu *vcpu)  static void do_guest_assert(struct ucall *uc)  { -	TEST_FAIL("%s at %s:%ld", (const char *)uc->args[0], __FILE__, -		  uc->args[1]); +	REPORT_GUEST_ASSERT(*uc);  }  static void check_for_guest_assert(struct kvm_vcpu *vcpu) diff --git a/tools/testing/selftests/kvm/x86_64/evmcs_test.c b/tools/testing/selftests/kvm/x86_64/evmcs_test.c index 8dda527cc080..aacad86d90e1 100644 --- a/tools/testing/selftests/kvm/x86_64/evmcs_test.c +++ b/tools/testing/selftests/kvm/x86_64/evmcs_test.c @@ -236,8 +236,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -		      		  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c b/tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c index f6f251ce59e1..b1905d280ef5 100644 --- a/tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c +++ b/tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c @@ -112,7 +112,7 @@ static void enter_guest(struct kvm_vcpu *vcpu)  	case UCALL_DONE:  		return;  	case UCALL_ABORT: -		TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], __FILE__, uc.args[1]); +		REPORT_GUEST_ASSERT(uc);  	default:  		TEST_FAIL("Unhandled ucall: %ld\nexit_reason: %u (%s)",  			  uc.cmd, run->exit_reason, exit_reason_str(run->exit_reason)); diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_clock.c b/tools/testing/selftests/kvm/x86_64/hyperv_clock.c index f7a9e29ff0c7..d576bc8ce823 100644 --- a/tools/testing/selftests/kvm/x86_64/hyperv_clock.c +++ b/tools/testing/selftests/kvm/x86_64/hyperv_clock.c @@ -234,8 +234,7 @@ int main(void)  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -				  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_features.c b/tools/testing/selftests/kvm/x86_64/hyperv_features.c index c05acd78548f..2070ba0d6392 100644 --- a/tools/testing/selftests/kvm/x86_64/hyperv_features.c +++ b/tools/testing/selftests/kvm/x86_64/hyperv_features.c @@ -447,9 +447,7 @@ static void guest_test_msrs_access(void)  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld, MSR = %lx, vector = %lx", -				  (const char *)uc.args[0], __FILE__, -				  uc.args[1], uc.args[2], uc.args[3]); +			REPORT_GUEST_ASSERT_2(uc, "MSR = %lx, vector = %lx");  			return;  		case UCALL_DONE:  			break; @@ -618,9 +616,7 @@ static void guest_test_hcalls_access(void)  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld, arg1 = %lx, arg2 = %lx", -				  (const char *)uc.args[0], __FILE__, -				  uc.args[1], uc.args[2], uc.args[3]); +			REPORT_GUEST_ASSERT_2(uc, "arg1 = %lx, arg2 = %lx");  			return;  		case UCALL_DONE:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_svm_test.c b/tools/testing/selftests/kvm/x86_64/hyperv_svm_test.c index c5cd9835dbd6..b7dc243ab8d5 100644 --- a/tools/testing/selftests/kvm/x86_64/hyperv_svm_test.c +++ b/tools/testing/selftests/kvm/x86_64/hyperv_svm_test.c @@ -145,8 +145,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -				  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/kvm_clock_test.c b/tools/testing/selftests/kvm/x86_64/kvm_clock_test.c index 138455575a11..813ce282cf56 100644 --- a/tools/testing/selftests/kvm/x86_64/kvm_clock_test.c +++ b/tools/testing/selftests/kvm/x86_64/kvm_clock_test.c @@ -71,8 +71,7 @@ static void handle_sync(struct ucall *uc, struct kvm_clock_data *start,  static void handle_abort(struct ucall *uc)  { -	TEST_FAIL("%s at %s:%ld", (const char *)uc->args[0], -		  __FILE__, uc->args[1]); +	REPORT_GUEST_ASSERT(*uc);  }  static void setup_clock(struct kvm_vm *vm, struct test_case *test_case) diff --git a/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c b/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c index feff85e43be3..ea452444f4af 100644 --- a/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c +++ b/tools/testing/selftests/kvm/x86_64/kvm_pv_test.c @@ -137,9 +137,7 @@ static void enter_guest(struct kvm_vcpu *vcpu)  			pr_hcall(&uc);  			break;  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld, vector = %lu", -				  (const char *)uc.args[0], __FILE__, -				  uc.args[1], uc.args[2]); +			REPORT_GUEST_ASSERT_1(uc, "vector = %lu");  			return;  		case UCALL_DONE:  			return; diff --git a/tools/testing/selftests/kvm/x86_64/monitor_mwait_test.c b/tools/testing/selftests/kvm/x86_64/monitor_mwait_test.c index 094c68d744c0..2bf6851b4f42 100644 --- a/tools/testing/selftests/kvm/x86_64/monitor_mwait_test.c +++ b/tools/testing/selftests/kvm/x86_64/monitor_mwait_test.c @@ -100,9 +100,7 @@ int main(int argc, char *argv[])  			testcase = uc.args[1];  			break;  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld, testcase = %lx, vector = %ld", -				  (const char *)uc.args[0], __FILE__, -				  uc.args[1], uc.args[2], uc.args[3]); +			REPORT_GUEST_ASSERT_2(uc, "testcase = %lx, vector = %ld");  			goto done;  		case UCALL_DONE:  			goto done; diff --git a/tools/testing/selftests/kvm/x86_64/set_boot_cpu_id.c b/tools/testing/selftests/kvm/x86_64/set_boot_cpu_id.c index 7ef713fdd0a5..b25d7556b638 100644 --- a/tools/testing/selftests/kvm/x86_64/set_boot_cpu_id.c +++ b/tools/testing/selftests/kvm/x86_64/set_boot_cpu_id.c @@ -65,9 +65,7 @@ static void run_vcpu(struct kvm_vcpu *vcpu)  					stage);  			break;  		case UCALL_ABORT: -			TEST_ASSERT(false, "%s at %s:%ld\n\tvalues: %#lx, %#lx", -						(const char *)uc.args[0], __FILE__, -						uc.args[1], uc.args[2], uc.args[3]); +			REPORT_GUEST_ASSERT_2(uc, "values: %#lx, %#lx");  		default:  			TEST_ASSERT(false, "Unexpected exit: %s",  				    exit_reason_str(vcpu->run->exit_reason)); diff --git a/tools/testing/selftests/kvm/x86_64/state_test.c b/tools/testing/selftests/kvm/x86_64/state_test.c index e2f1f35e51ff..2b0de1598ab8 100644 --- a/tools/testing/selftests/kvm/x86_64/state_test.c +++ b/tools/testing/selftests/kvm/x86_64/state_test.c @@ -190,8 +190,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -			       	  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c index 9c68a47b69e1..d978d1697f5a 100644 --- a/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c +++ b/tools/testing/selftests/kvm/x86_64/svm_int_ctl_test.c @@ -113,7 +113,7 @@ int main(int argc, char *argv[])  	switch (get_ucall(vcpu, &uc)) {  	case UCALL_ABORT: -		TEST_FAIL("%s", (const char *)uc.args[0]); +		REPORT_GUEST_ASSERT(uc);  		break;  		/* NOT REACHED */  	case UCALL_DONE: diff --git a/tools/testing/selftests/kvm/x86_64/svm_nested_soft_inject_test.c b/tools/testing/selftests/kvm/x86_64/svm_nested_soft_inject_test.c index 1c3f457aa3aa..07253e22defd 100644 --- a/tools/testing/selftests/kvm/x86_64/svm_nested_soft_inject_test.c +++ b/tools/testing/selftests/kvm/x86_64/svm_nested_soft_inject_test.c @@ -181,8 +181,7 @@ static void run_test(bool is_nmi)  	switch (get_ucall(vcpu, &uc)) {  	case UCALL_ABORT: -		TEST_FAIL("%s at %s:%ld, vals = 0x%lx 0x%lx 0x%lx", (const char *)uc.args[0], -			  __FILE__, uc.args[1], uc.args[2], uc.args[3], uc.args[4]); +		REPORT_GUEST_ASSERT_3(uc, "vals = 0x%lx 0x%lx 0x%lx");  		break;  		/* NOT REACHED */  	case UCALL_DONE: diff --git a/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c b/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c index e6d7191866a5..d53b1f7abb56 100644 --- a/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c +++ b/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c @@ -58,7 +58,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s", (const char *)uc.args[0]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/triple_fault_event_test.c b/tools/testing/selftests/kvm/x86_64/triple_fault_event_test.c index 5a202ecb8ea0..d1274c097b36 100644 --- a/tools/testing/selftests/kvm/x86_64/triple_fault_event_test.c +++ b/tools/testing/selftests/kvm/x86_64/triple_fault_event_test.c @@ -82,7 +82,7 @@ int main(void)  	case UCALL_DONE:  		break;  	case UCALL_ABORT: -		TEST_FAIL("%s", (const char *)uc.args[0]); +		REPORT_GUEST_ASSERT(uc);  	default:  		TEST_FAIL("Unexpected ucall: %lu", uc.cmd);  	} diff --git a/tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c b/tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c index 3165d3f7e065..22d366c697f7 100644 --- a/tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c +++ b/tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c @@ -79,9 +79,7 @@ static void run_vcpu(struct kvm_vcpu *vcpu, int stage)  	case UCALL_DONE:  		return;  	case UCALL_ABORT: -		TEST_ASSERT(false, "%s at %s:%ld\n" \ -			    "\tvalues: %#lx, %#lx", (const char *)uc.args[0], -			    __FILE__, uc.args[1], uc.args[2], uc.args[3]); +		REPORT_GUEST_ASSERT_2(uc, "values: %#lx, %#lx");  	default:  		TEST_ASSERT(false, "Unexpected exit: %s",  			    exit_reason_str(vcpu->run->exit_reason)); diff --git a/tools/testing/selftests/kvm/x86_64/userspace_io_test.c b/tools/testing/selftests/kvm/x86_64/userspace_io_test.c index 7538d57a41d5..7316521428f8 100644 --- a/tools/testing/selftests/kvm/x86_64/userspace_io_test.c +++ b/tools/testing/selftests/kvm/x86_64/userspace_io_test.c @@ -98,9 +98,7 @@ int main(int argc, char *argv[])  	case UCALL_DONE:  		break;  	case UCALL_ABORT: -		TEST_FAIL("%s at %s:%ld : argN+1 = 0x%lx, argN+2 = 0x%lx", -			  (const char *)uc.args[0], __FILE__, uc.args[1], -			  uc.args[2], uc.args[3]); +		REPORT_GUEST_ASSERT_2(uc, "argN+1 = 0x%lx, argN+2 = 0x%lx");  	default:  		TEST_FAIL("Unknown ucall %lu", uc.cmd);  	} diff --git a/tools/testing/selftests/kvm/x86_64/userspace_msr_exit_test.c b/tools/testing/selftests/kvm/x86_64/userspace_msr_exit_test.c index f84dc37426f5..a4f06370a245 100644 --- a/tools/testing/selftests/kvm/x86_64/userspace_msr_exit_test.c +++ b/tools/testing/selftests/kvm/x86_64/userspace_msr_exit_test.c @@ -400,8 +400,7 @@ static void check_for_guest_assert(struct kvm_vcpu *vcpu)  	if (vcpu->run->exit_reason == KVM_EXIT_IO &&  	    get_ucall(vcpu, &uc) == UCALL_ABORT) { -		TEST_FAIL("%s at %s:%ld", -			  (const char *)uc.args[0], __FILE__, uc.args[1]); +		REPORT_GUEST_ASSERT(uc);  	}  } @@ -610,7 +609,7 @@ static int handle_ucall(struct kvm_vcpu *vcpu)  	switch (get_ucall(vcpu, &uc)) {  	case UCALL_ABORT: -		TEST_FAIL("Guest assertion not met"); +		REPORT_GUEST_ASSERT(uc);  		break;  	case UCALL_SYNC:  		vm_ioctl(vcpu->vm, KVM_X86_SET_MSR_FILTER, &no_filter_deny); diff --git a/tools/testing/selftests/kvm/x86_64/vmx_apic_access_test.c b/tools/testing/selftests/kvm/x86_64/vmx_apic_access_test.c index ccb05ef7234e..d3582cea1258 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_apic_access_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_apic_access_test.c @@ -114,8 +114,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -				  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			apic_access_addr = uc.args[1]; diff --git a/tools/testing/selftests/kvm/x86_64/vmx_close_while_nested_test.c b/tools/testing/selftests/kvm/x86_64/vmx_close_while_nested_test.c index 40c77bb706a1..e69e8963ed08 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_close_while_nested_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_close_while_nested_test.c @@ -74,7 +74,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s", (const char *)uc.args[0]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		default:  			TEST_FAIL("Unknown ucall %lu", uc.cmd); diff --git a/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c b/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c index 215ffa0589d4..f378960299c0 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c @@ -123,8 +123,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -			       	  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			/* diff --git a/tools/testing/selftests/kvm/x86_64/vmx_invalid_nested_guest_state.c b/tools/testing/selftests/kvm/x86_64/vmx_invalid_nested_guest_state.c index 683f4f0a1616..8c854738f2cc 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_invalid_nested_guest_state.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_invalid_nested_guest_state.c @@ -98,7 +98,7 @@ int main(int argc, char *argv[])  	case UCALL_DONE:  		break;  	case UCALL_ABORT: -		TEST_FAIL("%s", (const char *)uc.args[0]); +		REPORT_GUEST_ASSERT(uc);  	default:  		TEST_FAIL("Unexpected ucall: %lu", uc.cmd);  	} diff --git a/tools/testing/selftests/kvm/x86_64/vmx_nested_tsc_scaling_test.c b/tools/testing/selftests/kvm/x86_64/vmx_nested_tsc_scaling_test.c index ff4644038c55..6bfef77b87b7 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_nested_tsc_scaling_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_nested_tsc_scaling_test.c @@ -194,7 +194,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s", (const char *) uc.args[0]); +			REPORT_GUEST_ASSERT(uc);  		case UCALL_SYNC:  			switch (uc.args[0]) {  			case USLEEP: diff --git a/tools/testing/selftests/kvm/x86_64/vmx_preemption_timer_test.c b/tools/testing/selftests/kvm/x86_64/vmx_preemption_timer_test.c index 99e57b0cc2c9..0a8e989d4200 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_preemption_timer_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_preemption_timer_test.c @@ -189,8 +189,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s at %s:%ld", (const char *)uc.args[0], -				  __FILE__, uc.args[1]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; diff --git a/tools/testing/selftests/kvm/x86_64/vmx_tsc_adjust_test.c b/tools/testing/selftests/kvm/x86_64/vmx_tsc_adjust_test.c index e32bfb102699..2e75eef926ca 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_tsc_adjust_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_tsc_adjust_test.c @@ -147,7 +147,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s", (const char *)uc.args[0]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			report(uc.args[1]); diff --git a/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c b/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c index a4a78637c35a..8a5cb800f50e 100644 --- a/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c +++ b/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c @@ -542,7 +542,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s", (const char *)uc.args[0]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC: {  			struct kvm_xen_vcpu_attr rst; diff --git a/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c b/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c index 8b76cade9bcd..88914d48c65e 100644 --- a/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c +++ b/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c @@ -129,7 +129,7 @@ int main(int argc, char *argv[])  		switch (get_ucall(vcpu, &uc)) {  		case UCALL_ABORT: -			TEST_FAIL("%s", (const char *)uc.args[0]); +			REPORT_GUEST_ASSERT(uc);  			/* NOT REACHED */  		case UCALL_SYNC:  			break; |