Skip to content
Snippets Groups Projects
Commit 3a879098 authored by Netta Peterbursky's avatar Netta Peterbursky
Browse files

Fix LogAnalysis App Versions dump.

(cherry-picked from unsubmitted change in oc-dev ag/2549006 and updated)

Test: DumpsysPackageStatsItemTest, manual: java -classpath out/host/linux-x86/tradefed/loganalysis.jar com.android.loganalysis.LogAnalyzer --bugreport bugreport.txt
Bug: b/38415015
Change-Id: I6bce38a18441712d2f182a0d3c60b7851f87470e
parent a7584eb5
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,8 @@ package com.android.loganalysis.item; ...@@ -19,6 +19,8 @@ package com.android.loganalysis.item;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.Map;
/** An {@link IItem} used to store apps and their version codes and names. */ /** An {@link IItem} used to store apps and their version codes and names. */
public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> { public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -31,7 +33,11 @@ public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> { ...@@ -31,7 +33,11 @@ public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> {
public JSONObject toJson() { public JSONObject toJson() {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
try { try {
object.put(APP_VERSIONS, super.toJson()); JSONObject appVersions = new JSONObject();
for (Map.Entry<String, AppVersionItem> entry : entrySet()) {
appVersions.put(entry.getKey(), entry.getValue().toJson());
}
object.put(APP_VERSIONS, appVersions);
} catch (JSONException e) { } catch (JSONException e) {
// Ignore // Ignore
} }
......
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.loganalysis.item;
import junit.framework.TestCase;
import org.json.JSONException;
import org.json.JSONObject;
/** Unit test for {@link DumpsysPackageStatsItem}. */
public class DumpsysPackageStatsItemTest extends TestCase {
/** Test that {@link DumpsysPackageStatsItem#toJson()} returns correctly. */
public void testToJson() throws JSONException {
DumpsysPackageStatsItem item = new DumpsysPackageStatsItem();
item.put("com.google.android.calculator", new AppVersionItem(73000302, "7.3 (3821978)"));
item.put(
"com.google.android.googlequicksearchbox",
new AppVersionItem(300734793, "6.16.35.26.arm64"));
// Convert to JSON string and back again
JSONObject output = new JSONObject(item.toJson().toString());
assertTrue(output.has(DumpsysPackageStatsItem.APP_VERSIONS));
JSONObject appVersionsJson = output.getJSONObject(DumpsysPackageStatsItem.APP_VERSIONS);
assertEquals(2, appVersionsJson.length());
final JSONObject calcAppVersionJson =
appVersionsJson.getJSONObject("com.google.android.calculator");
assertEquals(73000302, calcAppVersionJson.getInt(AppVersionItem.VERSION_CODE));
assertEquals("7.3 (3821978)", calcAppVersionJson.getString(AppVersionItem.VERSION_NAME));
final JSONObject gsaAppVersionJson =
appVersionsJson.getJSONObject("com.google.android.googlequicksearchbox");
assertEquals(300734793, gsaAppVersionJson.getInt(AppVersionItem.VERSION_CODE));
assertEquals("6.16.35.26.arm64", gsaAppVersionJson.getString(AppVersionItem.VERSION_NAME));
}
}
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
*/ */
package com.android.loganalysis.parser; package com.android.loganalysis.parser;
import com.android.loganalysis.item.DumpsysPackageStatsItem;
import com.android.loganalysis.item.AppVersionItem; import com.android.loganalysis.item.AppVersionItem;
import com.android.loganalysis.item.DumpsysPackageStatsItem;
import junit.framework.TestCase; import junit.framework.TestCase;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment