1'''
2Compares the rendererings of serialized SkPictures to expected images.
3
4Launch with --help to see more information.
5
6
7Copyright 2012 Google Inc.
8
9Use of this source code is governed by a BSD-style license that can be
10found in the LICENSE file.
11'''
12# common Python modules
13import os
14import optparse
15import sys
16import shutil
17import tempfile
18import test_rendering
19
20USAGE_STRING = 'Usage: %s input... expectedDir'
21HELP_STRING = '''
22
23Takes input SkPicture files and renders them as PDF files, and then compares
24those resulting PDF files against PDF files found in expectedDir.
25
26Each instance of "input" can be either a file (name must end in .skp), or a
27directory (in which case this script will process all .skp files within the
28directory).
29'''
30
31
32def Main(args):
33    """Allow other scripts to call this script with fake command-line args.
34
35    @param The commandline argument list
36    """
37    parser = optparse.OptionParser(USAGE_STRING % '%prog' + HELP_STRING)
38    parser.add_option('--render_dir', dest='render_dir',
39                      help = ('specify the location to output the rendered '
40                      'files. Default is a temp directory.'))
41    parser.add_option('--diff_dir', dest='diff_dir',
42                      help = ('specify the location to output the diff files. '
43                      'Default is a temp directory.'))
44
45    options, arguments = parser.parse_args(args)
46
47    if (len(arguments) < 3):
48        print("Expected at least one input and one ouput folder.")
49        parser.print_help()
50        sys.exit(-1)
51
52    inputs = arguments[1:-1]
53    expected_dir = arguments[-1]
54
55    test_rendering.TestRenderSkps(inputs, expected_dir, options.render_dir,
56                                  options.diff_dir, 'render_pdfs', '')
57
58if __name__ == '__main__':
59    Main(sys.argv)
60
61