mirror of
https://github.com/uutils/coreutils
synced 2024-11-16 09:48:03 +00:00
7ef4bb37a8
The main motivation is to move toward running those tests for a specific target, that is, if a test won't run on Windows, then we shouldn't build it. This was previously the default behavior and prevented a successful run on AppVeyor. I borrowed this pattern from the tests in the Cargo project.
127 lines
5.4 KiB
Rust
127 lines
5.4 KiB
Rust
use common::util::*;
|
|
use tempdir::TempDir;
|
|
|
|
static UTIL_NAME: &'static str = "mktemp";
|
|
|
|
static TEST_TEMPLATE1: &'static str = "tempXXXXXX";
|
|
static TEST_TEMPLATE2: &'static str = "temp";
|
|
static TEST_TEMPLATE3: &'static str = "tempX";
|
|
static TEST_TEMPLATE4: &'static str = "tempXX";
|
|
static TEST_TEMPLATE5: &'static str = "tempXXX";
|
|
static TEST_TEMPLATE6: &'static str = "tempXXXlate";
|
|
static TEST_TEMPLATE7: &'static str = "XXXtemplate";
|
|
#[cfg(unix)]
|
|
static TEST_TEMPLATE8: &'static str = "tempXXXla/te";
|
|
#[cfg(windows)]
|
|
static TEST_TEMPLATE8: &'static str = "tempXXXla\\te";
|
|
|
|
const TMPDIR: &'static str = "TMPDIR";
|
|
|
|
#[test]
|
|
fn test_mktemp_mktemp() {
|
|
let ts = TestSet::new(UTIL_NAME);
|
|
|
|
let pathname = ts.fixtures.as_string();
|
|
|
|
let exit_success1 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE1).run().success;
|
|
let exit_success2 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE2).run().success;
|
|
let exit_success3 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE3).run().success;
|
|
let exit_success4 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE4).run().success;
|
|
let exit_success5 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE5).run().success;
|
|
let exit_success6 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE6).run().success;
|
|
let exit_success7 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE7).run().success;
|
|
let exit_success8 = ts.util_cmd().env(TMPDIR, &pathname).arg(TEST_TEMPLATE8).run().success;
|
|
|
|
|
|
assert!(exit_success1);
|
|
assert!(!exit_success2);
|
|
assert!(!exit_success3);
|
|
assert!(!exit_success4);
|
|
assert!(exit_success5);
|
|
assert!(exit_success6);
|
|
assert!(exit_success7);
|
|
assert!(!exit_success8);
|
|
}
|
|
|
|
// TODO: test directory option when implemented
|
|
|
|
#[test]
|
|
fn test_mktemp_dry_run() {
|
|
let ts = TestSet::new(UTIL_NAME);
|
|
|
|
let pathname = ts.fixtures.as_string();
|
|
|
|
let exit_success1 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE1).run().success;
|
|
let exit_success2 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE2).run().success;
|
|
let exit_success3 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE3).run().success;
|
|
let exit_success4 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE4).run().success;
|
|
let exit_success5 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE5).run().success;
|
|
let exit_success6 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE6).run().success;
|
|
let exit_success7 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE7).run().success;
|
|
let exit_success8 = ts.util_cmd().env(TMPDIR, &pathname).arg("-u").arg(TEST_TEMPLATE8).run().success;
|
|
|
|
|
|
assert!(exit_success1);
|
|
assert!(!exit_success2);
|
|
assert!(!exit_success3);
|
|
assert!(!exit_success4);
|
|
assert!(exit_success5);
|
|
assert!(exit_success6);
|
|
assert!(exit_success7);
|
|
assert!(!exit_success8);
|
|
}
|
|
|
|
// TOOD: test quiet option when correctry implemented
|
|
|
|
#[test]
|
|
fn test_mktemp_suffix() {
|
|
let ts = TestSet::new(UTIL_NAME);
|
|
|
|
let pathname = ts.fixtures.as_string();
|
|
|
|
let exit_success1 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE1).run().success;
|
|
let exit_success2 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE2).run().success;
|
|
let exit_success3 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE3).run().success;
|
|
let exit_success4 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE4).run().success;
|
|
let exit_success5 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE5).run().success;
|
|
let exit_success6 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE6).run().success;
|
|
let exit_success7 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE7).run().success;
|
|
let exit_success8 = ts.util_cmd().env(TMPDIR, &pathname).arg("--suffix").arg("suf").arg(TEST_TEMPLATE8).run().success;
|
|
|
|
|
|
assert!(exit_success1);
|
|
assert!(!exit_success2);
|
|
assert!(!exit_success3);
|
|
assert!(!exit_success4);
|
|
assert!(exit_success5);
|
|
assert!(!exit_success6);
|
|
assert!(!exit_success7);
|
|
assert!(!exit_success8);
|
|
}
|
|
|
|
#[test]
|
|
fn test_mktemp_tmpdir() {
|
|
let ts = TestSet::new(UTIL_NAME);
|
|
|
|
let path = TempDir::new_in(ts.fixtures.as_string(), UTIL_NAME).unwrap();
|
|
let pathname = path.path().as_os_str();
|
|
|
|
let exit_success1 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE1).run().success;
|
|
let exit_success2 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE2).run().success;
|
|
let exit_success3 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE3).run().success;
|
|
let exit_success4 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE4).run().success;
|
|
let exit_success5 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE5).run().success;
|
|
let exit_success6 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE6).run().success;
|
|
let exit_success7 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE7).run().success;
|
|
let exit_success8 = ts.util_cmd().arg("-p").arg(pathname).arg(TEST_TEMPLATE8).run().success;
|
|
|
|
|
|
assert!(exit_success1);
|
|
assert!(!exit_success2);
|
|
assert!(!exit_success3);
|
|
assert!(!exit_success4);
|
|
assert!(exit_success5);
|
|
assert!(exit_success6);
|
|
assert!(exit_success7);
|
|
assert!(!exit_success8);
|
|
}
|