Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: ppapi/tests/create_nonsfi_test_nmf.py

Issue 294593005: Introduce create_nonsfi_test_nmf.py to simplify nacl_test_data.gyp (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
Mark Seaborn 2014/05/19 18:55:29 Can you remove "nonsfi" from the file's name, perh
hidehiko 2014/05/20 05:51:47 I'm not still very sure if this should be reused f
Mark Seaborn 2014/05/21 00:08:39 OK, let's not get bogged down in this review with
hidehiko 2014/05/21 13:25:32 Acknowledged. Thanks for reply.
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Simple tool to generate NMF file from given arguments for nonsfi."""
Mark Seaborn 2014/05/19 18:55:29 Can you add a comment saying why this tool exists,
hidehiko 2014/05/20 05:51:47 Could you tell me the future plans as I asked abov
Mark Seaborn 2014/05/21 00:08:39 The comment doesn't need to describe future plans,
hidehiko 2014/05/21 13:25:32 Done. Thank you for suggestion. How about this?
7
8 import argparse
9 import collections
10 import json
11 import logging
12 import os
13
14 _FILES_KEY = 'files'
15 _PORTABLE_KEY = 'portable'
16 _PROGRAM_KEY = 'program'
17 _URL_KEY = 'url'
18 _X86_32_NONSFI_KEY = 'x86-32-nonsfi'
19
20
21 def ParseArgs():
22 parser = argparse.ArgumentParser()
23 parser.add_argument(
24 '--program', metavar='FILE', help='Main program file')
Mark Seaborn 2014/05/19 18:55:29 Maybe s/file/nexe/ to be more specific?
hidehiko 2014/05/20 05:51:47 Done.
25 # To keep compatibility with create_nmf.py, we use -x and --extra-files
26 # as flags.
27 parser.add_argument(
28 '-x', '--extra-files', action='append', metavar='KEY:FILE', default=[],
29 help=('Add extra key:file tuple to the "files"' +
30 ' esection of the .nmf'))
Mark Seaborn 2014/05/19 18:55:29 Typo: "section"
hidehiko 2014/05/20 05:51:47 Done.
31 parser.add_argument(
32 '--output', metavar='FILE', help='Path to the output nmf file.')
33
34 return parser.parse_args()
35
36
37 def BuildNmfMap(root_path, program, extra_files):
38 """Build simple map representing nmf json."""
39 result = {
40 _PROGRAM_KEY: {
41 _X86_32_NONSFI_KEY: {
42 # The program path is relative to the root_path.
43 _URL_KEY: os.path.relpath(program, root_path)
44 }
45 }
46 }
47
48 if extra_files:
49 files = {}
50 for named_file in extra_files:
51 name, path = named_file.split(':', 1)
52 files[name] = {
53 _PORTABLE_KEY: {
54 # Note use path as is, unlike program path.
Mark Seaborn 2014/05/19 18:55:29 Add colon -- "Note:"?
hidehiko 2014/05/20 05:51:47 Done.
55 _URL_KEY: path
56 }
57 }
58 if files:
59 result[_FILES_KEY] = files
60
61 return result
62
63
64 def OutputNmf(nmf_map, output_path):
65 """Writes the nmf to an output file at given path in JSON format."""
66 with open(output_path, 'w') as output:
67 json.dump(nmf_map, output, indent=2)
68
69
70 def main():
71 args = ParseArgs()
72 if not args.program:
73 logging.error('--program is not specified.')
74 sys.exit(1)
75 if not args.output:
76 logging.error('--output is not specified.')
77 sys.exit(1)
78
79 nmf_map = BuildNmfMap(os.path.dirname(args.output),
80 args.program, args.extra_files)
81 OutputNmf(nmf_map, args.output)
82
83
84 if __name__ == '__main__':
85 main()
OLDNEW
« ppapi/ppapi_nacl_test_common.gypi ('K') | « ppapi/ppapi_nacl_test_common.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698