From: Ryan Dahl Date: Wed, 24 Aug 2011 05:46:39 +0000 (-0700) Subject: tools/test.py to support marking files a libuv-broken X-Git-Tag: v0.5.5~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=06428d853cdf96dca5c0dddbedecb303173d2394;p=platform%2Fupstream%2Fnodejs.git 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". --- diff --git a/Makefile b/Makefile index 20c0795..1608840 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/tools/test.py b/tools/test.py index b0cd9ab..97b612c 100755 --- a/tools/test.py +++ b/tools/test.py @@ -46,6 +46,7 @@ sys.path.append(dirname(__file__) + "/../deps/v8/tools"); import utils VERBOSE = False +LIBUV_BROKEN_PATTERN = re.compile(r"//\s+libuv-broken") # --------------------------------------------- @@ -574,10 +575,11 @@ VARIANT_FLAGS = [[]] 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 @@ class TestRepository(TestSuite): 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: