Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.components.minidump_uploader; | 5 package org.chromium.components.minidump_uploader; |
| 6 | 6 |
| 7 import static org.junit.Assert.assertArrayEquals; | 7 import static org.junit.Assert.assertArrayEquals; |
| 8 | 8 |
| 9 import android.os.ParcelFileDescriptor; | 9 import android.os.ParcelFileDescriptor; |
| 10 import android.support.test.filters.MediumTest; | 10 import android.support.test.filters.MediumTest; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 mTmpFile3 = new File(mCrashDir, "abcdefghi" + CrashFileManager.TMP_SUFFI X); | 74 mTmpFile3 = new File(mCrashDir, "abcdefghi" + CrashFileManager.TMP_SUFFI X); |
| 75 mTmpFile3.createNewFile(); | 75 mTmpFile3.createNewFile(); |
| 76 mTmpFile3.setLastModified(mModificationTimestamp); | 76 mTmpFile3.setLastModified(mModificationTimestamp); |
| 77 mModificationTimestamp += 1000; | 77 mModificationTimestamp += 1000; |
| 78 | 78 |
| 79 mDmpFile1 = new File(mCrashDir, "123_abc.dmp0"); | 79 mDmpFile1 = new File(mCrashDir, "123_abc.dmp0"); |
| 80 mDmpFile1.createNewFile(); | 80 mDmpFile1.createNewFile(); |
| 81 mDmpFile1.setLastModified(mModificationTimestamp); | 81 mDmpFile1.setLastModified(mModificationTimestamp); |
| 82 mModificationTimestamp += 1000; | 82 mModificationTimestamp += 1000; |
| 83 | 83 |
| 84 mDmpFile2 = new File(mCrashDir, "chromium-renderer_abc.dmp" + TEST_PID); | 84 mDmpFile2 = new File(mCrashDir, "chromium-renderer_abc.dmp" + TEST_PID + ".try1"); |
| 85 mDmpFile2.createNewFile(); | 85 mDmpFile2.createNewFile(); |
| 86 mDmpFile2.setLastModified(mModificationTimestamp); | 86 mDmpFile2.setLastModified(mModificationTimestamp); |
| 87 mModificationTimestamp += 1000; | 87 mModificationTimestamp += 1000; |
| 88 | 88 |
| 89 mOneBelowMaxTriesFile = new File(mCrashDir, | 89 mOneBelowMaxTriesFile = new File(mCrashDir, |
| 90 "chromium-renderer_abc.dmp" + TEST_PID + ".try" + (MAX_TRIES_ALL OWED - 1)); | 90 "chromium-renderer_abc.dmp" + TEST_PID + ".try" + (MAX_TRIES_ALL OWED - 1)); |
| 91 mOneBelowMaxTriesFile.createNewFile(); | 91 mOneBelowMaxTriesFile.createNewFile(); |
| 92 mOneBelowMaxTriesFile.setLastModified(mModificationTimestamp); | 92 mOneBelowMaxTriesFile.setLastModified(mModificationTimestamp); |
| 93 mModificationTimestamp += 1000; | 93 mModificationTimestamp += 1000; |
| 94 | 94 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 108 "chromium-renderer_abc.dmp" + TEST_PID + ".try" + MULTI_DIGIT_MA X_TRIES_ALLOWED); | 108 "chromium-renderer_abc.dmp" + TEST_PID + ".try" + MULTI_DIGIT_MA X_TRIES_ALLOWED); |
| 109 mMultiDigitMaxTriesFile.createNewFile(); | 109 mMultiDigitMaxTriesFile.createNewFile(); |
| 110 mMultiDigitMaxTriesFile.setLastModified(mModificationTimestamp); | 110 mMultiDigitMaxTriesFile.setLastModified(mModificationTimestamp); |
| 111 mModificationTimestamp += 1000; | 111 mModificationTimestamp += 1000; |
| 112 | 112 |
| 113 mUpFile1 = new File(mCrashDir, "123_abcd.up0"); | 113 mUpFile1 = new File(mCrashDir, "123_abcd.up0"); |
| 114 mUpFile1.createNewFile(); | 114 mUpFile1.createNewFile(); |
| 115 mUpFile1.setLastModified(mModificationTimestamp); | 115 mUpFile1.setLastModified(mModificationTimestamp); |
| 116 mModificationTimestamp += 1000; | 116 mModificationTimestamp += 1000; |
| 117 | 117 |
| 118 mUpFile2 = new File(mCrashDir, "chromium-renderer_abcd.up" + TEST_PID); | 118 mUpFile2 = new File(mCrashDir, "chromium-renderer_abcd.up" + TEST_PID + ".try0"); |
| 119 mUpFile2.createNewFile(); | 119 mUpFile2.createNewFile(); |
| 120 mUpFile2.setLastModified(mModificationTimestamp); | 120 mUpFile2.setLastModified(mModificationTimestamp); |
| 121 mModificationTimestamp += 1000; | 121 mModificationTimestamp += 1000; |
| 122 | 122 |
| 123 mLogfile = new File(mCrashDir, CrashFileManager.CRASH_DUMP_LOGFILE); | 123 mLogfile = new File(mCrashDir, CrashFileManager.CRASH_DUMP_LOGFILE); |
| 124 mLogfile.createNewFile(); | 124 mLogfile.createNewFile(); |
| 125 mLogfile.setLastModified(mModificationTimestamp); | 125 mLogfile.setLastModified(mModificationTimestamp); |
| 126 mModificationTimestamp += 1000; | 126 mModificationTimestamp += 1000; |
| 127 } | 127 } |
| 128 | 128 |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 315 assertEquals("file.forced0.try0", | 315 assertEquals("file.forced0.try0", |
| 316 CrashFileManager.filenameWithForcedUploadState("file.forced0.try 3")); | 316 CrashFileManager.filenameWithForcedUploadState("file.forced0.try 3")); |
| 317 } | 317 } |
| 318 | 318 |
| 319 @SmallTest | 319 @SmallTest |
| 320 @Feature({"Android-AppBase"}) | 320 @Feature({"Android-AppBase"}) |
| 321 public void testMarkUploadSuccess() { | 321 public void testMarkUploadSuccess() { |
| 322 CrashFileManager.markUploadSuccess(mDmpFile1); | 322 CrashFileManager.markUploadSuccess(mDmpFile1); |
| 323 assertFalse(mDmpFile1.exists()); | 323 assertFalse(mDmpFile1.exists()); |
| 324 assertTrue(new File(mCrashDir, "123_abc.up0").exists()); | 324 assertTrue(new File(mCrashDir, "123_abc.up0").exists()); |
| 325 | |
| 326 CrashFileManager.markUploadSuccess(mDmpFile2); | |
| 327 assertFalse(mDmpFile2.exists()); | |
| 328 assertTrue(new File(mCrashDir, "chromium-renderer_abc.up" + TEST_PID + " .try1").exists()); | |
| 325 } | 329 } |
| 326 | 330 |
| 327 @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE") | 331 @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE") |
| 328 @SmallTest | 332 @SmallTest |
| 329 @Feature({"Android-AppBase"}) | 333 @Feature({"Android-AppBase"}) |
| 330 public void testMarkUploadSuccess_ForcedUpload() throws IOException { | 334 public void testMarkUploadSuccess_ForcedUpload() throws IOException { |
| 331 File forced = new File(mCrashDir, "123_abc.forced0"); | 335 File forced = new File(mCrashDir, "123_abc.forced" + TEST_PID + ".try0") ; |
| 332 forced.createNewFile(); | 336 forced.createNewFile(); |
| 333 CrashFileManager.markUploadSuccess(forced); | 337 CrashFileManager.markUploadSuccess(forced); |
| 334 assertFalse(forced.exists()); | 338 assertFalse(forced.exists()); |
| 335 assertTrue(new File(mCrashDir, "123_abc.up0").exists()); | 339 assertTrue(new File(mCrashDir, "123_abc.up" + TEST_PID + ".try0").exists ()); |
| 336 } | 340 } |
| 337 | 341 |
| 338 @SmallTest | 342 @SmallTest |
| 339 @Feature({"Android-AppBase"}) | 343 @Feature({"Android-AppBase"}) |
| 340 public void testMarkUploadSkipped() { | 344 public void testMarkUploadSkipped() { |
| 341 CrashFileManager.markUploadSkipped(mDmpFile1); | 345 CrashFileManager.markUploadSkipped(mDmpFile1); |
| 342 assertFalse(mDmpFile1.exists()); | 346 assertFalse(mDmpFile1.exists()); |
| 343 assertTrue(new File(mCrashDir, "123_abc.skipped0").exists()); | 347 assertTrue(new File(mCrashDir, "123_abc.skipped0").exists()); |
| 348 | |
| 349 CrashFileManager.markUploadSkipped(mDmpFile2); | |
| 350 assertFalse(mDmpFile2.exists()); | |
| 351 assertTrue( | |
| 352 new File(mCrashDir, "chromium-renderer_abc.skipped" + TEST_PID + ".try1").exists()); | |
| 344 } | 353 } |
| 345 | 354 |
| 346 @SmallTest | 355 @SmallTest |
| 347 @Feature({"Android-AppBase"}) | 356 @Feature({"Android-AppBase"}) |
| 348 public void testFilterMinidumpFilesOnUid() { | 357 public void testFilterMinidumpFilesOnUid() { |
| 349 assertArrayEquals(new File[] {new File("1_md.dmp")}, | 358 assertArrayEquals(new File[] {new File("1_md.dmp")}, |
| 350 CrashFileManager.filterMinidumpFilesOnUid( | 359 CrashFileManager.filterMinidumpFilesOnUid( |
| 351 new File[] {new File("1_md.dmp")}, 1).toArray()); | 360 new File[] {new File("1_md.dmp")}, 1).toArray()); |
| 352 assertArrayEquals(new File[0], | 361 assertArrayEquals(new File[0], |
| 353 CrashFileManager.filterMinidumpFilesOnUid( | 362 CrashFileManager.filterMinidumpFilesOnUid( |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 554 File old3 = new File(mCrashDir, "chromium-renderer-minidump-cooo10ff.log cat"); | 563 File old3 = new File(mCrashDir, "chromium-renderer-minidump-cooo10ff.log cat"); |
| 555 old1.setLastModified(oldTimestamp); | 564 old1.setLastModified(oldTimestamp); |
| 556 old2.setLastModified(oldTimestamp - 1); | 565 old2.setLastModified(oldTimestamp - 1); |
| 557 old3.setLastModified(oldTimestamp - 2); | 566 old3.setLastModified(oldTimestamp - 2); |
| 558 | 567 |
| 559 // These will be the most recent files in the directory, after all succe ssfully uploaded | 568 // These will be the most recent files in the directory, after all succe ssfully uploaded |
| 560 // files and all temp files are removed. | 569 // files and all temp files are removed. |
| 561 File[] recentFiles = new File[3 * CrashFileManager.MAX_CRASH_REPORTS_TO_ KEEP]; | 570 File[] recentFiles = new File[3 * CrashFileManager.MAX_CRASH_REPORTS_TO_ KEEP]; |
| 562 for (int i = 0; i < CrashFileManager.MAX_CRASH_REPORTS_TO_KEEP; ++i) { | 571 for (int i = 0; i < CrashFileManager.MAX_CRASH_REPORTS_TO_KEEP; ++i) { |
| 563 String prefix = "chromium-renderer-minidump-deadbeef" + i; | 572 String prefix = "chromium-renderer-minidump-deadbeef" + i; |
| 564 // There is no reason why both a minidump and failed upload should e xist at the same | 573 // There is no reason why both a minidump-sans-logcat and failed upl oad should exist at |
| 565 // time, but the cleanup code should be robust to it anyway. | 574 // the same time, but the cleanup code should be robust to it anyway . |
| 566 File recentMinidump = new File(mCrashDir, prefix + ".dmp"); | 575 File recentMinidump = new File(mCrashDir, prefix + ".dmp"); |
| 567 File recentFailedUpload = new File(mCrashDir, prefix + ".up0.try0"); | 576 File recentFailedUpload = new File(mCrashDir, prefix + ".dmp0.try1") ; |
|
gsennton
2017/03/15 10:18:49
It's slightly amusing that we had a test case ensu
Ilya Sherman
2017/03/15 16:32:56
... yeah, I was clearly pretty confused by the int
| |
| 568 File recentLogcatFile = new File(mCrashDir, prefix + ".logcat"); | 577 File recentLogcatFile = new File(mCrashDir, prefix + ".logcat"); |
| 569 recentMinidump.createNewFile(); | 578 recentMinidump.createNewFile(); |
| 570 recentFailedUpload.createNewFile(); | 579 recentFailedUpload.createNewFile(); |
| 571 recentLogcatFile.createNewFile(); | 580 recentLogcatFile.createNewFile(); |
| 572 recentMinidump.setLastModified(mModificationTimestamp); | 581 recentMinidump.setLastModified(mModificationTimestamp); |
| 573 mModificationTimestamp += 1000; | 582 mModificationTimestamp += 1000; |
| 574 recentFailedUpload.setLastModified(mModificationTimestamp); | 583 recentFailedUpload.setLastModified(mModificationTimestamp); |
| 575 mModificationTimestamp += 1000; | 584 mModificationTimestamp += 1000; |
| 576 recentLogcatFile.setLastModified(mModificationTimestamp); | 585 recentLogcatFile.setLastModified(mModificationTimestamp); |
| 577 mModificationTimestamp += 1000; | 586 mModificationTimestamp += 1000; |
| 578 recentFiles[3 * i + 0] = recentMinidump; | 587 recentFiles[3 * i + 0] = recentMinidump; |
| 579 recentFiles[3 * i + 1] = recentFailedUpload; | 588 recentFiles[3 * i + 1] = recentFailedUpload; |
| 580 recentFiles[3 * i + 2] = recentLogcatFile; | 589 recentFiles[3 * i + 2] = recentLogcatFile; |
| 581 } | 590 } |
| 582 | 591 |
| 583 // Create some additional successful uploads. | 592 // Create some additional successful uploads. |
| 584 File success1 = new File(mCrashDir, "chromium-renderer-minidump-cafebebe 1.up0"); | 593 File success1 = new File(mCrashDir, "chromium-renderer-minidump-cafebebe 1.up0"); |
| 585 File success2 = new File(mCrashDir, "chromium-renderer-minidump-cafebebe 2.up1"); | 594 File success2 = |
| 586 File success3 = new File(mCrashDir, "chromium-renderer-minidump-cafebebe 3.up2"); | 595 new File(mCrashDir, "chromium-renderer-minidump-cafebebe2.up" + TEST_PID + ".try1"); |
| 596 File success3 = | |
| 597 new File(mCrashDir, "chromium-renderer-minidump-cafebebe3.up" + TEST_PID + ".try2"); | |
| 587 success1.createNewFile(); | 598 success1.createNewFile(); |
| 588 success2.createNewFile(); | 599 success2.createNewFile(); |
| 589 success3.createNewFile(); | 600 success3.createNewFile(); |
| 590 success1.setLastModified(mModificationTimestamp); | 601 success1.setLastModified(mModificationTimestamp); |
| 591 mModificationTimestamp += 1000; | 602 mModificationTimestamp += 1000; |
| 592 success2.setLastModified(mModificationTimestamp); | 603 success2.setLastModified(mModificationTimestamp); |
| 593 mModificationTimestamp += 1000; | 604 mModificationTimestamp += 1000; |
| 594 success3.setLastModified(mModificationTimestamp); | 605 success3.setLastModified(mModificationTimestamp); |
| 595 mModificationTimestamp += 1000; | 606 mModificationTimestamp += 1000; |
| 596 | 607 |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 625 assertFalse(mMultiDigitMaxTriesFile.exists()); | 636 assertFalse(mMultiDigitMaxTriesFile.exists()); |
| 626 assertFalse(mUpFile1.exists()); | 637 assertFalse(mUpFile1.exists()); |
| 627 assertFalse(mUpFile2.exists()); | 638 assertFalse(mUpFile2.exists()); |
| 628 assertFalse(temp1.exists()); | 639 assertFalse(temp1.exists()); |
| 629 assertFalse(temp2.exists()); | 640 assertFalse(temp2.exists()); |
| 630 assertFalse(success1.exists()); | 641 assertFalse(success1.exists()); |
| 631 assertFalse(success2.exists()); | 642 assertFalse(success2.exists()); |
| 632 assertFalse(success3.exists()); | 643 assertFalse(success3.exists()); |
| 633 } | 644 } |
| 634 } | 645 } |
| OLD | NEW |