Add a README.txt file.
[build-benchmarks.git] / cppcodebase.py
blobc439c426c22183363601e4473d6cf8b542af1492
1 #!/usr/bin/python
4 import os
5 import random
8 def SetDir(dir):
9 if (not os.path.exists(dir)):
10 os.mkdir(dir)
11 os.chdir(dir)
14 def lib_name(i):
15 return "lib_" + str(i)
17 def CreateHeader(name):
18 filename = name + ".h"
19 handle = file(filename, "w" )
21 guard = name + '_h_'
22 handle.write ('#ifndef ' + guard + '\n');
23 handle.write ('#define ' + guard + '\n\n');
25 handle.write ('class ' + name + ' {\n');
26 handle.write ('public:\n');
27 handle.write (' ' + name + '();\n');
28 handle.write (' ~' + name + '();\n');
29 handle.write ('};\n\n');
31 handle.write ('#endif\n');
34 def CreateCPP(name, lib_number, classes_per_lib, internal_includes, external_includes):
35 filename = name + ".cpp"
36 handle = file(filename, "w" )
38 header= name + ".h"
39 handle.write ('#include "' + header + '"\n');
41 includes = random.sample(xrange(classes_per_lib), internal_includes)
42 for i in includes:
43 handle.write ('#include "class_' + str(i) + '.h"\n')
45 if (lib_number > 0):
46 includes = random.sample(xrange(classes_per_lib), external_includes)
47 lib_list = xrange(lib_number)
48 for i in includes:
49 libname = 'lib_' + str(random.choice(lib_list))
50 handle.write ('#include <' + libname + '/' + 'class_' + str(i) + '.h>\n')
52 handle.write ('\n');
53 handle.write (name + '::' + name + '() {}\n');
54 handle.write (name + '::~' + name + '() {}\n');
56 def CreateLibrary(lib_number, classes, internal_includes, external_includes):
57 SetDir(lib_name(lib_number))
58 for i in xrange(classes):
59 classname = "class_" + str(i)
60 CreateHeader(classname)
61 CreateCPP(classname, lib_number, classes, internal_includes, external_includes)
62 os.chdir("..")
65 def CreateSetOfLibraries(libs, classes, internal_includes, external_includes, myfunction):
66 random.seed(12345)
67 for i in xrange(libs):
68 CreateLibrary(i, classes, internal_includes, external_includes)
69 myfunction(i, classes)