# HG changeset patch # User Brendan Rius # Date 1458915929 0 # Node ID 5c4b5066fab0a771962dde0ded2b754284e82b80 # Parent 8ddfdd2a8574f77ce977ee7ff9d4b116c5f24a05 Do not try to execute the executable if compilation failed diff -r 8ddfdd2a8574 -r 5c4b5066fab0 c_kernel/kernel.py --- 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}