1# Copyright 2015 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import os 6import sys 7 8arches = ['i386', 'x86-64'] 9 10goldens = {} 11 12for fn in sys.argv[2:]: 13 dir, name = fn.split('/')[-2:] 14 name = name.rstrip('.txt') 15 golden = goldens.setdefault(name, [None] * len(arches)) 16 idx = arches.index(dir) 17 golden[idx] = open(fn).read() 18 19with open(sys.argv[1], 'w') as f: 20 f.write("""// Generated by sandbox/linux/bpf_dsl/golden/generate.py 21 22#ifndef SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_ 23#define SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_ 24 25namespace sandbox { 26namespace bpf_dsl { 27namespace golden { 28 29struct Golden { 30 const char* i386_dump; 31 const char* x86_64_dump; 32}; 33 34""") 35 36 for name, datas in sorted(goldens.items()): 37 f.write("const Golden k%s = {\n" % name) 38 for data in datas: 39 if data is None: 40 f.write(" nullptr,\n") 41 else: 42 f.write(" \"%s\",\n" % data.replace("\n", "\\n\\\n")) 43 f.write("};\n\n") 44 45 f.write("""\ 46} // namespace golden 47} // namespace bpf_dsl 48} // namespace sandbox 49 50#endif // SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_ 51""") 52