use super::*;
use f2rust_std::*;
const LNSIZE: i32 = 80;
const WDSIZE: i32 = 32;
const MSGSIZ: i32 = 256;
const FILSIZ: i32 = 255;
const STYSIZ: i32 = 120;
pub fn TCLOSE(ctx: &mut Context) -> f2rust_std::Result<()> {
let mut ENV = [b' '; LNSIZE as usize];
let mut VERSN = [b' '; LNSIZE as usize];
let mut TIME = [b' '; LNSIZE as usize];
let mut TIME2 = [b' '; LNSIZE as usize];
let mut NAME = [b' '; WDSIZE as usize];
let mut MESSGE = [b' '; MSGSIZ as usize];
let mut FILE = [b' '; FILSIZ as usize];
let mut LOGFIL = [b' '; FILSIZ as usize];
let mut NFAIL: i32 = 0;
let mut NCASE: i32 = 0;
let mut FAILUR: bool = false;
let mut DUMMY: bool = false;
let mut OK: bool = false;
let mut GOOD = [b' '; STYSIZ as usize];
let mut BAD = [b' '; STYSIZ as usize];
if ISOFF(b"CHCKXC", ctx) {
CHCKXC(false, b" ", &mut OK, ctx)?;
DUMMY = SETOFF(b"CHCKXC", ctx);
}
spicelib::RESET(ctx);
spicelib::ERRDEV(b"SET", &mut b"NULL".clone(), ctx)?;
TSTSTY(&mut GOOD, &mut BAD, ctx);
TSTLIP(ctx)?;
TSTRUL(ctx)?;
TSTRUL(ctx)?;
TSTCBL(ctx)?;
T_NAME(&mut NAME, ctx);
T_FCOUNT(&mut NFAIL, ctx);
T_CNUM(&mut NCASE, ctx);
T_SUCCESS(&mut OK, ctx);
if OK {
fstr::assign(&mut MESSGE, b"Passed --- Test Family: ");
spicelib::SUFFIX(&NAME, 1, &mut MESSGE);
TSTLOG(&MESSGE, false, ctx)?;
TSTLGS(
b"LEFT 9 RIGHT 78 FLAG --- NEWLINE /cr",
b"LEFT 9 RIGHT 78 FLAG --- NEWLINE /cr",
ctx,
);
fstr::assign(&mut MESSGE, b"Successful tests for # of # test cases. ");
spicelib::REPMCT(&MESSGE.clone(), b"#", NCASE, b"L", &mut MESSGE, ctx)?;
spicelib::REPMCT(&MESSGE.clone(), b"#", NCASE, b"L", &mut MESSGE, ctx)?;
TSTLOG(&MESSGE, false, ctx)?;
} else {
fstr::assign(&mut MESSGE, b"FAILURE for Test Family: ");
spicelib::SUFFIX(&NAME, 1, &mut MESSGE);
TSTLOG(&MESSGE, false, ctx)?;
TSTLGS(
b"LEFT 24 RIGHT 78 FLAG : NEWLINE /cr",
b"LEFT 24 RIGHT 78 FLAG : NEWLINE /cr",
ctx,
);
fstr::assign(&mut MESSGE, b"# of # test cases failed. ");
spicelib::REPMCT(&MESSGE.clone(), b"#", NFAIL, b"C", &mut MESSGE, ctx)?;
spicelib::REPMCT(&MESSGE.clone(), b"#", NCASE, b"L", &mut MESSGE, ctx)?;
TSTLOG(&MESSGE, false, ctx)?;
}
support::CURTIM(&mut TIME2, ctx)?;
TSTLGS(&GOOD, &BAD, ctx);
T_ANYBAD(&mut FAILUR, ctx);
if !FAILUR {
TSTGLF(&mut LOGFIL, ctx);
TSTFIL(b"pass{0-9}{0-9}{0-9}{0-9}.log", b"SAVE", &mut FILE, ctx)?;
TSTSLF(&LOGFIL, ctx);
TSTGET(&mut ENV, &mut VERSN, &mut TIME, ctx);
TSTIOA(b"SAVE", ctx)?;
TSTIOH(b"LOG", ctx)?;
TSTIOH(b"SCREEN", ctx)?;
TSTWLN(&ENV, ctx)?;
TSTWLN(&VERSN, ctx)?;
TSTWLN(&TIME, ctx)?;
TSTIOA(b"LOG", ctx)?;
TSTIOA(b"SCREEN", ctx)?;
TSTWLN(b" ", ctx)?;
TSTWLN(b"All tests passed. ", ctx)?;
TSTIOH(b"SCREEN", ctx)?;
TSTWLN(b"Tests performed were:", ctx)?;
TSTWLN(b" ", ctx)?;
TBEGF(ctx);
TFNAME(&mut NAME, ctx);
while fstr::ne(&NAME, b" ") {
TSTWLN(&NAME, ctx)?;
TFNAME(&mut NAME, ctx);
}
TSTGLF(&mut MESSGE, ctx);
spicelib::PREFIX(b"For details, see the test log:", 1, &mut MESSGE);
TSTIOH(b"LOG", ctx)?;
TSTWLN(b" ", ctx)?;
TSTLOG(&MESSGE, false, ctx)?;
TSTWLN(b" ", ctx)?;
TSTLOG(&TIME2, false, ctx)?;
TSTWLN(b" ", ctx)?;
TSTIOC(b"SAVE", ctx)?;
TSTIOA(b"LOG", ctx)?;
TSTIOA(b"SCREEN", ctx)?;
}
CSTART(ctx)?;
TSTLOG(b" ", false, ctx)?;
TSTLOG(&TIME2, false, ctx)?;
TSTLOG(b" ", false, ctx)?;
FINISH(ctx)?;
Ok(())
}