From c6db33c01cd2e4a640f76b19ca89734f4b05a4ab Mon Sep 17 00:00:00 2001 From: Robert Strong Date: Thu, 5 Sep 2013 12:19:33 -0700 Subject: [PATCH] Make test_0202_app_launch_apply_update_dirlocked.js as similar as possible to test_0202_app_launch_apply_update_dirlocked_svc.js - Bug 909489 - Intermittent test_0202_app_launch_apply_update_dirlocked.js | Test timed out | test failed (with xpcshell return code: 1). r=bbondy --- .../update/test/unit/head_update.js.in | 15 ++++-- .../unit/test_0200_app_launch_apply_update.js | 16 ++----- .../unit/test_0201_app_launch_apply_update.js | 18 +++---- ..._0202_app_launch_apply_update_dirlocked.js | 47 +++++++++++-------- .../unit/test_0203_app_launch_apply_update.js | 18 +++---- .../test_0200_app_launch_apply_update_svc.js | 8 +--- .../test_0201_app_launch_apply_update_svc.js | 16 ++----- ...2_app_launch_apply_update_dirlocked_svc.js | 10 +--- .../test_0203_app_launch_apply_update_svc.js | 16 ++----- 9 files changed, 70 insertions(+), 94 deletions(-) diff --git a/toolkit/mozapps/update/test/unit/head_update.js.in b/toolkit/mozapps/update/test/unit/head_update.js.in index 7882e73044fa..faae7a07f310 100644 --- a/toolkit/mozapps/update/test/unit/head_update.js.in +++ b/toolkit/mozapps/update/test/unit/head_update.js.in @@ -111,6 +111,12 @@ var gDisableReplaceFallback = false; // Time to wait for the test helper process before continuing the test const TEST_HELPER_TIMEOUT = 100; +// Time to wait for a check in the test before continuing the test +const TEST_CHECK_TIMEOUT = 100; + +// How many of TEST_CHECK_TIMEOUT to wait before we abort the test. +const MAX_TIMEOUT_RUNS = 300; + // Use a copy of the main application executable for the test to avoid main // executable in use errors. const FILE_WIN_TEST_EXE = "_aus_test_app.exe"; @@ -1597,6 +1603,9 @@ function removeUpdater() { return; } } + else { + logTestInfo("updater doesn't exist, path: " + updater.path); + } } logTestInfo("calling do_test_finished"); do_test_finished(); @@ -1628,7 +1637,7 @@ function waitForFilesInUse() { logTestInfo("file is not in use. path: " + file.path); } catch (e) { - logTestInfo("file in use, will try again after " + CHECK_TIMEOUT_MILLI + + logTestInfo("file in use, will try again after " + TEST_CHECK_TIMEOUT + " ms, path: " + file.path + ", exception: " + e); try { if (fileBak.exists()) { @@ -1639,7 +1648,7 @@ function waitForFilesInUse() { logTestInfo("unable to remove file, this should never happen! " + "path: " + fileBak.path + ", exception: " + e); } - do_timeout(CHECK_TIMEOUT_MILLI, waitForFilesInUse); + do_timeout(TEST_CHECK_TIMEOUT, waitForFilesInUse); return; } } @@ -2305,7 +2314,7 @@ let gProcessObserver = { if (topic != "process-finished" || gProcess.exitValue != 0) { do_throw("Failed to launch application"); } - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); }, QueryInterface: XPCOMUtils.generateQI([AUS_Ci.nsIObserver]) }; diff --git a/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js b/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js index f563da4ce349..f99eb0bbbb9a 100644 --- a/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js +++ b/toolkit/mozapps/update/test/unit/test_0200_app_launch_apply_update.js @@ -15,12 +15,6 @@ const TEST_ID = "0200"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - // Maximum number of milliseconds the process that is launched can run before // the test will try to kill it. const APP_TIMER_TIMEOUT = 120000; @@ -235,7 +229,7 @@ function checkUpdateFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for updates log to " + "be created at " + log.path); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } @@ -246,7 +240,7 @@ function checkUpdateFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for updates status " + "to not be pending or applying, current status is: " + status); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } @@ -263,7 +257,7 @@ function checkUpdateFinished() { "rename " + FILE_UPDATE_LOG + " to " + FILE_UPDATE_LOG + ".bak. Path: " + log.path); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } @@ -293,7 +287,7 @@ function restoreLogFile() { "rename " + FILE_UPDATE_LOG + ".bak back to " + FILE_UPDATE_LOG + ". Path: " + log.path); else - do_timeout(CHECK_TIMEOUT_MILLI, restoreLogFile); + do_timeout(TEST_CHECK_TIMEOUT, restoreLogFile); return; } @@ -350,7 +344,7 @@ function checkLogRenameFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for update log to " + "be renamed to last-update.log at " + log.path); else - do_timeout(CHECK_TIMEOUT_MILLI, checkLogRenameFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkLogRenameFinished); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0201_app_launch_apply_update.js b/toolkit/mozapps/update/test/unit/test_0201_app_launch_apply_update.js index 208da911c563..b58b337811d9 100644 --- a/toolkit/mozapps/update/test/unit/test_0201_app_launch_apply_update.js +++ b/toolkit/mozapps/update/test/unit/test_0201_app_launch_apply_update.js @@ -18,12 +18,6 @@ const TEST_ID = "0201"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - // Maximum number of milliseconds the process that is launched can run before // the test will try to kill it. const APP_TIMER_TIMEOUT = 120000; @@ -230,7 +224,7 @@ function checkUpdateApplied() { "applied, current state is: " + gUpdateManager.activeUpdate.state); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -255,7 +249,7 @@ function checkUpdateApplied() { } log.append(FILE_LAST_LOG); if (!log.exists()) { - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -353,7 +347,7 @@ function checkUpdateApplied() { do_check_false(updatesDir.exists()); // Now, switch the updated version of the app - do_timeout(CHECK_TIMEOUT_MILLI, switchApp); + do_timeout(TEST_CHECK_TIMEOUT, switchApp); } /** @@ -370,7 +364,7 @@ function checkUpdateFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for state to " + "change to succeeded, current status: " + status); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } } catch (e) { @@ -387,7 +381,7 @@ function checkUpdateFinished() { if (gTimeoutRuns > MAX_TIMEOUT_RUNS) do_throw("Exceeded whilst waiting for file to be unlocked"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } else { do_throw("getAppConsoleLogPath threw: " + e); @@ -406,7 +400,7 @@ function checkUpdateFinished() { if (gTimeoutRuns > MAX_TIMEOUT_RUNS) do_throw("Exceeded whilst waiting for update dir to not exist"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } diff --git a/toolkit/mozapps/update/test/unit/test_0202_app_launch_apply_update_dirlocked.js b/toolkit/mozapps/update/test/unit/test_0202_app_launch_apply_update_dirlocked.js index 206016300f83..775f8558b028 100644 --- a/toolkit/mozapps/update/test/unit/test_0202_app_launch_apply_update_dirlocked.js +++ b/toolkit/mozapps/update/test/unit/test_0202_app_launch_apply_update_dirlocked.js @@ -24,10 +24,8 @@ const TEST_ID = "0202"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - let gActiveUpdate; +let gTimeoutRuns = 0; function run_test() { if (APP_BIN_NAME == "xulrunner") { @@ -109,10 +107,6 @@ function run_test() { let mar = do_get_file("data/simple.mar"); mar.copyTo(updatesPatchDir, FILE_UPDATE_ARCHIVE); - reloadUpdateManagerData(); - gActiveUpdate = gUpdateManager.activeUpdate; - do_check_true(!!gActiveUpdate); - // Backup the updater.ini file if it exists by moving it. This prevents the // post update executable from being launched if it is specified. let updaterIni = processDir.clone(); @@ -131,28 +125,27 @@ function run_test() { updateSettingsIni.append(FILE_UPDATE_SETTINGS_INI); writeFile(updateSettingsIni, UPDATE_SETTINGS_CONTENTS); + reloadUpdateManagerData(); + gActiveUpdate = gUpdateManager.activeUpdate; + do_check_true(!!gActiveUpdate); + + setEnvironment(); + // Initiate a background update. logTestInfo("update preparation completed - calling processUpdate"); AUS_Cc["@mozilla.org/updates/update-processor;1"]. createInstance(AUS_Ci.nsIUpdateProcessor). processUpdate(gActiveUpdate); + resetEnvironment(); + logTestInfo("processUpdate completed - calling checkUpdateApplied"); checkUpdateApplied(); } function end_test() { logTestInfo("start - test cleanup"); - // Remove the files added by the update. - let updateTestDir = getUpdateTestDir(); - try { - logTestInfo("removing update test directory " + updateTestDir.path); - removeDirRecursive(updateTestDir); - } - catch (e) { - logTestInfo("unable to remove directory - path: " + updateTestDir.path + - ", exception: " + e); - } + resetEnvironment(); let processDir = getAppDir(); // Restore the backup of the updater.ini if it exists. @@ -169,6 +162,17 @@ function end_test() { updateSettingsIni.moveTo(processDir, FILE_UPDATE_SETTINGS_INI); } + // Remove the files added by the update. + let updateTestDir = getUpdateTestDir(); + try { + logTestInfo("removing update test directory " + updateTestDir.path); + removeDirRecursive(updateTestDir); + } + catch (e) { + logTestInfo("unable to remove directory - path: " + updateTestDir.path + + ", exception: " + e); + } + if (IS_UNIX) { // This will delete the launch script if it exists. getLaunchScript(); @@ -207,12 +211,17 @@ function getUpdateTestDir() { function checkUpdateApplied() { // Don't proceed until the update has failed, and reset to pending. if (gUpdateManager.activeUpdate.state != STATE_PENDING) { - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + if (++gTimeoutRuns > MAX_TIMEOUT_RUNS) + do_throw("Exceeded MAX_TIMEOUT_RUNS whist waiting for pending state to finish"); + else + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } - logTestInfo("update state equals " + gUpdateManager.activeUpdate.state); + do_timeout(TEST_CHECK_TIMEOUT, finishTest); +} +function finishTest() { // Don't proceed until the update status is pending. let status = readStatusFile(); do_check_eq(status, STATE_PENDING); diff --git a/toolkit/mozapps/update/test/unit/test_0203_app_launch_apply_update.js b/toolkit/mozapps/update/test/unit/test_0203_app_launch_apply_update.js index 30f5e1bad16a..ebb0d3c8f45e 100644 --- a/toolkit/mozapps/update/test/unit/test_0203_app_launch_apply_update.js +++ b/toolkit/mozapps/update/test/unit/test_0203_app_launch_apply_update.js @@ -24,12 +24,6 @@ const TEST_ID = "0203"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - // Maximum number of milliseconds the process that is launched can run before // the test will try to kill it. const APP_TIMER_TIMEOUT = 120000; @@ -258,7 +252,7 @@ function checkUpdateApplied() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for update to be " + "applied, current state is: " + gUpdateManager.activeUpdate.state); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -283,7 +277,7 @@ function checkUpdateApplied() { } log.append(FILE_LAST_LOG); if (!log.exists()) { - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -381,7 +375,7 @@ function checkUpdateApplied() { do_check_false(updatesDir.exists()); // Now, switch the updated version of the app - do_timeout(CHECK_TIMEOUT_MILLI, switchApp); + do_timeout(TEST_CHECK_TIMEOUT, switchApp); } /** @@ -398,7 +392,7 @@ function checkUpdateFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for state to " + "change to succeeded, current status: " + status); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } } catch (e) { @@ -415,7 +409,7 @@ function checkUpdateFinished() { if (gTimeoutRuns > MAX_TIMEOUT_RUNS) do_throw("Exceeded whilst waiting for file to be unlocked"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } else { do_throw("getAppConsoleLogPath threw: " + e); @@ -431,7 +425,7 @@ function checkUpdateFinished() { updatedDir.append(UPDATED_DIR_SUFFIX.replace("/", "")); logTestInfo("testing " + updatedDir.path + " shouldn't exist"); if (updatedDir.exists()) { - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } diff --git a/toolkit/mozapps/update/test_svc/unit/test_0200_app_launch_apply_update_svc.js b/toolkit/mozapps/update/test_svc/unit/test_0200_app_launch_apply_update_svc.js index 167c738ee73a..ce439f1819a3 100644 --- a/toolkit/mozapps/update/test_svc/unit/test_0200_app_launch_apply_update_svc.js +++ b/toolkit/mozapps/update/test_svc/unit/test_0200_app_launch_apply_update_svc.js @@ -15,12 +15,6 @@ const TEST_ID = "0200_svc"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - let gTimeoutRuns = 0; function run_test() { @@ -191,7 +185,7 @@ function checkUpdateFinished() { if (++gTimeoutRuns > MAX_TIMEOUT_RUNS) do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for updates log to be created at " + log.path); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } diff --git a/toolkit/mozapps/update/test_svc/unit/test_0201_app_launch_apply_update_svc.js b/toolkit/mozapps/update/test_svc/unit/test_0201_app_launch_apply_update_svc.js index 8acf3780868a..b519a3582c1f 100644 --- a/toolkit/mozapps/update/test_svc/unit/test_0201_app_launch_apply_update_svc.js +++ b/toolkit/mozapps/update/test_svc/unit/test_0201_app_launch_apply_update_svc.js @@ -18,12 +18,6 @@ const TEST_ID = "0201_svc"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - // Maximum number of milliseconds the process that is launched can run before // the test will try to kill it. const APP_TIMER_TIMEOUT = 120000; @@ -236,7 +230,7 @@ function checkUpdateApplied() { "applied, current state is: " + gUpdateManager.activeUpdate.state); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -255,7 +249,7 @@ function checkUpdateApplied() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for update log to " + "be created"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -334,7 +328,7 @@ function checkUpdateApplied() { do_check_false(updatesDir.exists()); // Now, switch the updated version of the app - do_timeout(CHECK_TIMEOUT_MILLI, switchApp); + do_timeout(TEST_CHECK_TIMEOUT, switchApp); } /** @@ -351,7 +345,7 @@ function checkUpdateFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for state to " + "change to succeeded, current status: " + status); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } } catch (e) { @@ -368,7 +362,7 @@ function checkUpdateFinished() { if (gTimeoutRuns > MAX_TIMEOUT_RUNS) do_throw("Exceeded whilst waiting for file to be unlocked"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } else { do_throw("getAppConsoleLogPath threw: " + e); diff --git a/toolkit/mozapps/update/test_svc/unit/test_0202_app_launch_apply_update_dirlocked_svc.js b/toolkit/mozapps/update/test_svc/unit/test_0202_app_launch_apply_update_dirlocked_svc.js index 49e5a3472797..5d00f9d26422 100644 --- a/toolkit/mozapps/update/test_svc/unit/test_0202_app_launch_apply_update_dirlocked_svc.js +++ b/toolkit/mozapps/update/test_svc/unit/test_0202_app_launch_apply_update_dirlocked_svc.js @@ -24,12 +24,6 @@ const TEST_ID = "0202_svc"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - let gActiveUpdate; let gTimeoutRuns = 0; @@ -202,11 +196,11 @@ function checkUpdateApplied() { if (++gTimeoutRuns > MAX_TIMEOUT_RUNS) do_throw("Exceeded MAX_TIMEOUT_RUNS whist waiting for pending state to finish"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } - do_timeout(CHECK_TIMEOUT_MILLI, finishTest); + do_timeout(TEST_CHECK_TIMEOUT, finishTest); } function finishTest() { diff --git a/toolkit/mozapps/update/test_svc/unit/test_0203_app_launch_apply_update_svc.js b/toolkit/mozapps/update/test_svc/unit/test_0203_app_launch_apply_update_svc.js index 26d477c32894..5da9ff6383e9 100644 --- a/toolkit/mozapps/update/test_svc/unit/test_0203_app_launch_apply_update_svc.js +++ b/toolkit/mozapps/update/test_svc/unit/test_0203_app_launch_apply_update_svc.js @@ -24,12 +24,6 @@ const TEST_ID = "0203_svc"; // launching a post update executable. const FILE_UPDATER_INI_BAK = "updater.ini.bak"; -// Number of milliseconds for each do_timeout call. -const CHECK_TIMEOUT_MILLI = 1000; - -// How many of CHECK_TIMEOUT_MILLI to wait before we abort the test. -const MAX_TIMEOUT_RUNS = 300; - // Maximum number of milliseconds the process that is launched can run before // the test will try to kill it. const APP_TIMER_TIMEOUT = 120000; @@ -261,7 +255,7 @@ function checkUpdateApplied() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for update to be " + "applied, current state is: " + gUpdateManager.activeUpdate.state); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -280,7 +274,7 @@ function checkUpdateApplied() { do_throw("Exceeded MAX_TIMEOUT_RUNS whist waiting for update log to be " + "created"); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateApplied); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateApplied); return; } @@ -359,7 +353,7 @@ function checkUpdateApplied() { do_check_false(updatesDir.exists()); // Now, switch the updated version of the app - do_timeout(CHECK_TIMEOUT_MILLI, switchApp); + do_timeout(TEST_CHECK_TIMEOUT, switchApp); } /** @@ -376,7 +370,7 @@ function checkUpdateFinished() { do_throw("Exceeded MAX_TIMEOUT_RUNS whilst waiting for state to " + "change to succeeded, current status: " + status); else - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } } catch (e) { @@ -394,7 +388,7 @@ function checkUpdateFinished() { else // This might happen on Windows in case the callback application has not // finished its job yet. So, we'll wait some more. - do_timeout(CHECK_TIMEOUT_MILLI, checkUpdateFinished); + do_timeout(TEST_CHECK_TIMEOUT, checkUpdateFinished); return; } else { do_throw("getAppConsoleLogPath threw: " + e);