From: Danil Platonov Date: Mon, 13 Apr 2026 02:29:39 +0000 (-0700) Subject: pass scryer path through stream instead of env var X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=8e2dcd905b2032e834e8b16697b35ffdbf801bf6;p=scryer-prolog.git pass scryer path through stream instead of env var --- diff --git a/tests-pl/issue-http_open-hanging.pl b/tests-pl/issue-http_open-hanging.pl index 52018dc2..360f3b68 100644 --- a/tests-pl/issue-http_open-hanging.pl +++ b/tests-pl/issue-http_open-hanging.pl @@ -3,8 +3,13 @@ :- use_module(library(iso_ext)). :- use_module(library(os)). +prolog_path(Prolog) :- + read(Body), + term_variables(Body, [Prolog]), + Body. + server_start([Process,Out]) :- - getenv("PROLOG", Prolog), + prolog_path(Prolog), process_create(Prolog, ["tests-pl/issue-http_open-hanging_server", "-t", "server"], [process(Process), stdout(pipe(Out))]). diff --git a/tests/scryer/helper.rs b/tests/scryer/helper.rs index 910c0258..42be0e9a 100644 --- a/tests/scryer/helper.rs +++ b/tests/scryer/helper.rs @@ -52,6 +52,25 @@ pub(crate) fn load_module_test_with_tokio_runtime(file: &str, exp }); } +#[cfg(not(target_arch = "wasm32"))] +pub(crate) fn load_module_test_with_tokio_runtime_and_input( + file: &str, + input: impl Into>, + 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( file: &str, input: impl Into>, diff --git a/tests/scryer/issues.rs b/tests/scryer/issues.rs index d5e98cdd..e645fe02 100644 --- a/tests/scryer/issues.rs +++ b/tests/scryer/issues.rs @@ -1,6 +1,6 @@ use crate::helper::load_module_test; #[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; // issue #831 @@ -155,16 +155,14 @@ fn issue_rename_file() { load_module_test("tests-pl/issue_rename_file.pl", "file_renamed"); } -#[serial] #[test] #[cfg(feature = "http")] #[cfg(not(target_arch = "wasm32"))] #[cfg_attr(miri, ignore = "it takes too long to run")] fn http_open_hanging() { - std::env::set_var("PROLOG", env!("CARGO_BIN_EXE_scryer-prolog")); - - load_module_test_with_tokio_runtime( + load_module_test_with_tokio_runtime_and_input( "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" ); }