Skip to content

Commit

Permalink
tools: support testing known issues
Browse files Browse the repository at this point in the history
This commit adds a known_issues directory to the test directory
for scripts that reproduce known bugs. Since these scripts are
expected to fail, it also adds a --expect-fail flag to test.py
which reports tests as successful when they fail.

Refs: nodejs/testing#18
PR-URL: nodejs#5528
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Wyatt Preul <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
  • Loading branch information
cjihrig committed Mar 4, 2016
1 parent ad0ce57 commit 32e1f9d
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 3 deletions.
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,9 @@ test-internet: all
test-debugger: all
$(PYTHON) tools/test.py debugger

test-known-issues: all
$(PYTHON) tools/test.py known_issues --expect-fail

test-npm: $(NODE_EXE)
NODE=$(NODE) tools/test-npm.sh

Expand Down
6 changes: 6 additions & 0 deletions test/known_issues/testcfg.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import testpy

def GetConfiguration(context, root):
return testpy.SimpleTestConfiguration(context, root, 'known_issues')
10 changes: 7 additions & 3 deletions tools/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ def __init__(self, context, path, arch, mode):
self.thread_id = 0

def IsNegative(self):
return False
return self.context.expect_fail

def CompareTime(self, other):
return cmp(other.duration, self.duration)
Expand Down Expand Up @@ -778,13 +778,14 @@ def GetTestStatus(self, context, sections, defs):

class Context(object):

def __init__(self, workspace, buildspace, verbose, vm, args, timeout,
processor, suppress_dialogs, store_unexpected_output):
def __init__(self, workspace, buildspace, verbose, vm, args, expect_fail,
timeout, processor, suppress_dialogs, store_unexpected_output):
self.workspace = workspace
self.buildspace = buildspace
self.verbose = verbose
self.vm_root = vm
self.node_args = args
self.expect_fail = expect_fail
self.timeout = timeout
self.processor = processor
self.suppress_dialogs = suppress_dialogs
Expand Down Expand Up @@ -1289,6 +1290,8 @@ def BuildOptions():
result.add_option("--special-command", default=None)
result.add_option("--node-args", dest="node_args", help="Args to pass through to Node",
default=[], action="append")
result.add_option("--expect-fail", dest="expect_fail",
help="Expect test cases to fail", default=False, action="store_true")
result.add_option("--valgrind", help="Run tests through valgrind",
default=False, action="store_true")
result.add_option("--cat", help="Print the source of the tests",
Expand Down Expand Up @@ -1480,6 +1483,7 @@ def Main():
VERBOSE,
shell,
options.node_args,
options.expect_fail,
options.timeout,
processor,
options.suppress_dialogs,
Expand Down
1 change: 1 addition & 0 deletions vcbuild.bat
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ if /i "%1"=="test-gc" set test_args=%test_args% gc&set buildnodeweak=1&got
if /i "%1"=="test-internet" set test_args=%test_args% internet&goto arg-ok
if /i "%1"=="test-pummel" set test_args=%test_args% pummel&goto arg-ok
if /i "%1"=="test-all" set test_args=%test_args% sequential parallel message gc internet pummel&set buildnodeweak=1&set jslint=1&goto arg-ok
if /i "%1"=="test-known-issues" set test_args=%test_args% known_issues --expect-fail&goto arg-ok
if /i "%1"=="jslint" set jslint=1&goto arg-ok
if /i "%1"=="msi" set msi=1&set licensertf=1&set download_arg="--download=all"&set i18n_arg=small-icu&goto arg-ok
if /i "%1"=="build-release" set build_release=1&goto arg-ok
Expand Down

0 comments on commit 32e1f9d

Please sign in to comment.