Ignore native module tests on Windows debug build

This resolves #2558. There are no more errors when running test.py on
the debug build in Windows. When running the release build the tests
will be executed as usual.
This commit is contained in:
Eran Tiktin 2015-08-27 23:05:06 +03:00
parent b7d80e792d
commit 5337d8c23f
4 changed files with 40 additions and 22 deletions

1
.gitignore vendored
View file

@ -17,3 +17,4 @@ node_modules/
*.pyc *.pyc
debug.log debug.log
npm-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 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). target) or under `out\R` (release target).
## 64bit build ## 64bit build
@ -82,6 +82,15 @@ Test functionality using:
python script\test.py 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 ## Troubleshooting
### Command xxxx not found ### Command xxxx not found

View file

@ -7,16 +7,20 @@ describe 'third-party module', ->
fixtures = path.join __dirname, 'fixtures' fixtures = path.join __dirname, 'fixtures'
temp.track() temp.track()
describe 'runas', -> # If the test is executed with the debug build on Windows, we will skip it
it 'can be required in renderer', -> # because native modules don't work with the debug build (see issue #2558).
require 'runas' 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) -> it 'can be required in node binary', (done) ->
runas = path.join fixtures, 'module', 'runas.js' runas = path.join fixtures, 'module', 'runas.js'
child = require('child_process').fork runas child = require('child_process').fork runas
child.on 'message', (msg) -> child.on 'message', (msg) ->
assert.equal msg, 'ok' assert.equal msg, 'ok'
done() done()
describe 'q', -> describe 'q', ->
Q = require 'q' Q = require 'q'

View file

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