Fix error handling in StatsEvent
Bug: 143286399 Test: bit FrameworksCoreTests:android.util.StatsEventTest Change-Id: I2159bf138a307e45c44102a8feb7a69d0c793843
This commit is contained in:
@@ -177,7 +177,7 @@ public final class StatsEvent implements Parcelable {
|
||||
* @hide
|
||||
**/
|
||||
@VisibleForTesting
|
||||
public static final int ERROR_ATTRIBUTION_UIDS_TAGS_SIZES_NOT_EQUAL = 0x400;
|
||||
public static final int ERROR_ATTRIBUTION_UIDS_TAGS_SIZES_NOT_EQUAL = 0x1000;
|
||||
|
||||
// Size limits.
|
||||
|
||||
@@ -628,9 +628,9 @@ public final class StatsEvent implements Parcelable {
|
||||
if (0 == mErrorMask) {
|
||||
mBuffer.putByte(POS_NUM_ELEMENTS, (byte) mNumElements);
|
||||
} else {
|
||||
mBuffer.putByte(0, TYPE_ERRORS);
|
||||
mBuffer.putByte(POS_NUM_ELEMENTS, (byte) 3);
|
||||
mPos += mBuffer.putByte(mPos, TYPE_ERRORS);
|
||||
mPos += mBuffer.putInt(mPos, mErrorMask);
|
||||
mBuffer.putByte(POS_NUM_ELEMENTS, (byte) 3);
|
||||
size = mPos;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ public class StatsEventTest {
|
||||
final ByteBuffer buffer =
|
||||
ByteBuffer.wrap(statsEvent.getBytes()).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
assertWithMessage("Root element in buffer is not TYPE_ERRORS")
|
||||
.that(buffer.get()).isEqualTo(StatsEvent.TYPE_ERRORS);
|
||||
assertWithMessage("Root element in buffer is not TYPE_OBJECT")
|
||||
.that(buffer.get()).isEqualTo(StatsEvent.TYPE_OBJECT);
|
||||
|
||||
assertWithMessage("Incorrect number of elements in root object")
|
||||
.that(buffer.get()).isEqualTo(3);
|
||||
@@ -71,6 +71,9 @@ public class StatsEventTest {
|
||||
assertWithMessage("Incorrect atom id")
|
||||
.that(buffer.getInt()).isEqualTo(expectedAtomId);
|
||||
|
||||
assertWithMessage("Third element is not errors type")
|
||||
.that(buffer.get()).isEqualTo(StatsEvent.TYPE_ERRORS);
|
||||
|
||||
final int errorMask = buffer.getInt();
|
||||
|
||||
assertWithMessage("ERROR_NO_ATOM_ID should be the only error in the error mask")
|
||||
|
||||
Reference in New Issue
Block a user