| Index: components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploaderImplTest.java
|
| diff --git a/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploaderImplTest.java b/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploaderImplTest.java
|
| index df5d6d50765efa5a9987dc325633aaadfc5fd3c2..5db1769758b47c2425c31e20dbb415a0fe24e8d5 100644
|
| --- a/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploaderImplTest.java
|
| +++ b/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploaderImplTest.java
|
| @@ -45,16 +45,16 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| MinidumpUploader minidumpUploader =
|
| new TestMinidumpUploaderImpl(getExistingCacheDir(), permManager);
|
|
|
| - File firstFile = createMinidumpFileInCrashDir("1_abc.dmp0");
|
| - File secondFile = createMinidumpFileInCrashDir("12_abc.dmp0");
|
| + File firstFile = createMinidumpFileInCrashDir("1_abc.dmp0.try0");
|
| + File secondFile = createMinidumpFileInCrashDir("12_abc.dmp0.try0");
|
| String triesBelowMaxString = ".try" + (MinidumpUploaderImpl.MAX_UPLOAD_TRIES_ALLOWED - 1);
|
| String maxTriesString = ".try" + MinidumpUploaderImpl.MAX_UPLOAD_TRIES_ALLOWED;
|
| File justBelowMaxTriesFile =
|
| createMinidumpFileInCrashDir("belowmaxtries.dmp0" + triesBelowMaxString);
|
| File maxTriesFile = createMinidumpFileInCrashDir("maxtries.dmp0" + maxTriesString);
|
|
|
| - File expectedFirstFile = new File(mCrashDir, firstFile.getName() + ".try1");
|
| - File expectedSecondFile = new File(mCrashDir, secondFile.getName() + ".try1");
|
| + File expectedFirstFile = new File(mCrashDir, "1_abc.dmp0.try1");
|
| + File expectedSecondFile = new File(mCrashDir, "12_abc.dmp0.try1");
|
| File expectedJustBelowMaxTriesFile = new File(mCrashDir,
|
| justBelowMaxTriesFile.getName().replace(triesBelowMaxString, maxTriesString));
|
|
|
| @@ -94,8 +94,8 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| MinidumpUploader minidumpUploader = createCallableListMinidumpUploader(
|
| callables, permManager.isUsageAndCrashReportingPermittedByUser());
|
|
|
| - File firstFile = createMinidumpFileInCrashDir("firstFile.dmp0");
|
| - File secondFile = createMinidumpFileInCrashDir("secondFile.dmp0");
|
| + File firstFile = createMinidumpFileInCrashDir("firstFile.dmp0.try0");
|
| + File secondFile = createMinidumpFileInCrashDir("secondFile.dmp0.try0");
|
|
|
| MinidumpUploadTestUtility.uploadMinidumpsSync(
|
| minidumpUploader, true /* expectReschedule */);
|
| @@ -104,18 +104,39 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| File expectedSecondFile;
|
| // Not sure which minidump will fail and which will succeed, so just ensure one was uploaded
|
| // and the other one failed.
|
| - if (new File(mCrashDir, firstFile.getName() + ".try1").exists()) {
|
| - expectedSecondFile = new File(mCrashDir, secondFile.getName().replace(".dmp", ".up"));
|
| + if (new File(mCrashDir, "firstFile.dmp0.try1").exists()) {
|
| + expectedSecondFile = new File(mCrashDir, "secondFile.up0.try0");
|
| } else {
|
| - File uploadedFirstFile =
|
| - new File(mCrashDir, firstFile.getName().replace(".dmp", ".up"));
|
| + File uploadedFirstFile = new File(mCrashDir, "firstFile.up0.try0");
|
| assertTrue(uploadedFirstFile.exists());
|
| - expectedSecondFile = new File(mCrashDir, secondFile.getName() + ".try1");
|
| + expectedSecondFile = new File(mCrashDir, "secondFile.dmp0.try1");
|
| }
|
| assertTrue(expectedSecondFile.exists());
|
| }
|
|
|
| /**
|
| + * Prior to M60, the ".try0" suffix was optional; however now it is not. This test verifies that
|
| + * the code rejects minidumps that lack this suffix.
|
| + */
|
| + @MediumTest
|
| + public void testInvalidMinidumpNameGeneratesNoUploads() throws IOException {
|
| + MinidumpUploader minidumpUploader =
|
| + new ExpectNoUploadsMinidumpUploaderImpl(getExistingCacheDir());
|
| +
|
| + // Note the omitted ".try0" suffix.
|
| + File fileUsingLegacyNamingScheme = createMinidumpFileInCrashDir("1_abc.dmp0");
|
| +
|
| + MinidumpUploadTestUtility.uploadMinidumpsSync(
|
| + minidumpUploader, false /* expectReschedule */);
|
| +
|
| + // The file should not have been touched, nor should any successful upload files have
|
| + // appeared.
|
| + assertTrue(fileUsingLegacyNamingScheme.exists());
|
| + assertFalse(new File(mCrashDir, "1_abc.up0").exists());
|
| + assertFalse(new File(mCrashDir, "1_abc.up0.try0").exists());
|
| + }
|
| +
|
| + /**
|
| * Test that ensures we can interrupt the MinidumpUploader when uploading minidumps.
|
| */
|
| @MediumTest
|
| @@ -140,10 +161,7 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| MinidumpUploaderImpl minidumpUploader = new StallingMinidumpUploaderImpl(
|
| getExistingCacheDir(), permManager, stopStallingLatch, successfulUpload);
|
|
|
| - File firstFile = createMinidumpFileInCrashDir("123_abc.dmp0");
|
| - File expectedFirstUploadFile =
|
| - new File(mCrashDir, firstFile.getName().replace(".dmp", ".up"));
|
| - File expectedFirstRetryFile = new File(mCrashDir, firstFile.getName() + ".try1");
|
| + File firstFile = createMinidumpFileInCrashDir("123_abc.dmp0.try0");
|
|
|
| // This is run on the UI thread to avoid failing any assertOnUiThread assertions.
|
| MinidumpUploadTestUtility.uploadAllMinidumpsOnUiThread(minidumpUploader,
|
| @@ -169,6 +187,8 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| throw new RuntimeException(e);
|
| }
|
|
|
| + File expectedFirstUploadFile = new File(mCrashDir, "123_abc.up0.try0");
|
| + File expectedFirstRetryFile = new File(mCrashDir, "123_abc.dmp0.try1");
|
| if (successfulUpload) {
|
| // When the upload succeeds we expect the file to be renamed.
|
| assertFalse(firstFile.exists());
|
| @@ -196,7 +216,7 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| new StallingMinidumpUploaderImpl(getExistingCacheDir(), permManager,
|
| stopStallingLatch, false /* successfulUpload */);
|
|
|
| - createMinidumpFileInCrashDir("123_abc.dmp0");
|
| + createMinidumpFileInCrashDir("123_abc.dmp0.try0");
|
|
|
| MinidumpUploader.UploadsFinishedCallback crashingCallback =
|
| new MinidumpUploader.UploadsFinishedCallback() {
|
| @@ -236,6 +256,30 @@ public class MinidumpUploaderImplTest extends CrashTestCase {
|
| };
|
| }
|
|
|
| + private static class ExpectNoUploadsMinidumpUploaderImpl extends MinidumpUploaderImpl {
|
| + public ExpectNoUploadsMinidumpUploaderImpl(File cacheDir) {
|
| + super(new TestMinidumpUploaderDelegate(
|
| + cacheDir, new MockCrashReportingPermissionManager() {
|
| + { mIsEnabledForTests = true; }
|
| + }));
|
| + }
|
| +
|
| + @Override
|
| + public CrashFileManager createCrashFileManager(File crashDir) {
|
| + return new CrashFileManager(crashDir) {
|
| + @Override
|
| + public void cleanOutAllNonFreshMinidumpFiles() {}
|
| + };
|
| + }
|
| +
|
| + @Override
|
| + public MinidumpUploadCallable createMinidumpUploadCallable(
|
| + File minidumpFile, File logfile) {
|
| + fail("No minidumps upload attempts should be initiated by this uploader.");
|
| + return null;
|
| + }
|
| + }
|
| +
|
| /**
|
| * Minidump uploader implementation that stalls minidump-uploading until a given CountDownLatch
|
| * counts down.
|
|
|