api: Translate -EBADMSG as PLDM_ERROR_INVALID_DATA
For some historical reason it was previously mapped to
PLDM_ERROR_INVALID_LENGTH. -EBADMSG typically means the provided
information is inconsistent in some way rather than improperly bounded,
so fix that now.
Change-Id: Ie0fe2c6f9742387f951d5abe81f12f9f7b7aff24
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index daf383f..01f67e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,6 +40,19 @@
The change removes redundant APIs in the process.
+- Returned error values for the following stable APIs have changed their
+ semantics:
+
+ - `decode_event_message_buffer_size_resp()`
+ - `decode_get_numeric_effecter_value_resp()`
+ - `decode_get_sensor_reading_resp()`
+ - `decode_get_state_sensor_readings_resp()`
+ - `decode_numeric_sensor_data()`
+ - `decode_sensor_op_data()`
+
+ No new error values will be returned, but existing error values may be
+ returned under new conditions.
+
### Deprecated
### Removed
diff --git a/src/api.h b/src/api.h
index f99f3ed..643fbff 100644
--- a/src/api.h
+++ b/src/api.h
@@ -27,12 +27,12 @@
assert(err < 0);
switch (err) {
case -EINVAL:
+ case -EBADMSG:
rc = PLDM_ERROR_INVALID_DATA;
break;
case -ENOMSG:
rc = PLDM_ERROR_INVALID_PLDM_TYPE;
break;
- case -EBADMSG:
case -EOVERFLOW:
rc = PLDM_ERROR_INVALID_LENGTH;
break;
diff --git a/tests/dsp/platform.cpp b/tests/dsp/platform.cpp
index d2f7eba..387e70a 100644
--- a/tests/dsp/platform.cpp
+++ b/tests/dsp/platform.cpp
@@ -1095,7 +1095,7 @@
response, responseMsg.size() - hdrSize, &retcompletion_code,
&retcomp_sensorCnt, retstateField.data());
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
}
TEST(GetStateSensorReadings, testGoodEncodeRequest)
@@ -1272,7 +1272,7 @@
rc = decode_event_message_buffer_size_resp(
response, responseMsg.size(), &retCompletionCode, &retMaxBufferSize);
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
}
TEST(PlatformEventMessageSupported, testGoodEncodeRequest)
@@ -2759,7 +2759,7 @@
rc = decode_sensor_op_data(reinterpret_cast<uint8_t*>(sensorData.data()),
sensorDataLength + 1, &presentOpState,
&previousOpState);
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
rc = decode_sensor_op_data(reinterpret_cast<uint8_t*>(sensorData.data()),
@@ -2898,7 +2898,7 @@
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
reinterpret_cast<uint8_t*>(sensorData.data()), sensorDataLength - 1,
&eventState, &previousEventState, &sensorDataSize, &presentReading);
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
struct pldm_sensor_event_numeric_sensor_state* numericSensorData =
(struct pldm_sensor_event_numeric_sensor_state*)sensorData.data();
@@ -2907,14 +2907,14 @@
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
reinterpret_cast<uint8_t*>(sensorData.data()), sensorDataLength,
&eventState, &previousEventState, &sensorDataSize, &presentReading);
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
numericSensorData->sensor_data_size = PLDM_SENSOR_DATA_SIZE_UINT16;
rc = decode_numeric_sensor_data(
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
reinterpret_cast<uint8_t*>(sensorData.data()), sensorDataLength,
&eventState, &previousEventState, &sensorDataSize, &presentReading);
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
}
TEST(GetNumericEffecterValue, testGoodEncodeRequest)
@@ -3176,7 +3176,7 @@
&reteffecter_dataSize, &reteffecter_operState, retpendingValue,
retpresentValue);
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
}
TEST(PldmPDRRepositoryChgEventEvent, testGoodDecodeRequest)
@@ -3582,7 +3582,7 @@
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
&retevent_state, reinterpret_cast<uint8_t*>(&retpresentReading));
- EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
}
TEST(SetEventReceiver, testGoodEncodeRequest)