blob: bcb24bee9451efe1eda6b309cc892f2c9ad0fa19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* Fail to apply a complete MAR when the application is in use and the callback is a background task. */
async function run_test() {
if (!setupTestCommon()) {
return;
}
gTestFiles = gTestFilesCompleteSuccess;
gTestDirs = gTestDirsCompleteSuccess;
setTestFilesAndDirsForFailure();
// Add a dummy --backgroundtask arg; this will have no effect on the
// callback (TestAUSHelper) but will cause the updater to detect
// that this is a background task.
gCallbackArgs = gCallbackArgs.concat(["--backgroundtask", "not_found"]);
// Run the update with the helper file in use, expecting failure.
await setupUpdaterTest(FILE_COMPLETE_MAR, false);
await runHelperFileInUse(DIR_RESOURCES + gCallbackBinFile, false);
runUpdate(
STATE_FAILED_WRITE_ERROR_BACKGROUND_TASK_SHARING_VIOLATION,
false, // aSwitchApp
1, // aExpectedExitValue
true // aCheckSvcLog
);
await waitForHelperExit();
standardInit();
checkPostUpdateRunningFile(false);
checkFilesAfterUpdateFailure(getApplyDirFile);
checkUpdateLogContains(ERR_BGTASK_EXCLUSIVE);
// Check that the update was reset to "pending".
await waitForUpdateXMLFiles(
true, // aActiveUpdateExists
false // aUpdatesExists
);
checkUpdateManager(
STATE_PENDING, // aStatusFileState
true, // aHasActiveUpdate
STATE_PENDING, // aUpdateStatusState
WRITE_ERROR_BACKGROUND_TASK_SHARING_VIOLATION,
0 // aUpdateCount
);
checkCallbackLog();
}
|