Commit b334fb6f authored by Jarkko Sakkinen's avatar Jarkko Sakkinen Committed by Shuah Khan
Browse files

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: default avatarJarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 040efd1c
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -205,6 +205,14 @@ FIXTURE_TEARDOWN(enclave)
		ret; \
	})

#define EXPECT_EEXIT(run) \
	do { \
		EXPECT_EQ((run)->function, EEXIT); \
		if ((run)->function != EEXIT) \
			TH_LOG("0x%02x 0x%02x 0x%016llx", (run)->exception_vector, \
			       (run)->exception_error_code, (run)->exception_addr); \
	} while (0)

TEST_F(enclave, unclobbered_vdso)
{
	uint64_t result = 0;
@@ -212,7 +220,7 @@ TEST_F(enclave, unclobbered_vdso)
	EXPECT_EQ(ENCL_CALL(&MAGIC, &result, &self->run, false), 0);

	EXPECT_EQ(result, MAGIC);
	EXPECT_EQ(self->run.function, EEXIT);
	EXPECT_EEXIT(&self->run);
	EXPECT_EQ(self->run.user_data, 0);
}

@@ -223,7 +231,7 @@ TEST_F(enclave, clobbered_vdso)
	EXPECT_EQ(ENCL_CALL(&MAGIC, &result, &self->run, true), 0);

	EXPECT_EQ(result, MAGIC);
	EXPECT_EQ(self->run.function, EEXIT);
	EXPECT_EEXIT(&self->run);
	EXPECT_EQ(self->run.user_data, 0);
}

@@ -245,7 +253,7 @@ TEST_F(enclave, clobbered_vdso_and_user_function)
	EXPECT_EQ(ENCL_CALL(&MAGIC, &result, &self->run, true), 0);

	EXPECT_EQ(result, MAGIC);
	EXPECT_EQ(self->run.function, EEXIT);
	EXPECT_EEXIT(&self->run);
	EXPECT_EQ(self->run.user_data, 0);
}