+++ /dev/null
-% hello
-% line!
-
-a :- b(X).
\ No newline at end of file
# issue 820
-args = ["-f", "--no-add-history", "-g", "test,halt", "tests-pl/issue820-goals.pl"]
+args = ["-f", "--no-add-history", "-g", "test,halt", "tests/scryer/cli/issues/issue820-goals.pl"]
binary = true
-['tests-pl/issue852-throw_e.pl'].
-['tests-pl/issue852-throw_e.pl'].
+['tests/scryer/cli/issues/issue852-throw_e.pl'].
+['tests/scryer/cli/issues/issue852-throw_e.pl'].
halt.
# issue 820
-args = ["-f", "--no-add-history", "-g", "test", "-g", "halt", "tests-pl/issue820-goals.pl"]
+args = ["-f", "--no-add-history", "-g", "test", "-g", "halt", "tests/scryer/cli/issues/issue820-goals.pl"]
binary = true
# issue 841
-args = ["-f", "--no-add-history", "tests-pl/issue841-occurs-check.pl"]
+args = ["-f", "--no-add-history", "tests/scryer/cli/issues/issue841-occurs-check.pl"]
binary = true
# issue 839
-args = ["-f", "--no-add-history", "tests-pl/issue839-op3.pl", "-g", "halt"]
+args = ["-f", "--no-add-history", "tests/scryer/cli/issues/issue839-op3.pl", "-g", "halt"]
binary = true
-['tests-pl/issue812-singleton-warning.pl'].
+['tests/scryer/cli/issues/issue812-singleton-warning.pl'].
halt.
-use assert_cmd::Command;
-use std::ffi::OsStr;
pub(crate) trait Expectable {
#[track_caller]
let mut wam = Machine::with_test_streams();
expected.assert_eq(wam.test_load_file(file).as_slice());
}
-
-pub const SCRYER_PROLOG: &str = "scryer-prolog";
-
-/// Test whether scryer-prolog
-/// produces the expected output when called with the supplied
-/// arguments and fed the supplied input
-pub fn run_top_level_test_with_args<
- A: IntoIterator<Item = AS>,
- S: Into<Vec<u8>>,
- O: assert_cmd::assert::IntoOutputPredicate<P>,
- AS: AsRef<OsStr>,
- P: predicates_core::Predicate<[u8]>,
->(
- args: A,
- stdin: S,
- expected_stdout: O,
-) {
- Command::cargo_bin(SCRYER_PROLOG)
- .unwrap()
- .arg("-f")
- .arg("--no-add-history")
- .args(args)
- .write_stdin(stdin)
- .assert()
- .stdout(expected_stdout.into_output())
- .success();
-}
mod issues;
mod src_tests;
-/// to generate new reference output files into dump/ run `TRYCMD=dump cargo test -- cli_test`
-/// check that the output is as expected, then move them next to the .toml file
+/// To add new cli test copy an existing .toml file in `tests/scryer/cli/issues/` or `tests/scryer/cli/issues/src_tests/`,
+/// adjust as necessary the `-f` and `--no-add-history` args should be kept but additional args may be added.
+/// For input on stdin add a .stdin file with the same filename.
+/// Then to generate new reference output files into dump/ run `TRYCMD=dump cargo test -- cli_test`
+/// check that the output in the .stdout and .stderr file is as expected, then move them next to the .toml file.
///
-/// to re-generate reference output files run `TRYCMD=overwrite cargo test -- cli_test`
+/// If a test does not have a .stderr or .stdout the corresponding output is ignored i.e. any and no output is accepted
+///
+/// to re-generate all reference output files run `TRYCMD=overwrite cargo test -- cli_test`
/// then check that the changes are as expected e.g. by looking at the `git diff`
#[test]
fn cli_tests() {
-use crate::helper::{load_module_test, run_top_level_test_with_args};
+use crate::helper::load_module_test;
use serial_test::serial;
#[serial]