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 |