| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import sys |
| |
| arches = ['i386', 'x86-64'] |
| |
| goldens = {} |
| |
| for fn in sys.argv[2:]: |
| dir, name = fn.split('/')[-2:] |
| name = name.rstrip('.txt') |
| golden = goldens.setdefault(name, [None] * len(arches)) |
| idx = arches.index(dir) |
| golden[idx] = open(fn).read() |
| |
| with open(sys.argv[1], 'w') as f: |
| f.write("""// Generated by sandbox/linux/bpf_dsl/golden/generate.py |
| |
| #ifndef SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_ |
| #define SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_ |
| |
| namespace sandbox { |
| namespace bpf_dsl { |
| namespace golden { |
| |
| struct Golden { |
| const char* i386_dump; |
| const char* x86_64_dump; |
| }; |
| |
| """) |
| |
| for name, datas in sorted(goldens.items()): |
| f.write("const Golden k%s = {\n" % name) |
| for data in datas: |
| if data is None: |
| f.write(" nullptr,\n") |
| else: |
| f.write(" \"%s\",\n" % data.replace("\n", "\\n\\\n")) |
| f.write("};\n\n") |
| |
| f.write("""\ |
| } // namespace golden |
| } // namespace bpf_dsl |
| } // namespace sandbox |
| |
| #endif // SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_ |
| """) |