Apart from being undesirable that debugging messages are always written to stdout, the information is redundant as a similar message is logged at debug level. #12681
The default is 'true'. When set 'false', file: and qrc: URLs are treated as invalid (unknown scheme) rather than opening local files, as requested in issue #12752. In order to test this, I added a mechanism to test/run-tests.py allowing individual tests to be annotated with command-line options to pass to phantomjs or the script.
Unfortunately, due to Qt and WebKit limitation, this is technically clearing all the cache used by every web page instance. It is the best we can have right now. #10357
In case Qt doesn't provide the information yet, deduce it from the OS kernel version (e.g. 14.x.y for OS 10.10 Yosemite). #12579
This is available via the new property called `release`. A very simple example to demonstrate it: var system = require('system'); console.log('Kernel release', system.os.release); which will print (on OS X 10.7.5 Lion): Kernel release 11.4.2 #12587
This means you don't have to wait 30 seconds in between invocations of run-tests.py. Also, if the test server fails to bind its port, print the actual OS-level error message rather than guessing what the problem is. issue #12439
* correctly fake a package to hold all the response-hook modules * use StringIO correctly in the response hooks * prevent .py(c) files in test/www/ from being accessed directly * prevent test/www/__init__ from being treated as a response hook * add a test case that makes sure the existing hooks _can_ return 200 OK (issue #12439; buggy commit 4d60e94)
If there are any positional arguments to test/run-tests.py, they are matched (verbatim, not as regular expressions) against each test's name. Only those tests whose names contain at least one of the positional arguments will be run. Thus, for instance, you can run just the webpage tests with ./test/run-tests.py module/webpage or one specific test with ./test/run-tests.py exact/name/of/test.js or the basics and standards tests with ./test/run-tests.py basics standards If no tests at all match, run-tests.py will print "ALL TESTS SKIPPED" and exit unsuccessfully. Ongoing work on issue #12439.
Rather than add all the special URLs we'll ever want to run-tests.py, the embedded HTTP server now supports scripts in test/www/. If you try to load http://localhost:9180/path and test/www/path doesn't exist but test/www/path.py does, then test/www/path.py is loaded as a module. That module must export one function, handle_request(), which is called to produce the response. handle_request() has the same semantics as SimpleHTTPRequestHandler.send_head(). That is, it takes one argument, the SimpleHTTPRequestHandler object, conventionally named 'req'. It should call the send_response(), send_header(), and end_headers() methods of that object as appropriate. And it should return a readable filelike whose contents are taken as the body of the response. If either module import or handle_request() throws any exception, the HTTP response will be a 500 Internal Server Error with body provided by cgitb. Ongoing work on issue #12439.
We already have 'base_path' as a global variable, so use that (or rather, a new derivative of that) instead of inspect.getfile(inspect.currentframe()). Rather than splitting the path and then iterating over every component trying to figure out if it's "special", take advantage of the fact that posixpath.normpath() will reliably produce a path with all ../ and bare-/ components at the very beginning. Preserve the distinction between paths with and without a trailing /, as SimpleHTTPRequestHandler expects. So that paths containing unusual (e.g. non-ASCII, non-UTF-8) segments can safely be tested, unquote and then requote the entire path. This means that the *bytes* corresponding to the ASCII characters 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz -_./ are guaranteed to be unquoted, and all other *bytes* are guaranteed to be %-quoted. (Note especially that *whether or not* the tests are being run on Windows, \ in the original URL will be represented as %5C, and will *not* be treated as a pathname separator.) So that the tests behave consistently whether or not the OS has a case- sensitive filesystem, after the above transformation, lowercase the entire path. Ongoing work on issue #12439.