Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/sgx: Add EXPECT_EEXIT() macro

Add EXPECT_EEXIT() macro, which will conditionally print the exception
information, in addition to

EXPECT_EQ(self->run.function, EEXIT);

Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

authored by

Jarkko Sakkinen and committed by
Shuah Khan
b334fb6f 040efd1c

+11 -3
+11 -3
tools/testing/selftests/sgx/main.c
··· 205 205 ret; \ 206 206 }) 207 207 208 + #define EXPECT_EEXIT(run) \ 209 + do { \ 210 + EXPECT_EQ((run)->function, EEXIT); \ 211 + if ((run)->function != EEXIT) \ 212 + TH_LOG("0x%02x 0x%02x 0x%016llx", (run)->exception_vector, \ 213 + (run)->exception_error_code, (run)->exception_addr); \ 214 + } while (0) 215 + 208 216 TEST_F(enclave, unclobbered_vdso) 209 217 { 210 218 uint64_t result = 0; ··· 220 212 EXPECT_EQ(ENCL_CALL(&MAGIC, &result, &self->run, false), 0); 221 213 222 214 EXPECT_EQ(result, MAGIC); 223 - EXPECT_EQ(self->run.function, EEXIT); 215 + EXPECT_EEXIT(&self->run); 224 216 EXPECT_EQ(self->run.user_data, 0); 225 217 } 226 218 ··· 231 223 EXPECT_EQ(ENCL_CALL(&MAGIC, &result, &self->run, true), 0); 232 224 233 225 EXPECT_EQ(result, MAGIC); 234 - EXPECT_EQ(self->run.function, EEXIT); 226 + EXPECT_EEXIT(&self->run); 235 227 EXPECT_EQ(self->run.user_data, 0); 236 228 } 237 229 ··· 253 245 EXPECT_EQ(ENCL_CALL(&MAGIC, &result, &self->run, true), 0); 254 246 255 247 EXPECT_EQ(result, MAGIC); 256 - EXPECT_EQ(self->run.function, EEXIT); 248 + EXPECT_EEXIT(&self->run); 257 249 EXPECT_EQ(self->run.user_data, 0); 258 250 } 259 251