diff options
author | syn <isaqtm@gmail.com> | 2020-01-18 21:13:58 +0300 |
---|---|---|
committer | syn <isaqtm@gmail.com> | 2020-01-18 21:13:58 +0300 |
commit | c5c41582a258996f3637f6cb586e5eaea56c1bd5 (patch) | |
tree | 2bd6d99ce98c48a28ac773cd3ba8a420ed1261ad /src/backends/mod.rs | |
parent | 396db96c2ce92adb34483b8c64bc3008c21604c9 (diff) | |
download | evr-c5c41582a258996f3637f6cb586e5eaea56c1bd5.tar.gz |
Support reporting signalled processes
Diffstat (limited to 'src/backends/mod.rs')
-rw-r--r-- | src/backends/mod.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/backends/mod.rs b/src/backends/mod.rs index b91bde5..25ac164 100644 --- a/src/backends/mod.rs +++ b/src/backends/mod.rs @@ -2,6 +2,7 @@ use std::path::{ Path, PathBuf }; use std::env::temp_dir; use lazy_static::lazy_static; use std::io::{ Error, ErrorKind, Result }; +use nix::sys::signal::Signal as NixSignal; pub mod python; pub mod clang; @@ -13,10 +14,17 @@ lazy_static! { static ref EVR_TMP_DIR: PathBuf = temp_dir().join("evr-tmp"); } +pub enum RunStatus { + Success, + ErrorCode(i32), + TimedOut(std::time::Duration), + Signal(NixSignal, bool), +} + pub trait Backend { fn get_template(&self) -> Option<&str>; - fn run(&self, fname: &Path) -> Result<()>; + fn run(&self, fname: &Path) -> Result<RunStatus>; fn try_guess_test_file(&self, fname: &Path) -> Option<PathBuf> { let maybe_test = fname.with_extension("txt"); |