Cleanup android client so tests exit without forcing them
Summary: We've got some exit troubles, meaning we have to use process.exit() to stop the headless process. This isn't good because the output isn't necessarily flushed when the process forcefully exits this way. The tests can check for this, so I've removed the forceExit flag, and fixed the case stopping them from cleanly exiting - the android adb client. Reviewed By: passy Differential Revision: D15602919 fbshipit-source-id: b4a9dbabf5d3c874bda6bf938e4acb7b5b7e901b
This commit is contained in:
committed by
Facebook Github Bot
parent
74ca921861
commit
befaecbf7c
@@ -137,7 +137,7 @@
|
|||||||
"test": "jest --testPathPattern=node\\.js$ --no-cache",
|
"test": "jest --testPathPattern=node\\.js$ --no-cache",
|
||||||
"test:debug": "node --inspect node_modules/.bin/jest --runInBand",
|
"test:debug": "node --inspect node_modules/.bin/jest --runInBand",
|
||||||
"test-electron": "jest --testPathPattern=electron\\.js$ --testEnvironment=@jest-runner/electron/environment --runner=@jest-runner/electron --no-cache",
|
"test-electron": "jest --testPathPattern=electron\\.js$ --testEnvironment=@jest-runner/electron/environment --runner=@jest-runner/electron --no-cache",
|
||||||
"test-with-device": "USE_ELECTRON_STUBS=1 jest --testPathPattern=device\\.js$ --detectOpenHandles --forceExit --no-cache",
|
"test-with-device": "USE_ELECTRON_STUBS=1 jest --testPathPattern=device\\.js$ --detectOpenHandles --no-cache",
|
||||||
"lint": "eslint . && flow check"
|
"lint": "eslint . && flow check"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import iosDevice from '../dispatcher/iOSDevice';
|
|||||||
import type Client from '../Client';
|
import type Client from '../Client';
|
||||||
|
|
||||||
let server;
|
let server;
|
||||||
|
let androidCleanup;
|
||||||
const store = createStore(reducers);
|
const store = createStore(reducers);
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
@@ -28,7 +29,7 @@ beforeAll(() => {
|
|||||||
|
|
||||||
const logger = initLogger(store);
|
const logger = initLogger(store);
|
||||||
|
|
||||||
androidDevice(store, logger);
|
androidCleanup = androidDevice(store, logger);
|
||||||
iosDevice(store, logger);
|
iosDevice(store, logger);
|
||||||
|
|
||||||
server = new Server(logger, store);
|
server = new Server(logger, store);
|
||||||
@@ -65,5 +66,7 @@ test('Device can connect successfully', done => {
|
|||||||
}, 20000);
|
}, 20000);
|
||||||
|
|
||||||
afterAll(() => {
|
afterAll(() => {
|
||||||
return server.close();
|
return androidCleanup().then(() => {
|
||||||
|
server.close();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -185,4 +185,10 @@ export default (store: Store, logger: Logger) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
watchAndroidDevices();
|
watchAndroidDevices();
|
||||||
|
|
||||||
|
// cleanup method
|
||||||
|
return () =>
|
||||||
|
getAdbClient().then(client => {
|
||||||
|
client.kill();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user