mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-03 23:15:31 +00:00
61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
import subprocess
|
|
import webbrowser
|
|
import os
|
|
import argparse
|
|
|
|
DESCRIPTION = """ This script is made to run benchmark tests on Fenix. It'll open
|
|
the JSON output file in firefox (or another browser of your choice if you pass the string in)
|
|
"""
|
|
|
|
ff_browser = 'firefox'
|
|
target_directory = '{cwd}/app/build/'.format(cwd=os.getcwd())
|
|
output_path = '/storage/emulated/0/benchmark/'
|
|
output_file = 'org.mozilla.fenix-benchmarkData.json'
|
|
file_url = "file:///"
|
|
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser(description=DESCRIPTION)
|
|
parser.add_argument("class_to_test",
|
|
help="Path to the class to test. Format it as 'org.mozilla.fenix.[path_to_benchmark_test")
|
|
parser.add_argument("--open_file_in_browser",
|
|
help="Open the JSON file in the browser once the tests are done.")
|
|
return parser.parse_args()
|
|
|
|
|
|
def run_benchmark(class_to_test):
|
|
args = ['./gradlew', '-Pbenchmark', 'app:connectedCheck']
|
|
if class_to_test:
|
|
args.append("-Pandroid.testInstrumentationRunnerArguments.class={clazz}".format(clazz=class_to_test))
|
|
subprocess.run(args, check=True, text=True)
|
|
|
|
|
|
def fetch_benchmark_results():
|
|
subprocess.run(
|
|
['adb', 'pull', "{path}{file}".format(path=output_path, file=output_file)],
|
|
cwd=target_directory,check=True, text=True)
|
|
print("The benchmark results can be seen here: {file_path}"
|
|
.format(file_path=os.path.abspath("./{file}".format(file=file_url))))
|
|
|
|
|
|
def open_in_browser():
|
|
abs_path = os.path.abspath("{target_directory}{file}".format(target_directory=target_directory,
|
|
file=output_file))
|
|
webbrowser.get(ff_browser).open_new(file_url+abs_path)
|
|
|
|
|
|
def main():
|
|
args = parse_args()
|
|
run_benchmark(args.class_to_test)
|
|
fetch_benchmark_results()
|
|
if args.open_file_in_browser:
|
|
open_in_browser()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|