Merge pull request #2619 from etiktin/ignore_native_modules_in_debug_tests_windows

Skip native modules in debug tests on Windows
This commit is contained in:
Cheng Zhao 2015-08-28 10:43:32 +08:00
commit 71d257b190
4 changed files with 40 additions and 22 deletions

1
.gitignore vendored
View file

@ -17,3 +17,4 @@ node_modules/
*.pyc
debug.log
npm-debug.log
atom/common/chrome_version.h

View file

@ -54,7 +54,7 @@ You can also only build the Debug target:
python script\build.py -c D
```
After building is done, you can find `electron.exe` under `out\D` (debug
After building is done, you can find `electron.exe` under `out\D` (debug
target) or under `out\R` (release target).
## 64bit build
@ -82,6 +82,15 @@ Test functionality using:
python script\test.py
```
Tests that include native modules (e.g. `runas`) can't be executed with the
debug build (see #2558 for details), but they will work with the release build.
To run the tests with the release build use:
```powershell
python script\test.py -R
```
## Troubleshooting
### Command xxxx not found

View file

@ -7,16 +7,20 @@ describe 'third-party module', ->
fixtures = path.join __dirname, 'fixtures'
temp.track()
describe 'runas', ->
it 'can be required in renderer', ->
require 'runas'
# If the test is executed with the debug build on Windows, we will skip it
# because native modules don't work with the debug build (see issue #2558).
if process.platform isnt 'win32' or
process.execPath.toLowerCase().indexOf('\\out\\d\\') is -1
describe 'runas', ->
it 'can be required in renderer', ->
require 'runas'
it 'can be required in node binary', (done) ->
runas = path.join fixtures, 'module', 'runas.js'
child = require('child_process').fork runas
child.on 'message', (msg) ->
assert.equal msg, 'ok'
done()
it 'can be required in node binary', (done) ->
runas = path.join fixtures, 'module', 'runas.js'
child = require('child_process').fork runas
child.on 'message', (msg) ->
assert.equal msg, 'ok'
done()
describe 'q', ->
Q = require 'q'

View file

@ -48,18 +48,22 @@ describe '<webview> tag', ->
webview.src = "file://#{fixtures}/pages/d.html"
document.body.appendChild webview
it 'loads native modules when navigation happens', (done) ->
listener = (e) ->
webview.removeEventListener 'did-finish-load', listener
listener2 = (e) ->
assert.equal e.message, 'function'
done()
webview.addEventListener 'console-message', listener2
webview.reload()
webview.addEventListener 'did-finish-load', listener
webview.setAttribute 'nodeintegration', 'on'
webview.src = "file://#{fixtures}/pages/native-module.html"
document.body.appendChild webview
# If the test is executed with the debug build on Windows, we will skip it
# because native modules don't work with the debug build (see issue #2558).
if process.platform isnt 'win32' or
process.execPath.toLowerCase().indexOf('\\out\\d\\') is -1
it 'loads native modules when navigation happens', (done) ->
listener = (e) ->
webview.removeEventListener 'did-finish-load', listener
listener2 = (e) ->
assert.equal e.message, 'function'
done()
webview.addEventListener 'console-message', listener2
webview.reload()
webview.addEventListener 'did-finish-load', listener
webview.setAttribute 'nodeintegration', 'on'
webview.src = "file://#{fixtures}/pages/native-module.html"
document.body.appendChild webview
describe 'preload attribute', ->
it 'loads the script before other scripts in window', (done) ->