Fix bench_pictures.cfg and add sanity check
Review URL: https://codereview.appspot.com/6946052
git-svn-id: http://skia.googlecode.com/svn/trunk@6822 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/bench_pictures.cfg b/tools/bench_pictures.cfg
index 0183b1c..116582d 100644
--- a/tools/bench_pictures.cfg
+++ b/tools/bench_pictures.cfg
@@ -55,12 +55,12 @@
TiledBitmapConfig(1024, 64),
# Different bounding box heirarchies, for different modes.
- RecordConfig(bbh='rtree'),
- RecordConfig(bbh='grid'),
- PlaybackCreationConfig(bbh='rtree'),
- PlaybackCreationConfig(bbh='grid'),
- TiledBitmapConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y, bbh='rtree'),
- TiledBitmapConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y, bbh='grid'),
+ RecordRTreeConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
+ PlaybackCreationRTreeConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
+ TileRTreeConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
+ RecordGridConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
+ PlaybackCreationGridConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
+ TileGridConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
]
diff --git a/tools/bench_pictures_cfg_helper.py b/tools/bench_pictures_cfg_helper.py
index c407181..1255952 100644
--- a/tools/bench_pictures_cfg_helper.py
+++ b/tools/bench_pictures_cfg_helper.py
@@ -42,5 +42,42 @@
def MultiThreadTileConfig(threads, tile_x, tile_y, **kwargs):
- return TiledBitmapConfig(multi=threads, tile_x=tile_x, tile_y=tile_y,
- **kwargs)
\ No newline at end of file
+ return TiledBitmapConfig(multi=str(threads), tile_x=tile_x, tile_y=tile_y,
+ **kwargs)
+
+
+def RTreeConfig(tile_x, tile_y, mode, **kwargs):
+ return BitmapConfig(mode=mode, bbh=['rtree', str(tile_x), str(tile_y)],
+ **kwargs)
+
+
+def GridConfig(tile_x, tile_y, mode, **kwargs):
+ return BitmapConfig(mode=mode, bbh=['grid', str(tile_x), str(tile_y)],
+ **kwargs)
+
+
+def RecordRTreeConfig(tile_x, tile_y, **kwargs):
+ return RTreeConfig(tile_x=tile_x, tile_y=tile_y, mode='record', **kwargs)
+
+
+def PlaybackCreationRTreeConfig(tile_x, tile_y, **kwargs):
+ return RTreeConfig(tile_x=tile_x, tile_y=tile_y, mode='playbackCreation',
+ **kwargs)
+
+
+def TileRTreeConfig(tile_x, tile_y, **kwargs):
+ return RTreeConfig(tile_x=tile_x, tile_y=tile_y,
+ mode=['tile', str(tile_x), str(tile_y)], **kwargs)
+
+
+def RecordGridConfig(tile_x, tile_y, **kwargs):
+ return GridConfig(tile_x=tile_x, tile_y=tile_y, mode='record', **kwargs)
+
+
+def PlaybackCreationGridConfig(tile_x, tile_y, **kwargs):
+ return GridConfig(tile_x, tile_y, mode='playbackCreation')
+
+
+def TileGridConfig(tile_x, tile_y, **kwargs):
+ return GridConfig(tile_x, tile_y, mode=['tile', str(tile_x), str(tile_y)],
+ **kwargs)
\ No newline at end of file
diff --git a/tools/tests/bench_pictures_cfg_test.py b/tools/tests/bench_pictures_cfg_test.py
new file mode 100644
index 0000000..1913e42
--- /dev/null
+++ b/tools/tests/bench_pictures_cfg_test.py
@@ -0,0 +1,36 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+"""
+Verify that the bench_pictures.cfg file is sane.
+"""
+
+
+import os
+import sys
+
+
+def Main(argv):
+ vars = {'import_path': 'tools'}
+ execfile(os.path.join('tools', 'bench_pictures.cfg'), vars)
+ bench_pictures_cfg = vars['bench_pictures_cfg']
+
+ for config_name, config_list in bench_pictures_cfg.iteritems():
+ if str(config_name) != config_name:
+ raise TypeError('%s is not a string!' % str(config_name))
+ for config in config_list:
+ for key, value in config.iteritems():
+ if str(key) != key:
+ raise TypeError('%s is not a string!\n%s' % (str(key), config))
+ if type(value).__name__ == 'list':
+ for item in value:
+ if str(item) != item:
+ raise TypeError('%s is not a string!\n%s' % (str(item), config))
+ else:
+ if str(value) != value:
+ raise TypeError('%s is not a string!\n%s' % (str(value), config))
+
+if __name__ == '__main__':
+ sys.exit(Main(sys.argv))
\ No newline at end of file