Skip to content

Commit

Permalink
Add ./mach test-wpt-android
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonSapin committed Jul 20, 2018
1 parent 230a6da commit 45b710b
Showing 1 changed file with 36 additions and 16 deletions.
52 changes: 36 additions & 16 deletions python/servo/testing_commands.py
Expand Up @@ -367,6 +367,21 @@ def test_wpt(self, **kwargs):
else:
return ret

@Command('test-wpt-android',
description='Run the web platform test suite in an Android emulator',
category='testing',
parser=create_parser_wpt)
def test_wpt_android(self, release=False, dev=False, binary_args=None, **kwargs):
kwargs.update(
release=release,
dev=dev,
product="servodriver",
processes=1,
binary_args=self.in_android_emulator(release, dev) + (binary_args or []),
binary=sys.executable,
)
return self._test_wpt(**kwargs)

def _test_wpt(self, **kwargs):
hosts_file_path = path.join(self.context.topdir, 'tests', 'wpt', 'hosts')
os.environ["hosts_file_path"] = hosts_file_path
Expand Down Expand Up @@ -559,28 +574,15 @@ def filter_intermittents(self, summary, log_filteredsummary, log_intermittents,
@CommandArgument('--dev', '-d', action='store_true',
help='Run the dev build')
def test_android_startup(self, release, dev):
if (release and dev) or not (release or dev):
print("Please specify one of --dev or --release.")
return 1

avd = "servo-x86"
target = "i686-linux-android"
print("Assuming --target " + target)

env = self.build_env(target=target)
assert self.handle_android_target(target)
binary_path = self.get_binary_path(release, dev, android=True)
apk = binary_path + ".apk"

html = """
<script>
console.log("JavaScript is running!")
</script>
"""
url = "data:text/html;base64," + html.encode("base64").replace("\n", "")
py = path.join(self.context.topdir, "etc", "run_in_headless_android_emulator.py")
args = [sys.executable, py, avd, apk, url]
process = subprocess.Popen(args, stdout=subprocess.PIPE, env=env)
args = self.in_android_emulator(release, dev)
args = [sys.executable] + args + [url]
process = subprocess.Popen(args, stdout=subprocess.PIPE)
try:
while 1:
line = process.stdout.readline()
Expand All @@ -593,6 +595,24 @@ def test_android_startup(self, release, dev):
finally:
process.terminate()

def in_android_emulator(self, release, dev):
if (release and dev) or not (release or dev):
print("Please specify one of --dev or --release.")
sys.exit(1)

avd = "servo-x86"
target = "i686-linux-android"
print("Assuming --target " + target)

env = self.build_env(target=target)
os.environ["PATH"] = env["PATH"]
assert self.handle_android_target(target)
binary_path = self.get_binary_path(release, dev, android=True)
apk = binary_path + ".apk"

py = path.join(self.context.topdir, "etc", "run_in_headless_android_emulator.py")
return [py, avd, apk]

@Command('test-jquery',
description='Run the jQuery test suite',
category='testing')
Expand Down

0 comments on commit 45b710b

Please sign in to comment.