/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const { execSync } = require(
"child_process");
async
function pullJitMarkerFiles(context, commands, dirname =
"") {
const packageName =
context.options.browser ===
"firefox"
? context.options.firefox?.android?.
package
: context.options.chrome?.android?.
package;
if (!packageName) {
context.log.warn(
"packageName is not defined");
}
const filesDir = `/storage/emulated/
0/Android/data/${packageName}/files`;
const destDir = dirname
? `${context.storageManager.directory}/${dirname}`
: `${context.storageManager.directory}`;
try {
const timeoutMs =
15000;
const listing = await commands.android.shell(
`ls ${filesDir}/jit-*.dump ${filesDir}/marker-*.txt
2>/dev/
null`
);
for (
const file of listing.split(
"\n").filter(f => f.trim())) {
const fileName = file.trim().split(
"/").pop();
execSync(`adb pull
"${file.trim()}" "${destDir}/${fileName}"`, {
timeout: timeoutMs,
});
}
}
catch (e) {
if (e.signal ===
"SIGTERM") {
context.log.error(
"adb timed out");
}
else {
context.log.error(`Failed to pull jit/marker files: ${e}`);
}
}
}
module.exports = { pullJitMarkerFiles };