)]}'
{
  "log": [
    {
      "commit": "3bd7187267cb1166bd665cb1c1fd1fd40b2af645",
      "tree": "1238e91e0ec5fa4ae40d77282a8ac107fff5dedb",
      "parents": [
        "17efe6be8502069b18cb9605e054d10be8afebd7"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Oct 25 17:04:25 2017 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Oct 27 12:02:54 2017 -0700"
      },
      "message": "limit the verbosity of app crash failure message\n\n- reporting full dropbox content for all detected crashes leads\n  to overly verbose test failure message\n\nBug: 67002148\nTest: http://sponge/4ff3ccb5-c455-45e2-9614-d3527e1f711d\nChange-Id: Ic2cd2ba4ce2af0954f186b196c18cc76c19f2007\n"
    },
    {
      "commit": "a5fe0de1a8bf6f678bd56e96eda94a93ced5ab3d",
      "tree": "ba39df55b61d02bb3c799480980e54db4ef1b086",
      "parents": [
        "4de7ab5cb14846d9b416a274b4371a8f5c09d160"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Sep 28 18:11:19 2017 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sat Sep 30 13:28:40 2017 -0700"
      },
      "message": "revamp app compat test harness\n\n- migrate away from deprecated JUnit3 paradigm\n- scan dropbox entries for app errors, instead of probing\n  task list\n- use IActivityController to suppress crash dialogs and record\n  detected app errors\n- use combined dropbox and activity controller detected errors\n  to determine app errors\n\nBug: 67002148\nTest: run harness against apps known to crash\nChange-Id: If108cfdc7474a13e24f0d8350a7cbf99e3b51c46\n"
    },
    {
      "commit": "37e9a28262175e355b32b6c36e2983881b432c4e",
      "tree": "daf20d8578cdc5f7ebf81642cc1607b40d99c5f7",
      "parents": [
        "641160b7d46734a93b3d072adbd14fc83bf808ad"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 13 15:53:11 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 15 09:10:13 2017 +0100"
      },
      "message": "Fix dependencies of packages that target earlier releases\n\nA previous change added legacy-android-test as a static dependency to\nall packages that build against the current, test_current or\nsystem_current and failed to compile when the junit and android.test\nclasses were removed from the API. Unfortunately, those changes did not\ntake into account that some of those packages target earlier API\nversions and so will always have the classes available at runtime.\n\nThis change replaces those static dependencies with dynamic dependencies\nfor any package that targets an earlier API version. The file changes\nwere made automatically by a tool that constructed and then analyzed a\nfull dependency graph of all the Android Java modules. The individual\nchanges were checked manually to ensure that the changes matched the\nintent. The affected modules were built against an API with the junit\nand android.test classes removed. Any issues found during this process\nresulted in either the tool being updated to address the issue or a\nseparate change being made to fix an existing problem with the build. A\nsample of the affected packages were run to ensure that they worked as\nexpected at runtime; no issues were found during testing.\n\nThe following change descriptions were generated automatically and so\nmay be a little repetitive. They are provided to give the reviewer\nenough information to check the comments match what has actually been\nchanged and check the reasoning behind the changes.\n\n* packages/SettingsProvider/test/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because SettingsProviderTest\u0027s manifest file (AndroidManifest.xml)\n    targets API level 21 and dynamically includes the\n    android.test.runner library at runtime so there is no point in\n    statically including the classes.\n\n    Added \u0027legacy-android-test\u0027 to LOCAL_JAVA_LIBRARIES because module\n    SettingsProviderTest uses classes from package android.test\n    (possible indirectly) and needs them available at compile time.\n\n    Dependency \u0027legacy-android-test\u0027 is used instead of\n    \u0027android.test.runner\u0027 because the latter will conflict with\n    dependencies on junit.\n\n* services/tests/servicestests/Android.mk\n    Replaced \u0027android.test.runner\u0027 with \u0027android.test.mock\u0027 and\n    \u0027legacy-android-test\u0027 in LOCAL_JAVA_LIBRARIES because module\n    FrameworksServicesTests uses classes from packages android.test and\n    android.test.mock (possible indirectly) and needs them available at\n    compile time.\n\n    Dependency \u0027legacy-android-test\u0027 is used instead of\n    \u0027android.test.runner\u0027 because the latter will conflict with\n    dependencies on junit.\n\n    They were not added to LOCAL_STATIC_JAVA_LIBRARIES because\n    FrameworksServicesTests\u0027s manifest file (AndroidManifest.xml)\n    targets API level 26 and uses the android.test.runner library which\n    will provide the classes dynamically at runtime.\n\n    Dependency \u0027android.test.mock.sdk\u0027 is used instead of\n    \u0027android.test.mock\u0027 because module FrameworksServicesTests builds\n    against internal jars not the API and so should use libraries that\n    build against internal jars not the API.\n\n* tests/AppLaunch/Android.mk\n    Replaced \u0027android.test.runner\u0027 with \u0027legacy-android-test\u0027 in\n    LOCAL_JAVA_LIBRARIES because module AppLaunch uses classes from\n    package android.test (possible indirectly) and needs them available\n    at compile time.\n\n    Dependency \u0027legacy-android-test\u0027 is used instead of\n    \u0027android.test.runner\u0027 because the latter will conflict with\n    dependencies on junit.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because AppLaunch\u0027s manifest file (AndroidManifest.xml) targets API\n    level 24 and dynamically includes the android.test.runner library\n    at runtime so there is no point in statically including the\n    classes.\n\n* tests/Camera2Tests/SmartCamera/SimpleCamera/tests/Android.mk\n    Replaced \u0027android.test.runner\u0027 with \u0027legacy-android-test\u0027 in\n    LOCAL_JAVA_LIBRARIES because module SmartCamera-tests uses classes\n    from package android.test (possible indirectly) and needs them\n    available at compile time.\n\n    Dependency \u0027legacy-android-test\u0027 is used instead of\n    \u0027android.test.runner\u0027 because the latter will conflict with\n    dependencies on junit.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because SmartCamera-tests\u0027s manifest file (AndroidManifest.xml)\n    targets API level 17 and dynamically includes the\n    android.test.runner library at runtime so there is no point in\n    statically including the classes.\n\n* tests/Compatibility/Android.mk\n    Replaced \u0027android.test.runner\u0027 with \u0027legacy-android-test\u0027 in\n    LOCAL_JAVA_LIBRARIES because module AppCompatibilityTest uses\n    classes from package android.test (possible indirectly) and needs\n    them available at compile time.\n\n    Dependency \u0027legacy-android-test\u0027 is used instead of\n    \u0027android.test.runner\u0027 because the latter will conflict with\n    dependencies on junit.\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because AppCompatibilityTest\u0027s manifest file (AndroidManifest.xml)\n    targets API level 21 and dynamically includes the\n    android.test.runner library at runtime so there is no point in\n    statically including the classes.\n\nBug: 30188076\nTest: make checkbuild and ran a sample of tests\nChange-Id: I3d183a96bf87437028a2d4b774d311e40349f4d0\n"
    },
    {
      "commit": "8aeb59ebcd50a510d024dc082fa17b192074c63d",
      "tree": "b7f3e92f4eebc63df03fd63d35b0eafc18ccc81c",
      "parents": [
        "57b8eb3da0c4692ac4f39a9c73aa090af475d14a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jan 10 12:08:23 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 18 16:39:34 2017 +0000"
      },
      "message": "Prepare for removal of legacy-test from default targets\n\nIn preparation for removing junit classes from the Android API\nthe legacy-test target will be removed from the\nTARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit\ndependencies on junit and/or legacy-android-test to ensure that\nmodules will compile properly once it is removed.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I13e88297731253420e4e5f5291d503f13a39a156\n"
    },
    {
      "commit": "6ac0c8c5faaa2fdf56a533a6a3452d53850809ee",
      "tree": "c5c64242918f8495a1bd59d25e49726f8e4a015c",
      "parents": [
        "3aeb5f848eee2c6de9bb49c9dcc7ca5127ef7c1e"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 28 13:22:28 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 28 20:26:37 2015 +0000"
      },
      "message": "lock device orientation during app compatibility test\n\nDevices on test benches are usually held sideways, which leads to app\nrotation during launch. While it\u0027s useful to identify such issue from an\napp perspective, the app compatibility test should be isolated from such\nnoise for the purpose of the testing for basic level of compatibility.\n\nChange-Id: I403f96e5d8512ca6a17b05a83d69f4b02f760a32\n"
    },
    {
      "commit": "4f486ee6963c52719a4420dc3dc8ff02519a3599",
      "tree": "07eed759f6f578f53fd473069888b7da9a942ae8",
      "parents": [
        "da1b398173a94e94c61a0d186c7dc0ef2a7bd060"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 26 13:54:34 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 26 18:26:46 2015 -0700"
      },
      "message": "don\u0027t report missing launch intent as failure\n\nSome apks includes widgets and does not have a launchable\nactivity. The inclusion of such apk for launching is an issue\nwith test configuration, not test failure.\n\nAlso logging intent used for app package for debugging purpose.\n\nChange-Id: Ibca05757a401ea036e9910d8580d7cafd356567c\n"
    },
    {
      "commit": "9f521c9b17660959d8c1b6af3f8658b6b52a553c",
      "tree": "a409e92c680a2ecde4db5408b900538e50b0365e",
      "parents": [
        "47e745c9786f757c2351e7192b7cd76527b95861"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon May 25 12:09:12 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon May 25 12:10:36 2015 -0700"
      },
      "message": "update app compatibility post launch detection\n\ndecide if the app is still running after launch by checking\nrunning tasks and look for a task with base activity belonging\nto the package launched.\n\nChange-Id: Ibb3894e765ccbca62f803decc3c1c1f36dc2d454\n"
    },
    {
      "commit": "765e00af5b769aff89300a167f545cac2088b1f1",
      "tree": "b9d2883cf27da04d4537d01aeee96b7511839730",
      "parents": [
        "e1a1d2e85a3f0626ae13322998fd45a1eb4a49d7"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri May 08 17:10:29 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri May 08 17:10:29 2015 -0700"
      },
      "message": "allow top sleeping state in app process verification\n\nThis happens when an app is launched but has a dialog shown on\ntop of it. Typical reason is a licensing prompt of sorts.\n\nChange-Id: Id73f45f54767b869873c62f13aeeb470c1a5cd81\n"
    },
    {
      "commit": "34092cf80a7402a299ee91a12c5e05b7655169b1",
      "tree": "6458f9a5183eafcb30fd504b6e9f3312fb283e28",
      "parents": [
        "9132c5ab0746f56909ed5630a6e93c9fadefabd0"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 07 10:51:29 2015 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu May 07 11:48:33 2015 -0700"
      },
      "message": "improve app crash detection in compatibility test\n\nIn addition to ensuring that process exists, we also need to\ncheck that it\u0027s the right state. Because crashed foreground\nactivity can still get started as background service.\n\nBug: 20899208\nChange-Id: I101e556ce757af1afb66686827c5851dd6fda620\n"
    },
    {
      "commit": "57e7443d9de2453c150776a318107ee830abe722",
      "tree": "35e679ec6f290242ba6601f919f0dbc764418120",
      "parents": [
        "57baee2e12d1102372153cb4a66ff151c5cc855c"
      ],
      "author": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Apr 09 12:32:33 2015 -0700"
      },
      "committer": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Apr 09 12:35:49 2015 -0700"
      },
      "message": "Add permission for AppCompatibilityTest.\n\nBug: 20134812\nChange-Id: Iaf9a9963a16af1e2bb157159648db70666a33c48\n"
    },
    {
      "commit": "6bd30ee1a252e41a3fcdcb1f11dc031da5895698",
      "tree": "9dd9211eff4430e79a7deeefb1af84c9281237a1",
      "parents": [
        "9cf01b63cb0023aec0e05b1ce050ff572532b876"
      ],
      "author": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Wed Oct 01 12:47:25 2014 -0700"
      },
      "committer": {
        "name": "Bingyan Liu",
        "email": "wsmlby@google.com",
        "time": "Wed Oct 01 20:57:55 2014 +0000"
      },
      "message": "Throw error when no intent can be found\n\nbug: 17396762\n\nChange-Id: I10502d5d1e2332d9e6820ee645234c125e937b7a"
    },
    {
      "commit": "e87cc9a2f29567747c0ea92756f2b579550016c7",
      "tree": "26291b31e4575223afb2b83b8ae32d9036592880",
      "parents": [
        "b5dc5f6b555dd747bb4bc51bf5fe64e8a4aa4093"
      ],
      "author": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Sep 18 13:33:18 2014 -0700"
      },
      "committer": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Thu Sep 18 14:09:17 2014 -0700"
      },
      "message": "Add leanback support to AppCompatiblityTest\n\nChange-Id: Ia9da14b8551c4ec5834a047f0792a5a213a3ac04\n"
    },
    {
      "commit": "dd806b0ed3d7bda6830067bf342417e9bce495d9",
      "tree": "68dda7e668f7bce36646f6b9344f96d6875f04c7",
      "parents": [
        "329a406ed9b7349e7bdba083c7d768264336ace2"
      ],
      "author": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Tue Sep 09 16:06:50 2014 -0700"
      },
      "committer": {
        "name": "wsmlby",
        "email": "wsmlby@google.com",
        "time": "Tue Sep 09 16:10:12 2014 -0700"
      },
      "message": "Fix AppCompatibility test for different process name of one package.\n\nChange-Id: Ic30e5ee81fe6ea82e88d2c5541dc9fa9eba71043\n"
    },
    {
      "commit": "dfe1bdcf43720e65e01b62fbf7f080717c02bce8",
      "tree": "2cb920388a4c008a3803da59387e15b3acb10032",
      "parents": [
        "b1e1dbfb36b658bd2710fedf8c0381a5d89fa302"
      ],
      "author": {
        "name": "Maxim Siniavine",
        "email": "siniavine@google.com",
        "time": "Thu Aug 07 18:48:46 2014 -0700"
      },
      "committer": {
        "name": "Maxim Siniavine",
        "email": "siniavine@google.com",
        "time": "Thu Aug 07 18:48:46 2014 -0700"
      },
      "message": "Improve error detection in app compitibility test\n\nChange-Id: I3ee02e41b835715d1b6aaf8048fbb16a6bd00b8a\n"
    },
    {
      "commit": "14c716be79b0135f6e0a22e22f432f5aacde2f21",
      "tree": "00d5b7d2672e1d68eecbc915056acfdf8d95dabc",
      "parents": [
        "f0e8c78a11c43f23ea314166707039e2c4b5361f"
      ],
      "author": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Tue Apr 30 15:58:04 2013 -0700"
      },
      "committer": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Wed May 01 07:54:48 2013 -0700"
      },
      "message": "Make sure the app is still app after launching.\nBug:8755950\n\nChange-Id: Ie30d84cb94787d8b2e7bdc65e329a311581f4a3f\n"
    },
    {
      "commit": "85478b59722837ed1bec447b2920f2f7111b57ea",
      "tree": "9bd736f1eed08d6f5bebaf9fcefe9232c4c05965",
      "parents": [
        "d9621f867027dedc47df50c8ff4bf6f67c188ea4"
      ],
      "author": {
        "name": "Maxim Siniavine",
        "email": "siniavine@google.com",
        "time": "Wed Apr 10 11:57:57 2013 -0700"
      },
      "committer": {
        "name": "Maxim Siniavine",
        "email": "siniavine@google.com",
        "time": "Wed Apr 10 12:14:11 2013 -0700"
      },
      "message": "Skip apps without launch intent.\n\nIf an app from the apk cannot be launched then skip it in compatibility\ntest, rather than generate a null pointer exception.\n\nChange-Id: I252031f249bfe25282b10394889ab8c5506cabcf\n"
    },
    {
      "commit": "fea39c3755075a2f3484f3197d93f7d42c818d67",
      "tree": "89ee581954efdbaf15881a11b56ddd2b2fd3f401",
      "parents": [
        "122b2c32dea573a3efbd0d608a70b7cd169d99dd"
      ],
      "author": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Mon Apr 23 16:06:58 2012 -0700"
      },
      "committer": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Tue May 01 17:30:09 2012 -0700"
      },
      "message": "App Compatibility test. Launches a given app and detects crashes or ANRs.\n\nChange-Id: I504868ca2b7785849960be287b8d92ca3055b9ff\n"
    }
  ]
}
