summaryrefslogtreecommitdiffstats
path: root/src/backends/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/mod.rs')
-rw-r--r--src/backends/mod.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/backends/mod.rs b/src/backends/mod.rs
index 25ac164..010c4d9 100644
--- a/src/backends/mod.rs
+++ b/src/backends/mod.rs
@@ -3,6 +3,9 @@ use std::env::temp_dir;
use lazy_static::lazy_static;
use std::io::{ Error, ErrorKind, Result };
use nix::sys::signal::Signal as NixSignal;
+use std::process::Stdio;
+use std::fs::File;
+use log::warn;
pub mod python;
pub mod clang;
@@ -33,6 +36,22 @@ pub trait Backend {
}
None
}
+
+ fn get_stdin(&self, fname: &Path) -> Stdio {
+ match self.try_guess_test_file(fname) {
+ Some(test_filename) => match File::open(&test_filename) {
+ Ok(test_content) => {
+ println!("Using {}", test_filename.as_path().display());
+ Stdio::from(test_content)
+ },
+ Err(err) => {
+ warn!("Could not open test file. Fallback to piped: {}", err);
+ Stdio::piped()
+ }
+ },
+ None => Stdio::piped()
+ }
+ }
}
fn mk_tmp_dir() -> Result<&'static std::path::PathBuf> {