UI cheeze.

This commit is contained in:
Michael Howell 2015-07-31 21:22:58 -07:00
parent 6749bed1f5
commit f82f46680e
2 changed files with 28 additions and 20 deletions

View file

@ -274,12 +274,14 @@ class MachCommands(CommandBase):
@Command('test-dromaeo',
description='Run the Dromaeo test suite',
category='testing')
@CommandArgument('tests', default=["recommended"], nargs="...",
help="Specific tests to run")
@CommandArgument('--release', '-r', action='store_true',
help='Run the release build')
@CommandArgument('--dev', '-d', action='store_true',
help='Run the dev build')
def test_dromaeo(self, release, dev):
return self.dromaeo_test_runner("test", release, dev)
def test_dromaeo(self, tests, release, dev):
return self.dromaeo_test_runner(tests, release, dev)
@Command('update-jquery',
description='Update the jQuery test suite expected results',
@ -378,7 +380,7 @@ class MachCommands(CommandBase):
return subprocess.check_call(
[run_file, cmd, bin_path, base_dir])
def dromaeo_test_runner(self, cmd, release, dev):
def dromaeo_test_runner(self, tests, release, dev):
self.ensure_bootstrapped()
base_dir = path.abspath(path.join("tests", "dromaeo"))
dromaeo_dir = path.join(base_dir, "dromaeo")
@ -401,5 +403,5 @@ class MachCommands(CommandBase):
bin_path = path.abspath(self.get_binary_path(release, dev))
return subprocess.check_call(
[run_file, cmd, bin_path, base_dir])
[run_file, "|".join(tests), bin_path, base_dir])

View file

@ -13,20 +13,20 @@ import SimpleHTTPServer
import SocketServer
import threading
import urlparse
import json
# Port to run the HTTP server on for Dromaeo.
TEST_SERVER_PORT = 8192
# Run servo and print / parse the results for a specific jQuery test module.
def run_servo(servo_exe):
url = "http://localhost:{0}/dromaeo/web/?recommended&automated&post_json".format(TEST_SERVER_PORT)
#url = "http://localhost:{0}/dromaeo/web/?sunspider-string-validate-input&automated&post_json".format(TEST_SERVER_PORT)
# Run servo and print / parse the results for a specific Dromaeo module.
def run_servo(servo_exe, tests):
url = "http://localhost:{0}/dromaeo/web/?{1}&automated&post_json".format(TEST_SERVER_PORT, tests)
args = [servo_exe, url, "-z", "-f"]
return subprocess.Popen(args)
# Print usage if command line args are incorrect
def print_usage():
print("USAGE: {0} test servo_binary dromaeo_base_dir".format(sys.argv[0]))
print("USAGE: {0} tests servo_binary dromaeo_base_dir".format(sys.argv[0]))
# Handle the POST at the end
@ -44,7 +44,7 @@ class RequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
if __name__ == '__main__':
if len(sys.argv) == 4:
cmd = sys.argv[1]
tests = sys.argv[1]
servo_exe = sys.argv[2]
base_dir = sys.argv[3]
os.chdir(base_dir)
@ -57,15 +57,21 @@ if __name__ == '__main__':
# Start the test server
server = BaseHTTPServer.HTTPServer(('', TEST_SERVER_PORT), RequestHandler)
if cmd == "test":
print("Testing Dromaeo on Servo!")
proc = run_servo(servo_exe)
server.got_post = False
while not server.got_post:
server.handle_request()
print("dromaeo: %s" % server.post_data)
proc.kill()
else:
print_usage()
print("Testing Dromaeo on Servo!")
proc = run_servo(servo_exe, tests)
server.got_post = False
while not server.got_post:
server.handle_request()
data = json.loads(server.post_data[0])
n = 0
l = 0
for test in data:
n = max(n, len(test) + len(data[test]) + 3)
l = max(l, len(test))
print("\n Test{0} | Time".format(" " * (l - len("Test"))))
print("-" * (n+2))
for test in data:
print(" {0}{1} | {2}".format(test, " " * (l - len(test)), data[test]))
proc.kill()
else:
print_usage()