pass scryer path through stream instead of env var
This commit is contained in:
@@ -3,8 +3,13 @@
|
|||||||
:- use_module(library(iso_ext)).
|
:- use_module(library(iso_ext)).
|
||||||
:- use_module(library(os)).
|
:- use_module(library(os)).
|
||||||
|
|
||||||
|
prolog_path(Prolog) :-
|
||||||
|
read(Body),
|
||||||
|
term_variables(Body, [Prolog]),
|
||||||
|
Body.
|
||||||
|
|
||||||
server_start([Process,Out]) :-
|
server_start([Process,Out]) :-
|
||||||
getenv("PROLOG", Prolog),
|
prolog_path(Prolog),
|
||||||
process_create(Prolog,
|
process_create(Prolog,
|
||||||
["tests-pl/issue-http_open-hanging_server", "-t", "server"],
|
["tests-pl/issue-http_open-hanging_server", "-t", "server"],
|
||||||
[process(Process), stdout(pipe(Out))]).
|
[process(Process), stdout(pipe(Out))]).
|
||||||
|
|||||||
@@ -52,6 +52,25 @@ pub(crate) fn load_module_test_with_tokio_runtime<T: Expectable>(file: &str, exp
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
|
pub(crate) fn load_module_test_with_tokio_runtime_and_input<T: Expectable>(
|
||||||
|
file: &str,
|
||||||
|
input: impl Into<Cow<'static, str>>,
|
||||||
|
expected: T
|
||||||
|
) {
|
||||||
|
let runtime = tokio::runtime::Builder::new_multi_thread()
|
||||||
|
.enable_all()
|
||||||
|
.build()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
runtime.block_on(async move {
|
||||||
|
let mut wam = MachineBuilder::default()
|
||||||
|
.with_streams(StreamConfig::in_memory().with_user_input(InputStreamConfig::string(input)))
|
||||||
|
.build();
|
||||||
|
expected.assert_eq(wam.test_load_file(file).as_slice())
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn load_module_test_with_input<T: Expectable>(
|
pub(crate) fn load_module_test_with_input<T: Expectable>(
|
||||||
file: &str,
|
file: &str,
|
||||||
input: impl Into<Cow<'static, str>>,
|
input: impl Into<Cow<'static, str>>,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use crate::helper::load_module_test;
|
use crate::helper::load_module_test;
|
||||||
#[cfg(not(target_arch = "wasm32"))]
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
use crate::helper::load_module_test_with_tokio_runtime;
|
use crate::helper::load_module_test_with_tokio_runtime_and_input;
|
||||||
use serial_test::serial;
|
use serial_test::serial;
|
||||||
|
|
||||||
// issue #831
|
// issue #831
|
||||||
@@ -155,16 +155,14 @@ fn issue_rename_file() {
|
|||||||
load_module_test("tests-pl/issue_rename_file.pl", "file_renamed");
|
load_module_test("tests-pl/issue_rename_file.pl", "file_renamed");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[serial]
|
|
||||||
#[test]
|
#[test]
|
||||||
#[cfg(feature = "http")]
|
#[cfg(feature = "http")]
|
||||||
#[cfg(not(target_arch = "wasm32"))]
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
#[cfg_attr(miri, ignore = "it takes too long to run")]
|
#[cfg_attr(miri, ignore = "it takes too long to run")]
|
||||||
fn http_open_hanging() {
|
fn http_open_hanging() {
|
||||||
std::env::set_var("PROLOG", env!("CARGO_BIN_EXE_scryer-prolog"));
|
load_module_test_with_tokio_runtime_and_input(
|
||||||
|
|
||||||
load_module_test_with_tokio_runtime(
|
|
||||||
"tests-pl/issue-http_open-hanging.pl",
|
"tests-pl/issue-http_open-hanging.pl",
|
||||||
|
format!("PROLOG={:?}.", env!("CARGO_BIN_EXE_scryer-prolog")),
|
||||||
"received response with status code:200\nreceived response with status code:200\nreceived response with status code:200\nreceived response with status code:200\nreceived response with status code:200\n"
|
"received response with status code:200\nreceived response with status code:200\nreceived response with status code:200\nreceived response with status code:200\nreceived response with status code:200\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user