Utility scripts for shrinkers.
Bug: 160420801
Change-Id: I61e475a0221f08ce6ca3d476659b2201e7aea454
diff --git a/tools/keeprule_benchmark.py b/tools/keeprule_benchmark.py
index 7e7f47c..0a7e063 100755
--- a/tools/keeprule_benchmark.py
+++ b/tools/keeprule_benchmark.py
@@ -10,10 +10,11 @@
import time
import jdk
+import proguard
import toolhelper
import utils
-SHRINKERS = ['r8', 'pg']
+SHRINKERS = ['r8'] + proguard.getVersions()
INPUT_PROGRAM = utils.PINNED_R8_JAR
@@ -153,6 +154,9 @@
self.size = size
self.runs = runs
+def isPG(shrinker):
+ return proguard.isValidVersion(shrinker)
+
def shrinker_args(shrinker, keepfile, output):
if shrinker == 'r8':
return [
@@ -165,17 +169,16 @@
'--min-api', '10000',
'--pg-conf', keepfile,
]
- elif shrinker == 'pg':
- return [
- jdk.GetJavaExecutable(),
- '-jar', utils.PROGUARD_JAR,
+ elif isPG(shrinker):
+ return proguard.getCmd([
'-injars', INPUT_PROGRAM,
'-libraryjars', utils.RT_JAR,
'-outjars', output,
'-dontwarn', '**',
'-optimizationpasses', '2',
'@' + keepfile,
- ]
+ ],
+ version=shrinker)
else:
assert False, "Unexpected shrinker " + shrinker
@@ -219,7 +222,7 @@
subprocess.check_output(cmd)
t1 = time.time()
benchmark_runs.append(t1 - t0)
- if options.shrinker == 'pg':
+ if isPG(options.shrinker):
dexout = os.path.join(temp, '%s-out%d-dex.jar' % (name, i))
dex(out, dexout)
benchmark_size = utils.uncompressed_size(dexout)