appium-adb 12.4.4 → 12.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/lib/logcat.d.ts +32 -5
- package/build/lib/logcat.d.ts.map +1 -1
- package/build/lib/logcat.js +95 -32
- package/build/lib/logcat.js.map +1 -1
- package/build/lib/tools/adb-commands.d.ts +2 -2
- package/build/lib/tools/adb-commands.d.ts.map +1 -1
- package/build/lib/tools/adb-commands.js +2 -2
- package/lib/logcat.js +97 -33
- package/lib/tools/adb-commands.js +2 -2
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [12.4.6](https://github.com/appium/appium-adb/compare/v12.4.5...v12.4.6) (2024-06-30)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* Prefer indexes over timestamps as logcat keys ([#752](https://github.com/appium/appium-adb/issues/752)) ([f499875](https://github.com/appium/appium-adb/commit/f49987590e9a4935e8fac07bdc1d237c4aec5cd1))
|
|
6
|
+
|
|
7
|
+
## [12.4.5](https://github.com/appium/appium-adb/compare/v12.4.4...v12.4.5) (2024-06-30)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* Optimize logcat callbacks handling ([#751](https://github.com/appium/appium-adb/issues/751)) ([5496a24](https://github.com/appium/appium-adb/commit/5496a2445f5f39b587fe081ff7bae819eadd2d5b))
|
|
12
|
+
|
|
1
13
|
## [12.4.4](https://github.com/appium/appium-adb/compare/v12.4.3...v12.4.4) (2024-06-21)
|
|
2
14
|
|
|
3
15
|
### Miscellaneous Chores
|
package/build/lib/logcat.d.ts
CHANGED
|
@@ -24,6 +24,11 @@ export type LogcatOpts = {
|
|
|
24
24
|
*/
|
|
25
25
|
filterSpecs?: string[] | undefined;
|
|
26
26
|
};
|
|
27
|
+
export type LogEntry = {
|
|
28
|
+
timestamp: number;
|
|
29
|
+
level: "ALL";
|
|
30
|
+
message: string;
|
|
31
|
+
};
|
|
27
32
|
declare class Logcat extends EventEmitter<[never]> {
|
|
28
33
|
constructor(opts?: {});
|
|
29
34
|
adb: any;
|
|
@@ -31,16 +36,38 @@ declare class Logcat extends EventEmitter<[never]> {
|
|
|
31
36
|
debug: any;
|
|
32
37
|
debugTrace: any;
|
|
33
38
|
maxBufferSize: any;
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
/** @type {LRUCache<number, [string, number]>} */
|
|
40
|
+
logs: LRUCache<number, [string, number]>;
|
|
41
|
+
/** @type {number?} */
|
|
42
|
+
logIndexSinceLastRequest: number | null;
|
|
36
43
|
startCapture(opts?: {}): Promise<any>;
|
|
37
44
|
proc: SubProcess | null | undefined;
|
|
38
|
-
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* @param {string} logLine
|
|
48
|
+
* @param {string} [prefix='']
|
|
49
|
+
* @returns {void}
|
|
50
|
+
*/
|
|
51
|
+
outputHandler(logLine: string, prefix?: string | undefined): void;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @returns {Promise<void>}
|
|
55
|
+
*/
|
|
39
56
|
stopCapture(): Promise<void>;
|
|
40
|
-
|
|
41
|
-
|
|
57
|
+
/**
|
|
58
|
+
* @returns {LogEntry[]}
|
|
59
|
+
*/
|
|
60
|
+
getLogs(): LogEntry[];
|
|
61
|
+
/**
|
|
62
|
+
* @returns {LogEntry[]}
|
|
63
|
+
*/
|
|
64
|
+
getAllLogs(): LogEntry[];
|
|
65
|
+
/**
|
|
66
|
+
* @returns {Promise<void>}
|
|
67
|
+
*/
|
|
42
68
|
clear(): Promise<void>;
|
|
43
69
|
}
|
|
44
70
|
import { EventEmitter } from 'node:events';
|
|
71
|
+
import { LRUCache } from 'lru-cache';
|
|
45
72
|
import { SubProcess } from 'teen_process';
|
|
46
73
|
//# sourceMappingURL=logcat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logcat.d.ts","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logcat.d.ts","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;eAkDc,MAAM;WACN,KAAK;aACL,MAAM;;AAyDpB;IACE,uBAaC;IAXC,SAAmB;IACnB,eAAqD;IACrD,WAAuB;IACvB,gBAAiC;IACjC,mBAA0D;IAC1D,iDAAiD;IACjD,MADW,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAG3C;IACF,sBAAsB;IACtB,0BADW,MAAM,OAAC,CACkB;IAGtC,sCAwDC;IA7BG,oCAA8C;IA+BlD;;;;;OAKG;IACH,uBAJW,MAAM,gCAEJ,IAAI,CAiBhB;IAED;;;OAGG;IACH,eAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;OAEG;IACH,WAFa,QAAQ,EAAE,CAkBtB;IAED;;OAEG;IACH,cAFa,QAAQ,EAAE,CAStB;IAED;;OAEG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAUzB;CACF;6BAxQ4B,aAAa;yBAEjB,WAAW;2BADH,cAAc"}
|
package/build/lib/logcat.js
CHANGED
|
@@ -8,6 +8,7 @@ const bluebird_1 = __importDefault(require("bluebird"));
|
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
9
|
const node_events_1 = require("node:events");
|
|
10
10
|
const teen_process_1 = require("teen_process");
|
|
11
|
+
const lru_cache_1 = require("lru-cache");
|
|
11
12
|
const log = support_1.logger.getLogger('Logcat');
|
|
12
13
|
const MAX_BUFFER_SIZE = 10000;
|
|
13
14
|
const LOGCAT_PROC_STARTUP_TIMEOUT = 10000;
|
|
@@ -16,6 +17,8 @@ const SUPPORTED_PRIORITIES = ['v', 'd', 'i', 'w', 'e', 'f', 's'];
|
|
|
16
17
|
const DEFAULT_PRIORITY = 'v';
|
|
17
18
|
const DEFAULT_TAG = '*';
|
|
18
19
|
const DEFAULT_FORMAT = 'threadtime';
|
|
20
|
+
const TRACE_PATTERN = /W\/Trace/;
|
|
21
|
+
const EXECVP_ERR_PATTERN = /execvp\(\)/;
|
|
19
22
|
/**
|
|
20
23
|
* @typedef {Object} LogcatOpts
|
|
21
24
|
* @property {string} [format] The log print format, where <format> is one of:
|
|
@@ -44,6 +47,30 @@ function requireFormat(format) {
|
|
|
44
47
|
}
|
|
45
48
|
return format;
|
|
46
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* @typedef {Object} LogEntry
|
|
52
|
+
* @property {number} timestamp
|
|
53
|
+
* @property {'ALL'} level
|
|
54
|
+
* @property {string} message
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param {string} message
|
|
59
|
+
* @param {number} timestamp
|
|
60
|
+
* @returns {LogEntry}
|
|
61
|
+
*/
|
|
62
|
+
function toLogEntry(message, timestamp) {
|
|
63
|
+
return {
|
|
64
|
+
timestamp,
|
|
65
|
+
level: 'ALL',
|
|
66
|
+
message,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @param {string} spec
|
|
72
|
+
* @returns {string}
|
|
73
|
+
*/
|
|
47
74
|
function requireSpec(spec) {
|
|
48
75
|
const [tag, priority] = spec.split(':');
|
|
49
76
|
let resultTag = tag;
|
|
@@ -63,6 +90,11 @@ function requireSpec(spec) {
|
|
|
63
90
|
}
|
|
64
91
|
return spec;
|
|
65
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
* @param {string|string[]} filterSpecs
|
|
96
|
+
* @returns {string[]}
|
|
97
|
+
*/
|
|
66
98
|
function formatFilterSpecs(filterSpecs) {
|
|
67
99
|
if (!lodash_1.default.isArray(filterSpecs)) {
|
|
68
100
|
filterSpecs = [filterSpecs];
|
|
@@ -79,8 +111,12 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
79
111
|
this.debug = opts.debug;
|
|
80
112
|
this.debugTrace = opts.debugTrace;
|
|
81
113
|
this.maxBufferSize = opts.maxBufferSize || MAX_BUFFER_SIZE;
|
|
82
|
-
|
|
83
|
-
this.
|
|
114
|
+
/** @type {LRUCache<number, [string, number]>} */
|
|
115
|
+
this.logs = new lru_cache_1.LRUCache({
|
|
116
|
+
max: this.maxBufferSize,
|
|
117
|
+
});
|
|
118
|
+
/** @type {number?} */
|
|
119
|
+
this.logIndexSinceLastRequest = null;
|
|
84
120
|
}
|
|
85
121
|
async startCapture(opts = {}) {
|
|
86
122
|
let started = false;
|
|
@@ -114,19 +150,19 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
114
150
|
}
|
|
115
151
|
});
|
|
116
152
|
this.proc.on('lines-stderr', (lines) => {
|
|
117
|
-
for (
|
|
118
|
-
if (
|
|
153
|
+
for (const line of lines) {
|
|
154
|
+
if (!started && EXECVP_ERR_PATTERN.test(line)) {
|
|
119
155
|
log.error('Logcat process failed to start');
|
|
120
|
-
reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
156
|
+
return reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
121
157
|
}
|
|
122
|
-
this.outputHandler(
|
|
158
|
+
this.outputHandler(line, 'STDERR: ');
|
|
123
159
|
}
|
|
124
160
|
resolve();
|
|
125
161
|
});
|
|
126
162
|
this.proc.on('lines-stdout', (lines) => {
|
|
127
163
|
resolve();
|
|
128
|
-
for (
|
|
129
|
-
this.outputHandler(
|
|
164
|
+
for (const line of lines) {
|
|
165
|
+
this.outputHandler(line);
|
|
130
166
|
}
|
|
131
167
|
});
|
|
132
168
|
await this.proc.start(0);
|
|
@@ -134,28 +170,32 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
134
170
|
setTimeout(resolve, LOGCAT_PROC_STARTUP_TIMEOUT);
|
|
135
171
|
});
|
|
136
172
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
173
|
+
/**
|
|
174
|
+
*
|
|
175
|
+
* @param {string} logLine
|
|
176
|
+
* @param {string} [prefix='']
|
|
177
|
+
* @returns {void}
|
|
178
|
+
*/
|
|
179
|
+
outputHandler(logLine, prefix = '') {
|
|
180
|
+
const timestamp = Date.now();
|
|
181
|
+
/** @type {number} */
|
|
182
|
+
let recentIndex = -1;
|
|
183
|
+
for (const key of this.logs.rkeys()) {
|
|
184
|
+
recentIndex = key;
|
|
185
|
+
break;
|
|
140
186
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
--this.logIdxSinceLastRequest;
|
|
145
|
-
}
|
|
187
|
+
this.logs.set(++recentIndex, [logLine, timestamp]);
|
|
188
|
+
if (this.listenerCount('output')) {
|
|
189
|
+
this.emit('output', toLogEntry(logLine, timestamp));
|
|
146
190
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
level: 'ALL',
|
|
150
|
-
message: output,
|
|
151
|
-
};
|
|
152
|
-
this.logs.push(outputObj);
|
|
153
|
-
this.emit('output', outputObj);
|
|
154
|
-
const isTrace = /W\/Trace/.test(output);
|
|
155
|
-
if (this.debug && (!isTrace || this.debugTrace)) {
|
|
156
|
-
log.debug(prefix + output);
|
|
191
|
+
if (this.debug && (this.debugTrace || !TRACE_PATTERN.test(logLine))) {
|
|
192
|
+
log.debug(prefix + logLine);
|
|
157
193
|
}
|
|
158
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
*
|
|
197
|
+
* @returns {Promise<void>}
|
|
198
|
+
*/
|
|
159
199
|
async stopCapture() {
|
|
160
200
|
log.debug('Stopping logcat capture');
|
|
161
201
|
if (!this.proc || !this.proc.isRunning) {
|
|
@@ -167,17 +207,40 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
167
207
|
await this.proc.stop();
|
|
168
208
|
this.proc = null;
|
|
169
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* @returns {LogEntry[]}
|
|
212
|
+
*/
|
|
170
213
|
getLogs() {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
214
|
+
/** @type {LogEntry[]} */
|
|
215
|
+
const result = [];
|
|
216
|
+
/** @type {number?} */
|
|
217
|
+
let recentLogIndex = null;
|
|
218
|
+
for (const [index, [message, timestamp]] of this.logs.entries()) {
|
|
219
|
+
if (this.logIndexSinceLastRequest && index > this.logIndexSinceLastRequest
|
|
220
|
+
|| !this.logIndexSinceLastRequest) {
|
|
221
|
+
recentLogIndex = index;
|
|
222
|
+
result.push(toLogEntry(message, timestamp));
|
|
223
|
+
}
|
|
175
224
|
}
|
|
176
|
-
|
|
225
|
+
if (lodash_1.default.isInteger(recentLogIndex)) {
|
|
226
|
+
this.logIndexSinceLastRequest = recentLogIndex;
|
|
227
|
+
}
|
|
228
|
+
return result;
|
|
177
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* @returns {LogEntry[]}
|
|
232
|
+
*/
|
|
178
233
|
getAllLogs() {
|
|
179
|
-
|
|
234
|
+
/** @type {LogEntry[]} */
|
|
235
|
+
const result = [];
|
|
236
|
+
for (const [message, timestamp] of this.logs.values()) {
|
|
237
|
+
result.push(toLogEntry(message, timestamp));
|
|
238
|
+
}
|
|
239
|
+
return result;
|
|
180
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* @returns {Promise<void>}
|
|
243
|
+
*/
|
|
181
244
|
async clear() {
|
|
182
245
|
log.debug('Clearing logcat logs from device');
|
|
183
246
|
try {
|
package/build/lib/logcat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":";;;;;AAAA,6CAA+C;AAC/C,wDAAyB;AACzB,oDAAuB;AACvB,6CAA2C;AAC3C,+CAAgD;
|
|
1
|
+
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":"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"}
|
|
@@ -652,10 +652,10 @@ declare namespace methods {
|
|
|
652
652
|
* The logcat process should be executed by {2link #startLogcat} method.
|
|
653
653
|
*
|
|
654
654
|
* @this {import('../adb.js').ADB}
|
|
655
|
-
* @return {
|
|
655
|
+
* @return {import('../logcat').LogEntry[]} The collected logcat output.
|
|
656
656
|
* @throws {Error} If logcat process is not running.
|
|
657
657
|
*/
|
|
658
|
-
function getLogcatLogs(this: import("../adb.js").ADB):
|
|
658
|
+
function getLogcatLogs(this: import("../adb.js").ADB): import("../logcat").LogEntry[];
|
|
659
659
|
/**
|
|
660
660
|
* Listener function, which accepts one argument.
|
|
661
661
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-commands.d.ts","sourceRoot":"","sources":["../../../lib/tools/adb-commands.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adb-commands.d.ts","sourceRoot":"","sources":["../../../lib/tools/adb-commands.js"],"names":[],"mappings":"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"}
|
|
@@ -1156,12 +1156,12 @@ methods.stopLogcat = async function stopLogcat() {
|
|
|
1156
1156
|
* The logcat process should be executed by {2link #startLogcat} method.
|
|
1157
1157
|
*
|
|
1158
1158
|
* @this {import('../adb.js').ADB}
|
|
1159
|
-
* @return {
|
|
1159
|
+
* @return {import('../logcat').LogEntry[]} The collected logcat output.
|
|
1160
1160
|
* @throws {Error} If logcat process is not running.
|
|
1161
1161
|
*/
|
|
1162
1162
|
methods.getLogcatLogs = function getLogcatLogs() {
|
|
1163
1163
|
if (lodash_1.default.isEmpty(this.logcat)) {
|
|
1164
|
-
throw new Error(
|
|
1164
|
+
throw new Error(`Can't get logcat logs since logcat hasn't started`);
|
|
1165
1165
|
}
|
|
1166
1166
|
return this.logcat.getLogs();
|
|
1167
1167
|
};
|
package/lib/logcat.js
CHANGED
|
@@ -3,6 +3,7 @@ import B from 'bluebird';
|
|
|
3
3
|
import _ from 'lodash';
|
|
4
4
|
import { EventEmitter } from 'node:events';
|
|
5
5
|
import { SubProcess, exec } from 'teen_process';
|
|
6
|
+
import { LRUCache } from 'lru-cache';
|
|
6
7
|
|
|
7
8
|
const log = logger.getLogger('Logcat');
|
|
8
9
|
const MAX_BUFFER_SIZE = 10000;
|
|
@@ -12,6 +13,8 @@ const SUPPORTED_PRIORITIES = ['v', 'd', 'i', 'w', 'e', 'f', 's'];
|
|
|
12
13
|
const DEFAULT_PRIORITY = 'v';
|
|
13
14
|
const DEFAULT_TAG = '*';
|
|
14
15
|
const DEFAULT_FORMAT = 'threadtime';
|
|
16
|
+
const TRACE_PATTERN = /W\/Trace/;
|
|
17
|
+
const EXECVP_ERR_PATTERN = /execvp\(\)/;
|
|
15
18
|
|
|
16
19
|
/**
|
|
17
20
|
* @typedef {Object} LogcatOpts
|
|
@@ -43,6 +46,32 @@ function requireFormat (format) {
|
|
|
43
46
|
return format;
|
|
44
47
|
}
|
|
45
48
|
|
|
49
|
+
/**
|
|
50
|
+
* @typedef {Object} LogEntry
|
|
51
|
+
* @property {number} timestamp
|
|
52
|
+
* @property {'ALL'} level
|
|
53
|
+
* @property {string} message
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param {string} message
|
|
59
|
+
* @param {number} timestamp
|
|
60
|
+
* @returns {LogEntry}
|
|
61
|
+
*/
|
|
62
|
+
function toLogEntry(message, timestamp) {
|
|
63
|
+
return {
|
|
64
|
+
timestamp,
|
|
65
|
+
level: 'ALL',
|
|
66
|
+
message,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
* @param {string} spec
|
|
73
|
+
* @returns {string}
|
|
74
|
+
*/
|
|
46
75
|
function requireSpec (spec) {
|
|
47
76
|
const [tag, priority] = spec.split(':');
|
|
48
77
|
let resultTag = tag;
|
|
@@ -63,6 +92,11 @@ function requireSpec (spec) {
|
|
|
63
92
|
return spec;
|
|
64
93
|
}
|
|
65
94
|
|
|
95
|
+
/**
|
|
96
|
+
*
|
|
97
|
+
* @param {string|string[]} filterSpecs
|
|
98
|
+
* @returns {string[]}
|
|
99
|
+
*/
|
|
66
100
|
function formatFilterSpecs (filterSpecs) {
|
|
67
101
|
if (!_.isArray(filterSpecs)) {
|
|
68
102
|
filterSpecs = [filterSpecs];
|
|
@@ -81,8 +115,12 @@ class Logcat extends EventEmitter {
|
|
|
81
115
|
this.debug = opts.debug;
|
|
82
116
|
this.debugTrace = opts.debugTrace;
|
|
83
117
|
this.maxBufferSize = opts.maxBufferSize || MAX_BUFFER_SIZE;
|
|
84
|
-
|
|
85
|
-
this.
|
|
118
|
+
/** @type {LRUCache<number, [string, number]>} */
|
|
119
|
+
this.logs = new LRUCache({
|
|
120
|
+
max: this.maxBufferSize,
|
|
121
|
+
});
|
|
122
|
+
/** @type {number?} */
|
|
123
|
+
this.logIndexSinceLastRequest = null;
|
|
86
124
|
}
|
|
87
125
|
|
|
88
126
|
async startCapture (opts = {}) {
|
|
@@ -122,19 +160,19 @@ class Logcat extends EventEmitter {
|
|
|
122
160
|
}
|
|
123
161
|
});
|
|
124
162
|
this.proc.on('lines-stderr', (lines) => {
|
|
125
|
-
for (
|
|
126
|
-
if (
|
|
163
|
+
for (const line of lines) {
|
|
164
|
+
if (!started && EXECVP_ERR_PATTERN.test(line)) {
|
|
127
165
|
log.error('Logcat process failed to start');
|
|
128
|
-
reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
166
|
+
return reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
129
167
|
}
|
|
130
|
-
this.outputHandler(
|
|
168
|
+
this.outputHandler(line, 'STDERR: ');
|
|
131
169
|
}
|
|
132
170
|
resolve();
|
|
133
171
|
});
|
|
134
172
|
this.proc.on('lines-stdout', (lines) => {
|
|
135
173
|
resolve();
|
|
136
|
-
for (
|
|
137
|
-
this.outputHandler(
|
|
174
|
+
for (const line of lines) {
|
|
175
|
+
this.outputHandler(line);
|
|
138
176
|
}
|
|
139
177
|
});
|
|
140
178
|
await this.proc.start(0);
|
|
@@ -143,30 +181,33 @@ class Logcat extends EventEmitter {
|
|
|
143
181
|
});
|
|
144
182
|
}
|
|
145
183
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
184
|
+
/**
|
|
185
|
+
*
|
|
186
|
+
* @param {string} logLine
|
|
187
|
+
* @param {string} [prefix='']
|
|
188
|
+
* @returns {void}
|
|
189
|
+
*/
|
|
190
|
+
outputHandler (logLine, prefix = '') {
|
|
191
|
+
const timestamp = Date.now();
|
|
192
|
+
/** @type {number} */
|
|
193
|
+
let recentIndex = -1;
|
|
194
|
+
for (const key of this.logs.rkeys()) {
|
|
195
|
+
recentIndex = key;
|
|
196
|
+
break;
|
|
149
197
|
}
|
|
150
|
-
|
|
151
|
-
if (this.
|
|
152
|
-
this.
|
|
153
|
-
if (this.logIdxSinceLastRequest > 0) {
|
|
154
|
-
--this.logIdxSinceLastRequest;
|
|
155
|
-
}
|
|
198
|
+
this.logs.set(++recentIndex, [logLine, timestamp]);
|
|
199
|
+
if (this.listenerCount('output')) {
|
|
200
|
+
this.emit('output', toLogEntry(logLine, timestamp));
|
|
156
201
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
level: 'ALL',
|
|
160
|
-
message: output,
|
|
161
|
-
};
|
|
162
|
-
this.logs.push(outputObj);
|
|
163
|
-
this.emit('output', outputObj);
|
|
164
|
-
const isTrace = /W\/Trace/.test(output);
|
|
165
|
-
if (this.debug && (!isTrace || this.debugTrace)) {
|
|
166
|
-
log.debug(prefix + output);
|
|
202
|
+
if (this.debug && (this.debugTrace || !TRACE_PATTERN.test(logLine))) {
|
|
203
|
+
log.debug(prefix + logLine);
|
|
167
204
|
}
|
|
168
205
|
}
|
|
169
206
|
|
|
207
|
+
/**
|
|
208
|
+
*
|
|
209
|
+
* @returns {Promise<void>}
|
|
210
|
+
*/
|
|
170
211
|
async stopCapture () {
|
|
171
212
|
log.debug('Stopping logcat capture');
|
|
172
213
|
if (!this.proc || !this.proc.isRunning) {
|
|
@@ -179,19 +220,42 @@ class Logcat extends EventEmitter {
|
|
|
179
220
|
this.proc = null;
|
|
180
221
|
}
|
|
181
222
|
|
|
223
|
+
/**
|
|
224
|
+
* @returns {LogEntry[]}
|
|
225
|
+
*/
|
|
182
226
|
getLogs () {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
227
|
+
/** @type {LogEntry[]} */
|
|
228
|
+
const result = [];
|
|
229
|
+
/** @type {number?} */
|
|
230
|
+
let recentLogIndex = null;
|
|
231
|
+
for (const [index, [message, timestamp]] of this.logs.entries()) {
|
|
232
|
+
if (this.logIndexSinceLastRequest && index > this.logIndexSinceLastRequest
|
|
233
|
+
|| !this.logIndexSinceLastRequest) {
|
|
234
|
+
recentLogIndex = index;
|
|
235
|
+
result.push(toLogEntry(message, timestamp));
|
|
236
|
+
}
|
|
187
237
|
}
|
|
188
|
-
|
|
238
|
+
if (_.isInteger(recentLogIndex)) {
|
|
239
|
+
this.logIndexSinceLastRequest = recentLogIndex;
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
189
242
|
}
|
|
190
243
|
|
|
244
|
+
/**
|
|
245
|
+
* @returns {LogEntry[]}
|
|
246
|
+
*/
|
|
191
247
|
getAllLogs () {
|
|
192
|
-
|
|
248
|
+
/** @type {LogEntry[]} */
|
|
249
|
+
const result = [];
|
|
250
|
+
for (const [message, timestamp] of this.logs.values()) {
|
|
251
|
+
result.push(toLogEntry(message, timestamp));
|
|
252
|
+
}
|
|
253
|
+
return result;
|
|
193
254
|
}
|
|
194
255
|
|
|
256
|
+
/**
|
|
257
|
+
* @returns {Promise<void>}
|
|
258
|
+
*/
|
|
195
259
|
async clear () {
|
|
196
260
|
log.debug('Clearing logcat logs from device');
|
|
197
261
|
try {
|
|
@@ -1223,12 +1223,12 @@ methods.stopLogcat = async function stopLogcat () {
|
|
|
1223
1223
|
* The logcat process should be executed by {2link #startLogcat} method.
|
|
1224
1224
|
*
|
|
1225
1225
|
* @this {import('../adb.js').ADB}
|
|
1226
|
-
* @return {
|
|
1226
|
+
* @return {import('../logcat').LogEntry[]} The collected logcat output.
|
|
1227
1227
|
* @throws {Error} If logcat process is not running.
|
|
1228
1228
|
*/
|
|
1229
1229
|
methods.getLogcatLogs = function getLogcatLogs () {
|
|
1230
1230
|
if (_.isEmpty(this.logcat)) {
|
|
1231
|
-
throw new Error(
|
|
1231
|
+
throw new Error(`Can't get logcat logs since logcat hasn't started`);
|
|
1232
1232
|
}
|
|
1233
1233
|
return this.logcat.getLogs();
|
|
1234
1234
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-adb",
|
|
3
|
-
"version": "12.4.
|
|
3
|
+
"version": "12.4.6",
|
|
4
4
|
"description": "Android Debug Bridge interface",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -57,10 +57,9 @@
|
|
|
57
57
|
"lru-cache": "^10.0.0",
|
|
58
58
|
"semver": "^7.0.0",
|
|
59
59
|
"source-map-support": "^0.x",
|
|
60
|
-
"teen_process": "^2.
|
|
60
|
+
"teen_process": "^2.1.10"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@appium/eslint-config-appium": "^8.0.0",
|
|
64
63
|
"@appium/eslint-config-appium-ts": "^0.x",
|
|
65
64
|
"@appium/test-support": "^3.0.1",
|
|
66
65
|
"@appium/types": "^0.x",
|