aboutsummaryrefslogtreecommitdiff
path: root/shellgenerator.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-01-06 19:13:30 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-01-06 19:13:30 +0200
commit54e47554c36870a43061c0860e5a69494c18cc02 (patch)
tree4793982ba93ee7fce0422ff3b66422bb8f9c9480 /shellgenerator.py
parentc8fee3d4172f39da5bb05077a57a57284825007e (diff)
downloadmeson-54e47554c36870a43061c0860e5a69494c18cc02.zip
meson-54e47554c36870a43061c0860e5a69494c18cc02.tar.gz
meson-54e47554c36870a43061c0860e5a69494c18cc02.tar.bz2
Added unit test functionality to builder.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-xshellgenerator.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/shellgenerator.py b/shellgenerator.py
index 2f04ecd..009ac7c 100755
--- a/shellgenerator.py
+++ b/shellgenerator.py
@@ -26,10 +26,15 @@ class ShellGenerator():
self.environment = environment
self.interpreter = interpreter
self.build_filename = 'compile.sh'
+ self.test_filename = 'run_tests.sh'
self.processed_targets = {}
def generate(self):
self.interpreter.run()
+ self.generate_compile_script()
+ self.generate_test_script()
+
+ def generate_compile_script(self):
outfilename = os.path.join(self.environment.get_build_dir(), self.build_filename)
outfile = open(outfilename, 'w')
outfile.write('#!/bin/sh\n\n')
@@ -43,6 +48,27 @@ class ShellGenerator():
os.chmod(outfilename, stat.S_IREAD | stat.S_IWRITE | stat.S_IEXEC |\
stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
+ def generate_test_script(self):
+ outfilename = os.path.join(self.environment.get_build_dir(), self.test_filename)
+ outfile = open(outfilename, 'w')
+ outfile.write('#!/bin/sh\n\n')
+ outfile.write('echo This is an autogenerated shell script test file for project \\"%s\\".\n'
+ % self.interpreter.get_project())
+ outfile.write('echo Run the compile script before this one or bad things will happen!\n')
+ cdcmd = ['cd', self.environment.get_build_dir()]
+ outfile.write(' '.join(shell_quote(cdcmd)) + '\n')
+ self.generate_tests(outfile)
+ outfile.close()
+ os.chmod(outfilename, stat.S_IREAD | stat.S_IWRITE | stat.S_IEXEC |\
+ stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
+
+ def generate_tests(self, outfile):
+ for t in self.interpreter.get_tests():
+ cmds = []
+ cmds.append(self.get_target_filename(t.get_exe()))
+ outfile.write('echo Running test \\"%s\\".\n' % t.get_name())
+ outfile.write(' '.join(shell_quote(cmds)) + ' || exit\n')
+
def generate_single_compile(self, target, outfile, src):
compiler = None
for i in self.interpreter.compilers: