Skip to content

Commit 49eeb87

Browse files
committed
[Testing]Add e2e test for multi connect
Add multi_connection_test to ensure that the code logic can still connect normally in the case of multiple connections.
1 parent e1d58ec commit 49eeb87

File tree

2 files changed

+103
-3
lines changed

2 files changed

+103
-3
lines changed

test/connect_test/check_android_connection_ci.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,21 @@ def TestAndroidCon(args):
7979
if (args.conection_type == "websocket"):
8080
print('start: websocket common test.')
8181
command_run = "../../../buildtools/node/bin/npm install && ../../../buildtools/node/bin/node websocket.js"
82+
CheckExecute(command_run)
83+
print('start: websocket multi connection test')
84+
command_run = "../../../buildtools/node/bin/npm install && ../../../buildtools/node/bin/node multi_connection_test.js"
85+
CheckExecute(command_run)
8286
else:
8387
if(args.conection_type == "usb"):
84-
print('start: usb common test and large message test.')
85-
command_run = "../../../buildtools/node/bin/npm install && ../../../buildtools/node/bin/node usb.js && ../../../buildtools/node/bin/node large_message_test.js"
86-
CheckExecute(command_run)
88+
print('start: usb common test.')
89+
command_run = "../../../buildtools/node/bin/npm install && ../../../buildtools/node/bin/node usb.js"
90+
CheckExecute(command_run)
91+
print('start: usb large message test')
92+
command_run = "../../../buildtools/node/bin/npm install && ../../../buildtools/node/bin/node large_message_test.js"
93+
CheckExecute(command_run)
94+
print('start: usb multi connection test')
95+
command_run = "../../../buildtools/node/bin/npm install && ../../../buildtools/node/bin/node multi_connection_test.js"
96+
CheckExecute(command_run)
8797

8898
def CheckBuildDebugRouterTestApk(args):
8999
command = './gradlew clean'
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
const DebugRouterConnector = require("@lynx-js/debug-router-connector").DebugRouterConnector;
2+
3+
const util = require('./util.js');
4+
5+
function sleep(ms) {
6+
return new Promise(resolve => setTimeout(resolve, ms));
7+
}
8+
9+
let successCount = 0;
10+
11+
async function TryConnect(driver, serial, num) {
12+
console.log('TryConnect start: ', num);
13+
const clients = await driver.connectUsbClients(serial, 5000);
14+
if (clients && clients.length > 0) {
15+
console.log(clients[0].info.query.raw_info);
16+
successCount++;
17+
18+
console.log('checkConnect');
19+
console.log('TryConnect check connect start: ', num);
20+
const message = 'a'.repeat(20);
21+
const result = await clients[0].sendCustomizedMessage("App.GetCloseCoverageUploadSwitch", { message: message }, -1, "App");
22+
console.log(result);
23+
if (!result) {
24+
console.error('sendCustomizedMessage failed');
25+
process.exit(-1);
26+
} else {
27+
console.log('sendCustomizedMessage success');
28+
process.exit(0);
29+
}
30+
31+
} else {
32+
console.error('no clients connected');
33+
}
34+
console.log('TryConnect end: ', num);
35+
}
36+
37+
async function main() {
38+
const startActivity = 'adb shell am start -n com.lynx.debugrouter.testapp/com.lynx.debugrouter.testapp.MainActivity'
39+
util.exec(startActivity, 10000).then((data) => {
40+
console.log("startActivity:" + data);
41+
}).catch((reason) => {
42+
console.log("startActivity FAILED:" + reason);
43+
process.exit(-1);
44+
});
45+
46+
const driver = new DebugRouterConnector({
47+
manualConnect: true,
48+
enableWebSocket: false,
49+
enableAndroid: true,
50+
enableIOS: true,
51+
enableDesktop: false,
52+
websocketOption: {}
53+
});
54+
55+
try {
56+
const devicesArray = await driver.connectDevices(5000);
57+
if (devicesArray.length === 0) {
58+
console.error('no devices connected');
59+
return;
60+
}
61+
var serial = devicesArray[0].serial;
62+
const Connect0 = TryConnect(driver, serial, 1);
63+
await sleep(3000);
64+
const Connect1 = TryConnect(driver, serial, 2);
65+
await sleep(3000);
66+
const Connect2 = TryConnect(driver, serial, 3);
67+
await sleep(3000);
68+
const Connect3 = TryConnect(driver, serial, 4);
69+
await sleep(3000);
70+
const Connect4 = TryConnect(driver, serial, 5);
71+
await sleep(3000);
72+
const Connect5 = TryConnect(driver, serial, 6);
73+
await sleep(3000);
74+
const Connect6 = TryConnect(driver, serial, 7);
75+
await sleep(3000);
76+
const Connect7 = TryConnect(driver, serial, 8);
77+
await sleep(3000);
78+
const Connect8 = TryConnect(driver, serial, 9);
79+
await sleep(3000);
80+
const Connect9 = TryConnect(driver, serial, 10);
81+
await sleep(3000);
82+
await Promise.all([Connect0, Connect1, Connect2, Connect3, Connect4, Connect5, Connect6, Connect7, Connect8, Connect9]);
83+
console.log('successCount: ', successCount);
84+
} catch (error) {
85+
console.error('Call tryConnect error: ', error);
86+
}
87+
process.exit(0);
88+
}
89+
90+
main();

0 commit comments

Comments
 (0)