summaryrefslogtreecommitdiffstats
path: root/src/backends/mod.rs
diff options
context:
space:
mode:
authorsyn <isaqtm@gmail.com>2020-01-18 21:13:58 +0300
committersyn <isaqtm@gmail.com>2020-01-18 21:13:58 +0300
commitc5c41582a258996f3637f6cb586e5eaea56c1bd5 (patch)
tree2bd6d99ce98c48a28ac773cd3ba8a420ed1261ad /src/backends/mod.rs
parent396db96c2ce92adb34483b8c64bc3008c21604c9 (diff)
downloadevr-c5c41582a258996f3637f6cb586e5eaea56c1bd5.tar.gz
Support reporting signalled processes
Diffstat (limited to 'src/backends/mod.rs')
-rw-r--r--src/backends/mod.rs10
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");