Mercurial > hg > Members > aka > jupyter_CbC_kernel
changeset 4:5c4b5066fab0
Do not try to execute the executable if compilation failed
author | Brendan Rius <brendan@omixy.com> |
---|---|
date | Fri, 25 Mar 2016 14:25:29 +0000 |
parents | 8ddfdd2a8574 |
children | c4f5d97f80d0 |
files | c_kernel/kernel.py |
diffstat | 1 files changed, 15 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/c_kernel/kernel.py Fri Mar 25 14:13:22 2016 +0000 +++ b/c_kernel/kernel.py Fri Mar 25 14:25:29 2016 +0000 @@ -54,19 +54,22 @@ with self.new_temp_file(suffix='.out') as binary_file: retcode, stdout, stderr = self.compile_with_gcc(source_file.name, binary_file.name) if retcode != 0: - stderr += "[C kernel] GCC exited with code {}".format(retcode) - self.log.error("GCC return code: {}".format(retcode)) - self.log.error("GCC stdout: {}".format(stdout)) - self.log.error("GCC stderr: {}".format(stderr)) + stderr += "[C kernel] GCC exited with code {}, the executable will not be executed".format(retcode) + self.log.info("GCC return code: {}".format(retcode)) + self.log.info("GCC stdout: {}".format(stdout)) + self.log.info("GCC stderr: {}".format(stderr)) - retcode, out, err = CKernel.execute_command([binary_file.name]) - if retcode != 0: - stderr += "[C kernel] Executable exited with code {}".format(retcode) - self.log.error("Executable retcode: {}".format(retcode)) - self.log.error("Executable stdout: {}".format(out)) - self.log.error("Executable stderr: {}".format(err)) - stdout += out - stderr += err + if retcode == 0: # If the compilation succeeded + retcode, out, err = CKernel.execute_command([binary_file.name]) + if retcode != 0: + stderr += "[C kernel] Executable exited with code {}".format(retcode) + self.log.info("Executable retcode: {}".format(retcode)) + self.log.info("Executable stdout: {}".format(out)) + self.log.info("Executable stderr: {}".format(err)) + stdout += out + stderr += err + else: + self.log.info('Compilation failed, the program will not be executed') if not silent: stream_content = {'name': 'stderr', 'text': stderr}