use std::default::Default;
use std::ffi::OsStr;
use tectonic::engines::NoopIoEventBackend;
use tectonic::io::testing::SingleInputFileIo;
use tectonic::io::{FilesystemPrimaryInputIo, IoProvider, IoStack, MemoryIo};
use tectonic::status::NoopStatusBackend;
use tectonic::TexEngine;
#[path = "util/mod.rs"]
mod util;
use crate::util::{test_path, ExpectedInfo};
#[test]
fn trip_test() {
util::set_test_root();
let mut p = test_path(&["trip", "trip"]);
p.set_extension("tex");
let mut tex = FilesystemPrimaryInputIo::new(&p);
p.set_extension("tfm");
let mut tfm = SingleInputFileIo::new(&p);
let expected_log = ExpectedInfo::read_with_extension(&mut p, "log");
let expected_xdv = ExpectedInfo::read_with_extension(&mut p, "xdv");
let expected_fot = ExpectedInfo::read_with_extension(&mut p, "fot");
p.set_file_name("tripos");
let expected_os = ExpectedInfo::read_with_extension(&mut p, "tex");
let mut mem = MemoryIo::new(true);
{
let mut io = IoStack::new(vec![&mut mem as &mut dyn IoProvider, &mut tex, &mut tfm]);
TexEngine::new()
.halt_on_error_mode(false)
.initex_mode(true)
.process(
&mut io,
&mut NoopIoEventBackend::new(),
&mut NoopStatusBackend::new(),
"INITEX",
"trip",
&Default::default(),
)
.unwrap();
}
{
let mut io = IoStack::new(vec![&mut mem as &mut dyn IoProvider, &mut tex, &mut tfm]);
TexEngine::new()
.halt_on_error_mode(false)
.initex_mode(false)
.process(
&mut io,
&mut NoopIoEventBackend::new(),
&mut NoopStatusBackend::new(),
"trip.fmt",
"trip",
&Default::default(),
)
.unwrap();
}
let files = &*mem.files.borrow();
expected_log.test_from_collection(files);
expected_xdv.test_from_collection(files);
expected_os.test_from_collection(files);
expected_fot.test_data(&files.get(OsStr::new("")).unwrap().data);
}
#[test]
fn etrip_test() {
util::set_test_root();
let mut p = test_path(&["trip", "etrip"]);
p.set_extension("tex");
let mut tex = FilesystemPrimaryInputIo::new(&p);
p.set_extension("tfm");
let mut tfm = SingleInputFileIo::new(&p);
let expected_log = ExpectedInfo::read_with_extension(&mut p, "log");
let expected_xdv = ExpectedInfo::read_with_extension(&mut p, "xdv");
let expected_fot = ExpectedInfo::read_with_extension(&mut p, "fot");
let expected_out = ExpectedInfo::read_with_extension(&mut p, "out");
let mut mem = MemoryIo::new(true);
let files = mem.files.clone();
{
let mut io = IoStack::new(vec![&mut mem as &mut dyn IoProvider, &mut tex, &mut tfm]);
TexEngine::new()
.halt_on_error_mode(false)
.initex_mode(true)
.process(
&mut io,
&mut NoopIoEventBackend::new(),
&mut NoopStatusBackend::new(),
"INITEX",
"etrip",
&Default::default(),
)
.unwrap();
}
{
let mut io = IoStack::new(vec![&mut mem, &mut tex, &mut tfm]);
TexEngine::new()
.halt_on_error_mode(false)
.initex_mode(false)
.process(
&mut io,
&mut NoopIoEventBackend::new(),
&mut NoopStatusBackend::new(),
"etrip.fmt",
"etrip",
&Default::default(),
)
.unwrap();
}
let files = &*files.borrow();
expected_log.test_from_collection(files);
expected_xdv.test_from_collection(files);
expected_out.test_from_collection(files);
expected_fot.test_data(&files.get(OsStr::new("")).unwrap().data);
}