theintern / intern

A next-generation code testing stack for JavaScript.
https://theintern.io/
Other
4.36k stars 310 forks source link

Test suite does not run for iOS hybrid app #471

Closed nikovanmeurs closed 4 years ago

nikovanmeurs commented 9 years ago

I'm in the process of creating a test suite for a Cordova app using Intern and Appium. I've got a simple test suite defined as follows:

define(function (require) {

var test            = require('intern!bdd'),
expect          = require('intern/chai!expect');

test.describe('POC', function () {

test.it('false should not equal true', function () {
expect(false).to.not.equal(true);
});
});
});

The test runner starts the app and detects readyState, but then seems to stop:

intern-runner config=intern.phone.js

Listening on 0.0.0.0:9000
Tunnel started
‣ Created session Any browser on any platform 8.4 (274d0914-7072-4442-b029-bd3b2dd258ce)
info: Welcome to Appium v1.4.10 (REV c97e824665ae82df682a0b540b38dfe8c13c8ac7)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
info: --> POST /wd/hub/session {"desiredCapabilities":{"deviceName":"iPhone 5","udid":"bfaa20b294c29a1bc300aafd156a8d4a4cb38047","platformName":"iOS","platformVersion":"8.4","bundleId":"com.phonegap.helloworld","autoWebview":true,"orientation":"PORTRAIT","name":"intern.phone.js","idle-timeout":60}}
info: Client User-Agent string: dojo/2.0.0-dev Node.js/0.12.4
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : name, idle-timeout
info: [debug] App is an iOS bundle, will attempt to run as pre-existing
info: [debug] Creating new appium session 41d0af1b-c215-46f4-8150-478adb6868db
info: [debug] Removing any remaining instruments sockets
info: [debug] Cleaned up instruments socket /tmp/instruments_sock
info: [debug] Auto-detecting iOS udid...
info: [debug] Not auto-detecting udid, running on sim
info: [debug] Localizable.strings is not currently supported when using real devices.
info: [debug] Creating instruments
info: [debug] Preparing uiauto bootstrap
info: [debug] Dynamic bootstrap dir: /Users/Niko/Library/Application Support/appium/bootstrap
info: [debug] Dynamic env: {"nodePath":"/usr/local/bin/node","commandProxyClientPath":"/usr/local/lib/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js","instrumentsSock":"/tmp/instruments_sock","interKeyDelay":null,"justLoopInfinitely":false,"autoAcceptAlerts":false,"autoDismissAlerts":false,"sendKeyStrategy":"grouped"}
...o: [debug] Dynamic bootstrap code: // This file is automatically generated. Do not manually modify!
info: [debug] Dynamic bootstrap path: /Users/Niko/Library/Application Support/appium/bootstrap/bootstrap-b9386a3e86c79ab7.js
info: [debug] Reusing dynamic bootstrap: /Users/Niko/Library/Application Support/appium/bootstrap/bootstrap-b9386a3e86c79ab7.js
info: [debug] Attempting iOS device log capture via libimobiledevice idevicesyslog
info: [debug] Creating iDevice object with udid bfaa20b294c29a1bc300aafd156a8d4a4cb38047
info: [debug] App is installed.
info: [debug] fullReset not requested. No need to install.
info: [debug] Starting command proxy.
info: [debug] Instruments socket server started at /tmp/instruments_sock
info: [debug] Starting instruments
info: [debug] Instruments is at: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments
info: Launching instruments
info: [debug] Attempting to run app on real device with UDID bfaa20b294c29a1bc300aafd156a8d4a4cb38047
info: [debug] Spawning instruments with command: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate -D /tmp/appium-instruments/instrumentscli0.trace -w bfaa20b294c29a1bc300aafd156a8d4a4cb38047 com.phonegap.helloworld -e UIASCRIPT "/Users/Niko/Library/Application Support/appium/bootstrap/bootstrap-b9386a3e86c79ab7.js" -e UIARESULTSPATH /tmp/appium-instruments
info: [debug] And extra without-delay env: {}
info: [debug] And launch timeouts (in ms): {"global":90000}
info: [debug] [INST STDERR] 2015-08-18 10:32:43.507 instruments[1377:43493] WebKit Threading Violation - initial use of WebKit from a secondary thread.
info: Instruments is ready to receive commands
info: [debug] Instruments launched. Starting poll loop for new commands.
info: [debug] Setting bootstrap config keys/values
info: [debug] Pushing command to appium work queue: "target = $.target();\nau = $;\n$.isVerbose = true;\n"
info: [debug] Socket data received (2 bytes)
info: [debug] Socket data being routed.
info: [debug] Sending command to instruments: target = $.target();
au = $;
$.isVerbose = true;

info: [debug] [INST] 2015-08-18 08:32:47 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-08-18 08:32:47 +0000 Debug: responding with:
info: [debug] [INST] 2015-08-18 08:32:47 +0000 Debug: Running system command #1: /usr/local/bin/node /usr/local/lib/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":true}...
info: [debug] Socket data received (27 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":true}
info: [debug] Setting initial orientation to PORTRAIT
info: [debug] Pushing command to appium work queue: "au.setScreenOrientation('PORTRAIT')"
info: [debug] Sending command to instruments: au.setScreenOrientation('PORTRAIT')
info: [debug] [INST] 2015-08-18 08:32:48 +0000 Debug: Got new command 1 from instruments: au.setScreenOrientation('PORTRAIT')
info: [debug] [INST] 2015-08-18 08:32:48 +0000 Debug: evaluating au.setScreenOrientation('PORTRAIT')
info: [debug] [INST] 2015-08-18 08:32:48 +0000 Debug: target.setDeviceOrientation("1")
info: [debug] [INST] 2015-08-18 08:32:49 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-08-18 08:32:49 +0000 Debug: responding with:
info: [debug] [INST] 2015-08-18 08:32:49 +0000 Debug: Running system command #2: /usr/local/bin/node /usr/local/lib/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":"PORTRAIT"}...
info: [debug] Socket data received (33 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":"PORTRAIT"}
info: [debug] Setting auto webview
info: [debug] Waiting for 6000 ms before navigating to view.
info: [debug] Navigating to most recently opened webview
info: [debug] [REMOTE] Getting WebKitRemoteDebugger pageArray
info: [debug] Picking webview WEBVIEW_7
info: [debug] Attempting to set context to 'WEBVIEW_7'
info: [debug] [REMOTE] Debugger web socket connected to url [ws://localhost:27753/devtools/page/7]
info: [debug] [REMOTE] Unregistering from page readiness notifications
info: [debug] Waiting for app source to contain elements
info: [debug] Pushing command to appium work queue: "au.mainApp().getTreeForXML()"
info: [debug] Sending command to instruments: au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-08-18 08:32:56 +0000 Debug: Got new command 2 from instruments: au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-08-18 08:32:56 +0000 Debug: evaluating au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-08-18 08:32:57 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-08-18 08:32:57 +0000 Debug: responding with:true,"valid":true,"visible":true,"hint":null,"path":"/0/0","x":0,"y":0,"width":320,"height":568},">":[{"UIAScrollView":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/0/0","x":0,"y":0,"width":320,"height":568},">":[{"UIAWebView":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/0/0/0","x":0,"y":0,"width":320,"height":568},">":[{"UIAStaticText":{"@":{"name":"PHONEGAP","label":"PHONEGAP","value":"1","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/0/0/0/0","x":96,"y":349,"width":129,"height":30},">":[]}},{"UIAStaticText":{"@":{"name":"DEVICE IS READY","label":"DEVICE IS READY","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/0/0/0/1","x":112,"y":382,"width":97,"height":15},">":[]}}]}},{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/0/0/1","x":317.5,"y":0,"width":2.5,"height":568},">":[]}},{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/0/0/2","x":0,"y":565.5,"width":320,"height":2.5},">":[]}}]}}]}},{"UIAWindow":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1","x":0,"y":0,"width":320,"height":568},">":[{"UIAStatusBar":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/0","x":0,"y":0,"width":320,"height":20},">":[{"UIAElement":{"@":{"name":"4 of 5 bars, signal strength","label":"4 of 5 bars, signal strength","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers t
o reveal the control center, Double-tap to scroll to top","path":"/0/1/0/0","x":6,"y":0,"width":35,"height":20},">":[]}},{"UIAElement":{"@":{"name":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/1/0/1","x":44,"y":0,"width":68,"height":20},">":[]}},{"UIAElement":{"@":{"name":"4G","label":"4G","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/1/0/2","x":121,"y":0,"width":17,"height":20},">":[]}},{"UIAElement":{"@":{"name":"10:32","label":"10:32","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/1/0/3","x":145,"y":0,"width":30,"height":20},">":[]}},{"UIAElement":{"@":{"name":"Alarm set","label":"Alarm set","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/1/0/4","x":232,"y":0,"width":10,"height":20},">":[]}},{"UIAElement":{"@":{"name":"100% battery power, Charging","label":"100% battery power, Charging","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/1/0/5","x":248,"y":0,"w
idth":67,"height":20},">":[]}}]}}]}}]}}}
info: [debug] [INST] 2015-08-18 08:32:57 +0000 Debug: Running system command #3: /usr/local/bin/node /usr/local/lib/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":{"UIAApplication":{"@":{"name":"Hello World","label":"Hello World","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,...
info: [debug] Socket data received (4272 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":{"UIAApplication":{"@":{"name":"Hello World","label":"Hello World","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0","x":0,"y":20,"width":320,"height":548},">":[{"UIAWindow":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":
info: [debug] Device launched! Ready for commands
info: [debug] Setting command timeout to the default of 60 secs
info: [debug] Appium session started with sessionId 41d0af1b-c215-46f4-8150-478adb6868db
info: <-- POST /wd/hub/session 303 18181.437 ms - 74
info: --> GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db {}
info: [debug] Responding to client with success: {"status":0,"value":{"webStorageEnabled":false,"locationContextEnabled":false,"browserName":"iOS","platform":"MAC","javascriptEnabled":true,"databaseEnabled":false,"takesScreenshot":true,"networkConnectionEnabled":false,"warnings":{},"desired":{"deviceName":"iPhone 5","udid":"bfaa20b294c29a1bc300aafd156a8d4a4cb38047","platformName":"iOS","platformVersion":"8.4","bundleId":"com.phonegap.helloworld","autoWebview":true,"orientation":"PORTRAIT","name":"intern.phone.js","idle-timeout":60},"deviceName":"iPhone 5","udid":"bfaa20b294c29a1bc300aafd156a8d4a4cb38047","platformName":"iOS","platformVersion":"8.4","bundleId":"com.phonegap.helloworld","autoWebview":true,"orientation":"PORTRAIT","name":"intern.phone.js","idle-timeout":60},"sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: <-- GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db 200 3.268 ms - 784 {"status":0,"value":{"webStorageEnabled":false,"locationContextEnabled":false,"browserName":"iOS","platform":"MAC","javascriptEnabled":true,"databaseEnabled":false,"takesScreenshot":true,"networkConnectionEnabled":false,"warnings":{},"desired":{"deviceName":"iPhone 5","udid":"bfaa20b294c29a1bc300aafd156a8d4a4cb38047","platformName":"iOS","platformVersion":"8.4","bundleId":"com.phonegap.helloworld","autoWebview":true,"orientation":"PORTRAIT","name":"intern.phone.js","idle-timeout":60},"deviceName":"iPhone 5","udid":"bfaa20b294c29a1bc300aafd156a8d4a4cb38047","platformName":"iOS","platformVersion":"8.4","bundleId":"com.phonegap.helloworld","autoWebview":true,"orientation":"PORTRAIT","name":"intern.phone.js","idle-timeout":60},"sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: --> POST /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/execute {"script":"return (function getCoverageData(coverageVariable) {\n\t\tvar coverageData = (function () { return this; })()[coverageVariable];\n\t\treturn coverageData && JSON.stringify(coverageData);\n\t}).apply(this, arguments);","args":["__internCoverage"]}
info: [debug] [REMOTE] Executing 'execute_script' atom in default context
info: [debug] [REMOTE] Sending javascript command
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Runtime.evaluate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"expression":"(function(){return function(){var g=this;\nfunctio...]
info: --> GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url {}
info: [debug] [REMOTE] Sending javascript command
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Runtime.evaluate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"expression":"window.location.href","returnByValue":true},"id":2...]
info: [debug] [REMOTE] Debugger web socket received data: {"result":{"result":{"type":"object","value":{"status":0,"value":null}},"wasThrown":false},"id":1}
info: [debug] Responding to client with success: {"status":0,"value":null,"sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: <-- POST /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/execute 200 27.350 ms - 76 {"status":0,"value":null,"sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: [debug] [REMOTE] Debugger web socket received data: {"result":{"result":{"type":"string","value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html"},"wasThrown":false},"id":2}
info: [debug] Responding to client with success: {"status":0,"value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: <-- GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url 200 24.890 ms - 200 {"status":0,"value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: --> POST /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url {"url":"http://localhost:9000/__intern/client.html?config=intern.phone.js&basePath=%2F&initialBaseUrl=%2F&reporters=WebDriver&rootSuiteName=Any%20browser%20on%20any%20platform%208.4%20-%20unit%20tests&sessionId=41d0af1b-c215-46f4-8150-478adb6868db"}
info: [debug] [REMOTE] Navigating to new URL: http://localhost:9000/__intern/client.html?config=intern.phone.js&basePath=%2F&initialBaseUrl=%2F&reporters=WebDriver&rootSuiteName=Any%20browser%20on%20any%20platform%208.4%20-%20unit%20tests&sessionId=41d0af1b-c215-46f4-8150-478adb6868db
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Page.navigate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"url":"http://localhost:9000/__intern/client.html?config=intern.pho...]
info: [debug] [REMOTE] Debugger web socket received data: {"result":{},"id":3}
info: [debug] [REMOTE] Debugger got a message for 'Page.navigate' and have no handler, doing nothing.
info: [debug] [REMOTE] Waiting for frame navigated...
info: [debug] [REMOTE] frame navigated timeout triggered
info: [debug] [REMOTE] Frame navigated, calling cbs
info: [debug] [REMOTE] frame navigated in 0.505 sec.
info: [debug] [REMOTE] Waiting for dom...
info: [debug] [REMOTE] Page loaded, verifying whether ready through readyState
info: [debug] [REMOTE] Checking document readyState
info: [debug] [REMOTE] Sending javascript command
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Runtime.evaluate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"expression":"(function (){return document.readyState;})()","ret...]
info: [debug] [REMOTE] Debugger web socket received data: {"result":{"result":{"type":"string","value":"complete"},"wasThrown":false},"id":4}
info: [debug] [REMOTE] readyState was complete
info: [debug] [REMOTE] Page is ready, calling onload cbs
info: [debug] Responding to client with success: {"status":0,"value":"","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: <-- POST /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url 200 2029.560 ms - 74 {"status":0,"value":"","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: [debug] [REMOTE] Sending javascript command
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Runtime.evaluate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"expression":"window.location.href","returnByValue":true},"id":5...]
info: [debug] [REMOTE] Debugger web socket received data: {"result":{"result":{"type":"string","value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html"},"wasThrown":false},"id":5}
info: [debug] Responding to client with success: {"status":0,"value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: <-- GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url 200 10.013 ms - 200 {"status":0,"value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: --> GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url {}
info: [debug] [REMOTE] Sending javascript command
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Runtime.evaluate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"expression":"window.location.href","returnByValue":true},"id":6...]
info: [debug] [REMOTE] Debugger web socket received data: {"result":{"result":{"type":"string","value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html"},"wasThrown":false},"id":6}
info: [debug] Responding to client with success: {"status":0,"value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}
info: <-- GET /wd/hub/session/41d0af1b-c215-46f4-8150-478adb6868db/url 200 8.512 ms - 200 {"status":0,"value":"file:///private/var/mobile/Containers/Bundle/Application/F762C7B9-FEE1-4749-A972-8E6F3BC1DEBF/Hello%20World.app/www/index.html","sessionId":"41d0af1b-c215-46f4-8150-478adb6868db"}

Is there something i'm missing or is this a problem with Intern / Appium?

csnover commented 9 years ago

Sorry this slipped through the cracks.

Something weird seems to be going on toward the end of the Appium log; the client test runner is loaded successfully, but then app/www/index.html seems to be loaded into the WebView even though I don’t see the calls indicating that the unit test system finished.

Could you please try with the latest Intern 3.0.3 and verify the problem still exists? You may also try disabling the heartbeat by setting 'idle-timeout': 0 in your environment capabilities and see if that stops index.html getting loaded prematurely.

It’s also possible the unit test system just doesn’t work in a Cordova app in which case you would set suites: null and only use functionalSuites.

jason0x43 commented 4 years ago

Closing this due to inactivity.