166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis# Copyright (c) 2013 The Chromium Authors. All rights reserved. 266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis# Use of this source code is governed by a BSD-style license that can be 366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis# found in the LICENSE file. 466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisimport os 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 766a37686207944273ced825e0e8b6b6375f8c3deJamie GennisGYP_FILE = "trace_viewer.gyp" 866a37686207944273ced825e0e8b6b6375f8c3deJamie GennisFILE_GROUPS = ["tracing_html_files", 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis "tracing_css_files", 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis "tracing_js_files", 116833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis "tracing_template_files", 126833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis "tracing_img_files"] 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisdef GypCheck(): 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis f = open(GYP_FILE, 'r') 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis gyp = f.read() 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis f.close() 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis data = eval(gyp) 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis gyp_files = [] 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis for group in FILE_GROUPS: 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis gyp_files.extend(data["variables"][group]) 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis known_files = [] 2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis for (dirpath, dirnames, filenames) in os.walk('src'): 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis for name in filenames: 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if not name.endswith(("_test.js", "_test_data.js", "tests.html")): 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis known_files.append(os.path.join(dirpath, name)) 2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis u = set(gyp_files).union(set(known_files)) 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis i = set(gyp_files).intersection(set(known_files)) 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis diff = list(u - i) 3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if len(diff) == 0: 3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis return '' 3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis error = 'Entries in ' + GYP_FILE + ' do not match files on disk:\n' 3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis in_gyp_only = list(set(gyp_files) - set(known_files)) 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis in_known_only = list(set(known_files) - set(gyp_files)) 4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if len(in_gyp_only) > 0: 4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis error += ' In GYP only:\n ' + '\n '.join(sorted(in_gyp_only)) 4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if len(in_known_only) > 0: 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if len(in_gyp_only) > 0: 4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis error += '\n\n' 4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis error += ' On disk only:\n ' + '\n '.join(sorted(in_known_only)) 4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis return error 49