def main(): args, unknown_args = _CreateArgparser().parse_known_args() # TODO(bsheedy): Remove this once all uses of --chartjson are removed. if args.chartjson: args.output_format = 'chartjson' chartjson = _BASE_CHART.copy() if args.output_format else None with build_utils.TempDir() as base_dir, build_utils.TempDir() as diff_dir: # Run resource_sizes.py on the two APKs resource_sizes_path = os.path.join(_ANDROID_DIR, 'resource_sizes.py') shared_args = (['python', resource_sizes_path, '--output-format=chartjson'] + unknown_args) base_args = shared_args + ['--output-dir', base_dir, args.base_apk] if args.out_dir_base: base_args += ['--chromium-output-directory', args.out_dir_base] try: subprocess.check_output(base_args, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print e.output raise diff_args = shared_args + ['--output-dir', diff_dir, args.diff_apk] if args.out_dir_diff: diff_args += ['--chromium-output-directory', args.out_dir_diff] try: subprocess.check_output(diff_args, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print e.output raise # Combine the separate results base_file = os.path.join(base_dir, _CHARTJSON_FILENAME) diff_file = os.path.join(diff_dir, _CHARTJSON_FILENAME) base_results = shared_preference_utils.ExtractSettingsFromJson(base_file) diff_results = shared_preference_utils.ExtractSettingsFromJson(diff_file) DiffResults(chartjson, base_results, diff_results) if args.include_intermediate_results: AddIntermediateResults(chartjson, base_results, diff_results) if args.output_format: chartjson_path = os.path.join(os.path.abspath(args.output_dir), _CHARTJSON_FILENAME) logging.critical('Dumping diff chartjson to %s', chartjson_path) with open(chartjson_path, 'w') as outfile: json.dump(chartjson, outfile) if args.output_format == 'histograms': histogram_result = convert_chart_json.ConvertChartJson(chartjson_path) if histogram_result.returncode != 0: logging.error('chartjson conversion failed with error: %s', histogram_result.stdout) return 1 histogram_path = os.path.join(os.path.abspath(args.output_dir), 'perf_results.json') logging.critical('Dumping diff histograms to %s', histogram_path) with open(histogram_path, 'w') as json_file: json_file.write(histogram_result.stdout)
def test_FilterAndroidResourceStringsXml(self): with build_utils.TempDir() as tmp_path: test_file = self._CreateTestResourceFile(tmp_path, 'foo', _TEST_RESOURCES_MAP_1, _TEST_NAMESPACES_1) resource_utils.FilterAndroidResourceStringsXml( test_file, lambda x: x in _TEST_RESOURCES_WHITELIST_1) self._CheckTestResourceFile(test_file, _TEST_XML_OUTPUT_2)
def test_GetRTxtStringResourceNames(self): with build_utils.TempDir() as tmp_dir: tmp_file = os.path.join(tmp_dir, "test_R.txt") with open(tmp_file, 'wt') as f: f.write(_TEST_R_TXT) self.assertListEqual( resource_utils.GetRTxtStringResourceNames(tmp_file), _TEST_R_TXT_STRING_RESOURCE_NAMES)
def main(): args, unknown_args = _CreateArgparser().parse_known_args() chartjson = _BASE_CHART.copy() if args.chartjson else None with build_utils.TempDir() as base_dir, build_utils.TempDir() as diff_dir: # Run resource_sizes.py on the two APKs resource_sizes_path = os.path.join(_ANDROID_DIR, 'resource_sizes.py') shared_args = (['python', resource_sizes_path, '--chartjson'] + unknown_args) base_args = shared_args + ['--output-dir', base_dir, args.base_apk] if args.out_dir_base: base_args += ['--chromium-output-directory', args.out_dir_base] try: subprocess.check_output(base_args, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print e.output raise diff_args = shared_args + ['--output-dir', diff_dir, args.diff_apk] if args.out_dir_diff: diff_args += ['--chromium-output-directory', args.out_dir_diff] try: subprocess.check_output(diff_args, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print e.output raise # Combine the separate results base_file = os.path.join(base_dir, _RESULTS_FILENAME) diff_file = os.path.join(diff_dir, _RESULTS_FILENAME) base_results = shared_preference_utils.ExtractSettingsFromJson( base_file) diff_results = shared_preference_utils.ExtractSettingsFromJson( diff_file) DiffResults(chartjson, base_results, diff_results) if args.include_intermediate_results: AddIntermediateResults(chartjson, base_results, diff_results) if args.chartjson: with open( os.path.join(os.path.abspath(args.output_dir), _RESULTS_FILENAME), 'w') as outfile: json.dump(chartjson, outfile)
def test_GenerateStringResourcesWhitelist(self): with build_utils.TempDir() as tmp_dir: tmp_module_rtxt_file = _CreateTestFile(tmp_dir, "test_R.txt", _TEST_R_TXT) tmp_whitelist_rtxt_file = _CreateTestFile(tmp_dir, "test_whitelist_R.txt", _TEST_WHITELIST_R_TXT) self.assertDictEqual( resource_utils.GenerateStringResourcesWhitelist( tmp_module_rtxt_file, tmp_whitelist_rtxt_file), _TEST_R_TEXT_RESOURCES_IDS)
def main(): parser = argparse.ArgumentParser() parser.add_argument('--classpath', required=True, action='append', help='What to use as javadoc\'s classpath. Can be ' 'specified multiple times.') parser.add_argument('--input-srcjar', help='Source JAR containing more files to process.') parser.add_argument('--java-files', required=True, help='Java files to process.') parser.add_argument('--output-dir', required=True, help='Directory to store the documentation.') parser.add_argument('--srcjar-files', help='When specified, only process the given files ' 'inside the srcjar set via --input-srcjar.') parser.add_argument('--stamp', required=True, help='File to touch on success.') options = parser.parse_args(build_utils.ExpandFileArgs(sys.argv[1:])) options.java_files = build_utils.ParseGypList(options.java_files) if options.srcjar_files and options.input_srcjar is None: print '--srcjar-files specified without --input-srcjar. Ignoring files.' with build_utils.TempDir() as temp_dir: java_files = options.java_files if options.input_srcjar: if options.srcjar_files: pattern = lambda f: f in options.srcjar_files java_files += [ os.path.join(temp_dir, f) for f in build_utils.ParseGypList(options.srcjar_files) ] else: pattern = None java_files += [os.path.join(temp_dir, '*.java')] build_utils.ExtractAll(options.input_srcjar, path=temp_dir) classpath = ':'.join(options.classpath) javadoc_cmd = [ 'javadoc', '-d', options.output_dir, '-classpath', classpath ] javadoc_cmd.extend(java_files) build_utils.CheckOutput(javadoc_cmd, print_stderr=True) build_utils.Touch(options.stamp)
def test_GetRTxtStringResourceNames(self): with build_utils.TempDir() as tmp_dir: tmp_file = _CreateTestFile(tmp_dir, "test_R.txt", _TEST_R_TXT) self.assertListEqual( resource_utils.GetRTxtStringResourceNames(tmp_file), _TEST_R_TXT_STRING_RESOURCE_NAMES)