libpdlm: Fix test failure in libpldm_bios_test
All the failures on big endian in libpldm_bios_test are related to the
test cases themselves.
Fix the endian issues.
Tested: Verify the libpldm_bios_test cases pass on both little endian
and big endian systems.
Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I358e083379e972dd9e2ad4f73b8a928008b3c53b
diff --git a/libpldm/tests/libpldm_bios_test.cpp b/libpldm/tests/libpldm_bios_test.cpp
index 7b2ac2a..795daec 100644
--- a/libpldm/tests/libpldm_bios_test.cpp
+++ b/libpldm/tests/libpldm_bios_test.cpp
@@ -54,10 +54,11 @@
sizeof(seconds) + sizeof(minutes) + sizeof(hours) +
sizeof(day),
&month, sizeof(month)));
+ uint16_t yearLe = htole16(year);
EXPECT_EQ(0, memcmp(response->payload + sizeof(response->payload[0]) +
sizeof(seconds) + sizeof(minutes) + sizeof(hours) +
sizeof(day) + sizeof(month),
- &year, sizeof(year)));
+ &yearLe, sizeof(yearLe)));
}
TEST(GetDateTime, testDecodeResponse)
@@ -72,6 +73,7 @@
uint8_t day = 9;
uint8_t month = 7;
uint16_t year = 2020;
+ uint16_t yearLe = htole16(year);
uint8_t retSeconds = 0;
uint8_t retMinutes = 0;
@@ -97,7 +99,7 @@
memcpy(responseMsg.data() + sizeof(completionCode) + sizeof(seconds) +
sizeof(minutes) + sizeof(hours) + sizeof(day) + sizeof(month) +
hdrSize,
- &year, sizeof(year));
+ &yearLe, sizeof(yearLe));
auto response = reinterpret_cast<pldm_msg*>(responseMsg.data());
@@ -217,7 +219,7 @@
EXPECT_EQ(hours, bcd2dec8(req->hours));
EXPECT_EQ(day, bcd2dec8(req->day));
EXPECT_EQ(month, bcd2dec8(req->month));
- EXPECT_EQ(year, le16toh(bcd2dec16(req->year)));
+ EXPECT_EQ(year, bcd2dec16(le16toh(req->year)));
}
TEST(SetDateTime, testBadEncodeRequset)
@@ -263,7 +265,7 @@
uint8_t hours = 0x10;
uint8_t day = 0x11;
uint8_t month = 0x11;
- uint16_t year = htole16(0x2019);
+ uint16_t year = 0x2019;
auto request = reinterpret_cast<struct pldm_msg*>(requestMsg.data());
struct pldm_set_date_time_req* req =
@@ -349,7 +351,7 @@
reinterpret_cast<struct pldm_get_bios_table_resp*>(response->payload);
EXPECT_EQ(completionCode, resp->completion_code);
- EXPECT_EQ(nextTransferHandle, resp->next_transfer_handle);
+ EXPECT_EQ(nextTransferHandle, le32toh(resp->next_transfer_handle));
EXPECT_EQ(transferFlag, resp->transfer_flag);
EXPECT_EQ(0, memcmp(tableData.data(), resp->table_data, tableData.size()));
}
@@ -414,7 +416,7 @@
struct pldm_get_bios_table_req* request =
reinterpret_cast<struct pldm_get_bios_table_req*>(req->payload);
- request->transfer_handle = transferHandle;
+ request->transfer_handle = htole32(transferHandle);
request->transfer_op_flag = transferOpFlag;
request->table_type = tableType;
@@ -442,7 +444,7 @@
struct pldm_get_bios_table_req* request =
reinterpret_cast<struct pldm_get_bios_table_req*>(req->payload);
- request->transfer_handle = transferHandle;
+ request->transfer_handle = htole32(transferHandle);
request->transfer_op_flag = transferOpFlag;
request->table_type = tableType;
@@ -471,7 +473,7 @@
struct pldm_get_bios_table_req* request =
reinterpret_cast<struct pldm_get_bios_table_req*>(req->payload);
- request->transfer_handle = transferHandle;
+ request->transfer_handle = htole32(transferHandle);
request->transfer_op_flag = transferOpFlag;
request->table_type = tableType;
@@ -500,9 +502,9 @@
struct pldm_get_bios_attribute_current_value_by_handle_req*>(
req->payload);
- request->transfer_handle = transferHandle;
+ request->transfer_handle = htole32(transferHandle);
request->transfer_op_flag = transferOpFlag;
- request->attribute_handle = attributehandle;
+ request->attribute_handle = htole16(attributehandle);
auto rc = decode_get_bios_attribute_current_value_by_handle_req(
req, requestMsg.size() - hdrSize, &retTransferHandle,
@@ -533,7 +535,7 @@
struct pldm_get_bios_attribute_current_value_by_handle_req*>(
req->payload);
- request->transfer_handle = transferHandle;
+ request->transfer_handle = htole32(transferHandle);
request->transfer_op_flag = transferOpFlag;
request->attribute_handle = attribute_handle;
@@ -543,7 +545,7 @@
EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
transferHandle = 31;
- request->transfer_handle = transferHandle;
+ request->transfer_handle = htole32(transferHandle);
rc = decode_get_bios_attribute_current_value_by_handle_req(
req, 0, &retTransferHandle, &retTransferOpFlag, &retattribute_handle);
@@ -577,7 +579,7 @@
response->payload);
EXPECT_EQ(completionCode, resp->completion_code);
- EXPECT_EQ(nextTransferHandle, resp->next_transfer_handle);
+ EXPECT_EQ(nextTransferHandle, le32toh(resp->next_transfer_handle));
EXPECT_EQ(transferFlag, resp->transfer_flag);
EXPECT_EQ(
0, memcmp(&attributeData, resp->attribute_data, sizeof(attributeData)));