I get the following with your patches. In file included from s390x/sync_regs_test.c:21: s390x/sync_regs_test.c: In function ‘compare_sregs’: s390x/sync_regs_test.c:41:7: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘__u32’ {aka ‘unsigned int’} [-Wformat=] 41 | "Register " #reg \ | ^~~~~~~~~~~ 42 | " values did not match: 0x%llx, 0x%llx\n", \ 43 | left->reg, right->reg) | ~~~~~~~~~~~~~~~~~~~~~~ 44 | | 45 | static void compare_regs(struct kvm_regs *left, struct kvm_sync_regs *right) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 46 | { | ~ 47 | int i; | ~~~~~~ 48 | | 49 | for (i = 0; i < 16; i++) | ~~~~~~~~~~~~~~~~~~~~~~~~ 50 | REG_COMPARE(gprs[i]); | ~~~~~~~~~~~~~~~~~~~~~ 51 | } | ~ 52 | | 53 | static void compare_sregs(struct kvm_sregs *left, struct kvm_sync_regs *right) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 54 | { | ~ 55 | int i; | ~~~~~~ 56 | | 57 | for (i = 0; i < 16; i++) | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | REG_COMPARE(acrs[i]); | ~~~~~~~~~~~~~~~~~~~ | | | __u32 {aka unsigned int} include/test_util.h:46:43: note: in definition of macro ‘TEST_ASSERT’ 46 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) | ^~~ s390x/sync_regs_test.c:58:3: note: in expansion of macro ‘REG_COMPARE’ 58 | REG_COMPARE(acrs[i]); | ^~~~~~~~~~~ s390x/sync_regs_test.c:41:7: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 7 has type ‘__u32’ {aka ‘unsigned int’} [-Wformat=] 41 | "Register " #reg \ | ^~~~~~~~~~~ 42 | " values did not match: 0x%llx, 0x%llx\n", \ 43 | left->reg, right->reg) | ~~~~~~~~~~~ 44 | | 45 | static void compare_regs(struct kvm_regs *left, struct kvm_sync_regs *right) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 46 | { | ~ 47 | int i; | ~~~~~~ 48 | | 49 | for (i = 0; i < 16; i++) | ~~~~~~~~~~~~~~~~~~~~~~~~ 50 | REG_COMPARE(gprs[i]); | ~~~~~~~~~~~~~~~~~~~~~ 51 | } | ~ 52 | | 53 | static void compare_sregs(struct kvm_sregs *left, struct kvm_sync_regs *right) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 54 | { | ~ 55 | int i; | ~~~~~~ 56 | | 57 | for (i = 0; i < 16; i++) | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | REG_COMPARE(acrs[i]); | ~~~~~~~~~~~~~~~~~~~ | | | __u32 {aka unsigned int} include/test_util.h:46:43: note: in definition of macro ‘TEST_ASSERT’ 46 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) | ^~~ s390x/sync_regs_test.c:58:3: note: in expansion of macro ‘REG_COMPARE’ 58 | REG_COMPARE(acrs[i]); | ^~~~~~~~~~~ s390x/sync_regs_test.c: In function ‘main’: s390x/sync_regs_test.c:158:7: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘__u32’ {aka ‘unsigned int’} [-Wformat=] 158 | "acr0 sync regs value incorrect 0x%llx.", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 159 | run->s.regs.acrs[0]); | ~~~~~~~~~~~~~~~~~~~ | | | __u32 {aka unsigned int} include/test_util.h:46:43: note: in definition of macro ‘TEST_ASSERT’ 46 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) | ^~~ s390x/sync_regs_test.c:158:44: note: format string is defined here 158 | "acr0 sync regs value incorrect 0x%llx.", | ~~~^ | | | long long unsigned int | On 10.03.20 12:58, Andrew Jones wrote: > On Tue, Mar 10, 2020 at 10:45:43AM +0100, Christian Borntraeger wrote: >> On 10.03.20 10:15, Andrew Jones wrote: >>> >>> Andrew Jones (4): >>> fixup! selftests: KVM: SVM: Add vmcall test >>> KVM: selftests: Share common API documentation >>> KVM: selftests: Enable printf format warnings for TEST_ASSERT >>> KVM: selftests: Use consistent message for test skipping >> >> This looks like a nice cleanup but this does not seem to apply >> cleanly on kvm/master or linus/master. Which tree is this based on? > > This is based on kvm/queue. Sorry, I should have mentioned that in > the cover letter. > > Thanks, > drew > >> >>> >>> tools/testing/selftests/kvm/.gitignore | 5 +- >>> .../selftests/kvm/demand_paging_test.c | 6 +- >>> tools/testing/selftests/kvm/dirty_log_test.c | 3 +- >>> .../testing/selftests/kvm/include/kvm_util.h | 100 ++++++++- >>> .../testing/selftests/kvm/include/test_util.h | 5 +- >>> .../selftests/kvm/lib/aarch64/processor.c | 17 -- >>> tools/testing/selftests/kvm/lib/assert.c | 6 +- >>> tools/testing/selftests/kvm/lib/kvm_util.c | 10 +- >>> .../selftests/kvm/lib/kvm_util_internal.h | 48 +++++ >>> .../selftests/kvm/lib/s390x/processor.c | 74 ------- >>> tools/testing/selftests/kvm/lib/test_util.c | 12 ++ >>> .../selftests/kvm/lib/x86_64/processor.c | 196 ++++-------------- >>> tools/testing/selftests/kvm/lib/x86_64/svm.c | 2 +- >>> tools/testing/selftests/kvm/lib/x86_64/vmx.c | 2 +- >>> tools/testing/selftests/kvm/s390x/memop.c | 2 +- >>> .../selftests/kvm/s390x/sync_regs_test.c | 2 +- >>> .../kvm/x86_64/cr4_cpuid_sync_test.c | 2 +- >>> .../testing/selftests/kvm/x86_64/evmcs_test.c | 6 +- >>> .../selftests/kvm/x86_64/hyperv_cpuid.c | 8 +- >>> .../selftests/kvm/x86_64/mmio_warning_test.c | 4 +- >>> .../selftests/kvm/x86_64/platform_info_test.c | 3 +- >>> .../kvm/x86_64/set_memory_region_test.c | 3 +- >>> .../testing/selftests/kvm/x86_64/state_test.c | 4 +- >>> .../selftests/kvm/x86_64/svm_vmcall_test.c | 3 +- >>> .../selftests/kvm/x86_64/sync_regs_test.c | 4 +- >>> .../selftests/kvm/x86_64/vmx_dirty_log_test.c | 2 +- >>> .../kvm/x86_64/vmx_set_nested_state_test.c | 4 +- >>> .../selftests/kvm/x86_64/xss_msr_test.c | 2 +- >>> 28 files changed, 243 insertions(+), 292 deletions(-) >>> >> >