diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-06 19:13:30 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-06 19:13:30 +0200 |
commit | 54e47554c36870a43061c0860e5a69494c18cc02 (patch) | |
tree | 4793982ba93ee7fce0422ff3b66422bb8f9c9480 /shellgenerator.py | |
parent | c8fee3d4172f39da5bb05077a57a57284825007e (diff) | |
download | meson-54e47554c36870a43061c0860e5a69494c18cc02.zip meson-54e47554c36870a43061c0860e5a69494c18cc02.tar.gz meson-54e47554c36870a43061c0860e5a69494c18cc02.tar.bz2 |
Added unit test functionality to builder.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-x | shellgenerator.py | 26 |
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: |