1 # 2 # Copyright (C) 2017 The Android Open Source Project 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 # 16 """Updates .bp, .mk, .xml files under test/vts-testcase/fuzz. 17 18 Among files affected are: 19 Build rules: 20 1. test/vts-testcase/fuzz/func_fuzzerAndroid.bp 21 2. files matching: test/vts-testcase/fuzz/func_fuzzer/Android.bp 22 3. files matching: test/vts-testcase/fuzz/func_fuzzer/<hal_name>/<hal_version>/Android.bp 23 24 Config Files: 25 1. files matching: test/vts-testcase/fuzz/<hal_name>/<hal_version>/func_fuzzer/Android.mk 26 2. files matching: test/vts-testcase/fuzz/<hal_name>/<hal_version>/func_fuzzer/AndroidTest.xml 27 3. files matching: test/vts-testcase/fuzz/<hal_name>/<hal_version>/iface_fuzzer/Android.mk 28 4. files matching: test/vts-testcase/fuzz/<hal_name>/<hal_version>/iface_fuzzer/AndroidTest.xml 29 30 31 Usage: 32 python test/vts-testcase/fuzz/update_makefiles.py 33 """ 34 35 import argparse 36 import os 37 import sys 38 39 from build.func_fuzzer_build_rule_gen import FuncFuzzerBuildRuleGen 40 from config.config_gen import ConfigGen 41 42 if __name__ == '__main__': 43 parser = argparse.ArgumentParser() 44 parser.add_argument( 45 '--build', 46 dest='build', 47 action='store_true', 48 required=False, 49 help='Whether to create update build rules.') 50 51 parser.add_argument( 52 '--config', 53 dest='config', 54 action='store_true', 55 required=False, 56 help='Whether to create update config files.') 57 args = parser.parse_args() 58 59 if not args.build and not args.config: 60 print 'Updating build rules and config files.' 61 args.build = True 62 args.config = True 63 64 if args.build: 65 print 'Updating build rules.' 66 warning_header = ( 67 '// This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.\n' 68 '// Do not edit manually.\n') 69 build_rule_gen = FuncFuzzerBuildRuleGen(warning_header) 70 build_rule_gen.UpdateBuildRule() 71 72 if args.config: 73 print 'Updating config files.' 74 config_gen = ConfigGen() 75 config_gen.UpdateFuzzerConfigs() 76