Commit 8b7d297f authored by Mao Jiang's avatar Mao Jiang Committed by Tomasz Zawadzki
Browse files

test/nvme_opal: cases for adding token bytestring



Change-Id: I38db2779bbf1495bc8fcfb55d5f1afb666d541b6
Signed-off-by: default avatarMao Jiang <maox.jiang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8287


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent f30f862a
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -123,6 +123,46 @@ test_opal_nvme_security_recv_send_done(void)
	CU_ASSERT(g_ut_sess_ctx == (void *)0xDEADBEEF);
}

static void
test_opal_add_short_atom_header(void)
{
	struct opal_session sess = {};
	int err = 0;

	/* short atom header */
	memset(&sess, 0, sizeof(sess));
	sess.cmd_pos = 0;

	opal_add_token_bytestring(&err, &sess, spdk_opal_uid[UID_SMUID],
				  OPAL_UID_LENGTH);
	CU_ASSERT(sess.cmd[0] & SPDK_SHORT_ATOM_ID);
	CU_ASSERT(sess.cmd[0] & SPDK_SHORT_ATOM_BYTESTRING_FLAG);
	CU_ASSERT((sess.cmd[0] & SPDK_SHORT_ATOM_SIGN_FLAG) == 0);
	CU_ASSERT(sess.cmd_pos == OPAL_UID_LENGTH +  1);
	CU_ASSERT(!memcmp(&sess.cmd[1], spdk_opal_uid, OPAL_UID_LENGTH + 1));

	/* medium atom header */
	memset(&sess, 0, sizeof(sess));
	sess.cmd_pos = 0;

	opal_add_token_bytestring(&err, &sess, spdk_opal_uid[UID_SMUID],
				  0x10);
	CU_ASSERT(sess.cmd[0] & SPDK_SHORT_ATOM_ID);
	CU_ASSERT(sess.cmd[0] & SPDK_MEDIUM_ATOM_BYTESTRING_FLAG);
	CU_ASSERT((sess.cmd[0] & SPDK_MEDIUM_ATOM_SIGN_FLAG) == 0);
	CU_ASSERT(sess.cmd_pos == 0x12);
	CU_ASSERT(!memcmp(&sess.cmd[2], spdk_opal_uid, 0x10));

	/* Invalid length */
	memset(&sess, 0, sizeof(sess));
	err = 0;

	opal_add_token_bytestring(&err, &sess, spdk_opal_uid[UID_SMUID],
				  0x1000);
	CU_ASSERT(err == -ERANGE);
	CU_ASSERT(sess.cmd_pos == 0);
}

int main(int argc, char **argv)
{
	CU_pSuite	suite = NULL;
@@ -133,6 +173,7 @@ int main(int argc, char **argv)

	suite = CU_add_suite("nvme_opal", NULL, NULL);
	CU_ADD_TEST(suite, test_opal_nvme_security_recv_send_done);
	CU_ADD_TEST(suite, test_opal_add_short_atom_header);

	CU_basic_set_mode(CU_BRM_VERBOSE);
	CU_basic_run_tests();