Permalink
Browse files

tools/test.py to support marking files a libuv-broken

Use

  export NODE_USE_UV=1
  python tools/test.py --libuv simple pummel

To run the equivalent of "make test-uv".
  • Loading branch information...
1 parent 4e1d6fc commit 06428d853cdf96dca5c0dddbedecb303173d2394 @ry ry committed Aug 24, 2011
Showing with 27 additions and 197 deletions.
  1. +2 −192 Makefile
  2. +25 −5 tools/test.py
View
@@ -68,201 +68,11 @@ test-pummel: all
test-internet: all
python tools/test.py internet
-UVTEST += simple/test-assert
-UVTEST += simple/test-buffer
-UVTEST += simple/test-c-ares
-UVTEST += simple/test-chdir
-UVTEST += simple/test-delayed-require
-UVTEST += simple/test-eio-race2
-UVTEST += simple/test-eio-race4
-UVTEST += simple/test-event-emitter-add-listeners
-UVTEST += simple/test-event-emitter-modify-in-emit
-UVTEST += simple/test-event-emitter-num-args
-UVTEST += simple/test-event-emitter-once
-UVTEST += simple/test-event-emitter-remove-all-listeners
-UVTEST += simple/test-event-emitter-remove-listeners
-UVTEST += simple/test-exception-handler
-UVTEST += simple/test-exception-handler2
-UVTEST += simple/test-exception-handler
-UVTEST += simple/test-executable-path
-UVTEST += simple/test-file-read-noexist
-UVTEST += simple/test-file-write-stream
-UVTEST += simple/test-fs-fsync
-UVTEST += simple/test-fs-open
-UVTEST += simple/test-fs-readfile-empty
-UVTEST += simple/test-fs-read-file-sync
-UVTEST += simple/test-fs-read-file-sync-hostname
-UVTEST += simple/test-fs-sir-writes-alot
-UVTEST += simple/test-fs-write
-UVTEST += simple/test-fs-write-buffer
-UVTEST += simple/test-fs-write-file
-UVTEST += simple/test-fs-write-file-buffer
-UVTEST += simple/test-fs-write-stream
-UVTEST += simple/test-fs-write-stream-end
-UVTEST += simple/test-fs-write-sync
-UVTEST += simple/test-global
-UVTEST += simple/test-http
-UVTEST += simple/test-http-1.0
-UVTEST += simple/test-http-abort-client
-UVTEST += simple/test-http-allow-req-after-204-res
-UVTEST += simple/test-http-blank-header
-UVTEST += simple/test-http-buffer-sanity
-UVTEST += simple/test-http-cat
-UVTEST += simple/test-http-chunked
-UVTEST += simple/test-http-client-abort
-UVTEST += simple/test-http-client-parse-error
-UVTEST += simple/test-http-client-race
-UVTEST += simple/test-http-client-race-2
-UVTEST += simple/test-http-client-upload
-UVTEST += simple/test-http-client-upload-buf
-UVTEST += simple/test-http-contentLength0
-UVTEST += simple/test-http-curl-chunk-problem
-UVTEST += simple/test-http-default-encoding
-UVTEST += simple/test-http-dns-fail
-UVTEST += simple/test-http-dns-error
-UVTEST += simple/test-http-eof-on-connect
-UVTEST += simple/test-http-exceptions
-UVTEST += simple/test-http-expect-continue
-UVTEST += simple/test-http-extra-response
-UVTEST += simple/test-http-head-request
-UVTEST += simple/test-http-head-response-has-no-body
-UVTEST += simple/test-http-keep-alive
-UVTEST += simple/test-http-keep-alive-close-on-header
-UVTEST += simple/test-http-malformed-request
-UVTEST += simple/test-http-many-keep-alive-connections
-UVTEST += simple/test-http-mutable-headers
-UVTEST += simple/test-http-parser
-UVTEST += simple/test-http-proxy
-UVTEST += simple/test-http-request-end
-UVTEST += simple/test-http-response-close
-UVTEST += simple/test-http-response-readable
-UVTEST += simple/test-http-unix-socket
-UVTEST += simple/test-http-server
-UVTEST += simple/test-http-server-multiheaders
-UVTEST += simple/test-http-set-cookies
-UVTEST += simple/test-http-set-timeout
-UVTEST += simple/test-http-set-trailers
-UVTEST += simple/test-http-upgrade-agent
-UVTEST += simple/test-http-upgrade-client
-UVTEST += simple/test-http-upgrade-client2
-UVTEST += simple/test-http-upgrade-server
-UVTEST += simple/test-http-upgrade-server2
-UVTEST += simple/test-http-wget
-UVTEST += simple/test-http-write-empty-string
-UVTEST += simple/test-http-wget
-UVTEST += simple/test-mkdir-rmdir
-UVTEST += simple/test-net-binary
-UVTEST += simple/test-net-pingpong
-UVTEST += simple/test-net-can-reset-timeout
-UVTEST += simple/test-net-connect-buffer
-UVTEST += simple/test-net-connect-timeout
-UVTEST += simple/test-net-create-connection
-UVTEST += simple/test-net-eaddrinuse
-UVTEST += simple/test-net-isip
-UVTEST += simple/test-net-keepalive
-UVTEST += simple/test-net-pingpong
-UVTEST += simple/test-net-reconnect
-UVTEST += simple/test-net-remote-address-port
-UVTEST += simple/test-net-server-bind
-UVTEST += simple/test-net-server-max-connections
-UVTEST += simple/test-net-server-try-ports
-UVTEST += simple/test-net-stream
-UVTEST += simple/test-net-socket-timeout
-UVTEST += simple/test-next-tick
-UVTEST += simple/test-next-tick-doesnt-hang
-UVTEST += simple/test-next-tick-errors
-UVTEST += simple/test-next-tick-ordering
-UVTEST += simple/test-next-tick-ordering2
-UVTEST += simple/test-next-tick-starvation
-UVTEST += simple/test-module-load-list
-UVTEST += simple/test-path
-UVTEST += simple/test-pipe-stream
-UVTEST += simple/test-pipe-file-to-http
-UVTEST += simple/test-process-env
-UVTEST += simple/test-pump-file2tcp
-UVTEST += simple/test-pump-file2tcp-noexist
-UVTEST += simple/test-punycode
-UVTEST += simple/test-querystring
-UVTEST += simple/test-readdir
-UVTEST += simple/test-readdouble
-UVTEST += simple/test-readfloat
-UVTEST += simple/test-readint
-UVTEST += simple/test-readuint
-UVTEST += simple/test-regress-GH-746
-UVTEST += simple/test-regress-GH-819
-UVTEST += simple/test-regress-GH-897
-UVTEST += simple/test-regress-GH-1531
-UVTEST += simple/test-regression-object-prototype
-UVTEST += simple/test-repl
-UVTEST += simple/test-require-cache
-UVTEST += simple/test-require-cache-without-stat
-UVTEST += simple/test-require-exceptions
-UVTEST += simple/test-require-resolve
-UVTEST += simple/test-script-context
-UVTEST += simple/test-script-new
-UVTEST += simple/test-script-static-context
-UVTEST += simple/test-script-static-new
-UVTEST += simple/test-script-static-this
-UVTEST += simple/test-script-this
-UVTEST += simple/test-stream-pipe-cleanup
-UVTEST += simple/test-stream-pipe-error-handling
-UVTEST += simple/test-stream-pipe-event
-UVTEST += simple/test-stream-pipe-multi
-UVTEST += simple/test-string-decoder
-UVTEST += simple/test-sys
-UVTEST += simple/test-tcp-wrap
-UVTEST += simple/test-tcp-wrap-connect
-UVTEST += simple/test-tcp-wrap-listen
-UVTEST += simple/test-timers-linked-list
-UVTEST += simple/test-tty-stdout-end
-UVTEST += simple/test-umask
-UVTEST += simple/test-url
-UVTEST += simple/test-utf8-scripts
-UVTEST += simple/test-vm-create-context-circular-reference
-UVTEST += simple/test-writedouble
-UVTEST += simple/test-writefloat
-UVTEST += simple/test-writeint
-UVTEST += simple/test-writeuint
-UVTEST += simple/test-zerolengthbufferbug
-UVTEST += pummel/test-http-client-reconnect-bug
-UVTEST += pummel/test-http-upload-timeout
-UVTEST += pummel/test-net-many-clients
-UVTEST += pummel/test-net-pause
-UVTEST += pummel/test-net-pingpong-delay
-UVTEST += pummel/test-net-timeout
-UVTEST += pummel/test-timers
-UVTEST += pummel/test-timer-wrap
-UVTEST += pummel/test-timer-wrap2
-UVTEST += pummel/test-vm-memleak
-UVTEST += internet/test-dns
-UVTEST += simple/test-tls-client-abort
-UVTEST += simple/test-tls-client-verify
-UVTEST += simple/test-tls-connect
-#UVTEST += simple/test-tls-ext-key-usage # broken
-UVTEST += simple/test-tls-junk-closes-server
-UVTEST += simple/test-tls-npn-server-client
-UVTEST += simple/test-tls-request-timeout
-#UVTEST += simple/test-tls-securepair-client # broken
-UVTEST += simple/test-tls-securepair-server
-#UVTEST += simple/test-tls-server-verify # broken
-UVTEST += simple/test-tls-set-encoding
-
-# child_process
-UVTEST += simple/test-child-process-exit-code
-UVTEST += simple/test-child-process-buffering
-UVTEST += simple/test-child-process-exec-cwd
-UVTEST += simple/test-child-process-cwd
-UVTEST += simple/test-child-process-env
-UVTEST += simple/test-child-process-stdin
-UVTEST += simple/test-child-process-ipc
-UVTEST += simple/test-child-process-deprecated-api
-
-
test-uv: all
- NODE_USE_UV=1 python tools/test.py $(UVTEST)
+ NODE_USE_UV=1 python tools/test.py --libuv simple
test-uv-debug: all
- NODE_USE_UV=1 python tools/test.py --mode=debug $(UVTEST)
+ NODE_USE_UV=1 python tools/test.py --mode=debug simple
out/Release/node: all
View
@@ -46,6 +46,7 @@
import utils
VERBOSE = False
+LIBUV_BROKEN_PATTERN = re.compile(r"//\s+libuv-broken")
# ---------------------------------------------
@@ -574,10 +575,11 @@ def GetName(self):
class TestRepository(TestSuite):
- def __init__(self, path):
+ def __init__(self, path, options):
normalized_path = abspath(path)
super(TestRepository, self).__init__(basename(normalized_path))
self.path = normalized_path
+ self.options = options
self.is_loaded = False
self.config = None
@@ -601,8 +603,20 @@ def GetBuildRequirements(self, path, context):
def AddTestsToList(self, result, current_path, path, context, mode):
for v in VARIANT_FLAGS:
tests = self.GetConfiguration(context).ListTests(current_path, path, mode)
- for t in tests: t.variant_flags = v
- result += tests
+
+ for t in tests:
+ t.variant_flags = v
+
+ if self.options.libuv:
+ source = open(t.file).read()
+ broken = LIBUV_BROKEN_PATTERN.search(source)
+ else:
+ broken = False
+
+ if not broken:
+ result += [ t ]
+ else:
+ print "Skipping libuv-broken: " + t.file
def GetTestStatus(self, context, sections, defs):
@@ -1163,6 +1177,8 @@ def BuildOptions():
default=False, action="store_true")
result.add_option("--valgrind", help="Run tests through valgrind",
default=False, action="store_true")
+ result.add_option("--libuv", help="Run only tests that aren't marks 'libuv-broken'",
+ default=False, action="store_true")
result.add_option("--cat", help="Print the source of the tests",
default=False, action="store_true")
result.add_option("--warn-unused", help="Report unused rules",
@@ -1298,8 +1314,12 @@ def Main():
workspace = abspath(join(dirname(sys.argv[0]), '..'))
suites = GetSuites(join(workspace, 'test'))
- repositories = [TestRepository(join(workspace, 'test', name)) for name in suites]
- repositories += [TestRepository(a) for a in options.suite]
+ repositories = [
+ TestRepository(join(workspace, 'test', name), options)
+ for name in suites
+ ]
+
+ repositories += [TestRepository(a, options) for a in options.suite]
root = LiteralTestSuite(repositories)
if len(args) == 0:

0 comments on commit 06428d8

Please sign in to comment.