From 3a6b92d227bf682b41a0380e4d4ef3ec795f5e92 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bennet=20Ble=C3=9Fmann?= Date: Sun, 27 Jul 2025 20:36:07 +0200 Subject: [PATCH] more tests --- src/lib/process.pl | 6 ++-- tests/scryer/cli/src_tests/process.md | 46 ++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/lib/process.pl b/src/lib/process.pl index 6f293179..b754c331 100644 --- a/src/lib/process.pl +++ b/src/lib/process.pl @@ -71,9 +71,7 @@ process_create(Exe, Args, Options) :- % process_id(Process, Pid) :- valid_process(Process, process_id/2), - write(valid), nl, must_be(var, Pid), - write(var), nl, '$process_id'(Process, Pid). %% process_wait(+Process, Status). @@ -143,7 +141,9 @@ must_be_known_options(Valid, Options, Domain, Context) :- must_be_known_options_ must_be_known_options_(_, _, [], _, _). must_be_known_options_(Valid, Found, [X|XS], Domain, Context) :- - functor(X, Option, 1), + ( functor(X, Option, 1) -> true + ; domain_error(Domain, Option , Context) + ) , ( member(Option, Found) -> domain_error(non_duplicate_options, Option , Context) ; member(Option, Valid) -> true ; domain_error(Domain, Option, Context) diff --git a/tests/scryer/cli/src_tests/process.md b/tests/scryer/cli/src_tests/process.md index 76f8b3e4..39a955da 100644 --- a/tests/scryer/cli/src_tests/process.md +++ b/tests/scryer/cli/src_tests/process.md @@ -1,18 +1,24 @@ ```trycmd -$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [invalid(_), process(P)]), process_kill(P, _), halt' -use_module(library(process)),process_create([],[],[invalid(_[..]),process(P)]),process_kill(P,_[..]),halt causes: error(domain_error(process_create_option,invalid),process_create/3) +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [invalid, process(P)]), process_kill(P), halt' +use_module(library(process)),process_create([],[],[invalid,process(P)]),process_kill(P),halt causes: error(domain_error(process_create_option,_[..]),process_create/3) ``` ```trycmd -$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [stdin(null), stdin(null), process(P)]), process_kill(P, _), halt' -use_module(library(process)),process_create([],[],[stdin(null),stdin(null),process(P)]),process_kill(P,_[..]),halt causes: error(domain_error(non_duplicate_options,stdin),process_create/3) +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [invalid(_), process(P)]), process_kill(P), halt' +use_module(library(process)),process_create([],[],[invalid(_[..]),process(P)]),process_kill(P),halt causes: error(domain_error(process_create_option,invalid),process_create/3) ``` ```trycmd -$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [env([]), environment([]), process(P)]), process_kill(P, _), halt' -use_module(library(process)),process_create([],[],[env([]),environment([]),process(P)]),process_kill(P,_[..]),halt causes: error(domain_error(non_conflicting_options,[env([]),environment([])]),process_create/3) +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [stdin(null), stdin(null), process(P)]), process_kill(P), halt' +use_module(library(process)),process_create([],[],[stdin(null),stdin(null),process(P)]),process_kill(P),halt causes: error(domain_error(non_duplicate_options,stdin),process_create/3) + +``` + +```trycmd +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [env([]), environment([]), process(P)]), process_kill(P), halt' +use_module(library(process)),process_create([],[],[env([]),environment([]),process(P)]),process_kill(P),halt causes: error(domain_error(non_conflicting_options,[env([]),environment([])]),process_create/3) ``` @@ -23,7 +29,31 @@ use_module(library(process)),process_wait(pid,_[..],[invalid(_[..]),timeout(0)]) ``` ```trycmd -$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [stdin(invalid), process(P)]), process_kill(P, _), halt' -use_module(library(process)),process_create([],[],[stdin(invalid),process(P)]),process_kill(P,_[..]),halt causes: error(domain_error(stdio_spec,invalid),process_create/3) +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_create("", [], [stdin(invalid), process(P)]), process_kill(P), halt' +use_module(library(process)),process_create([],[],[stdin(invalid),process(P)]),process_kill(P),halt causes: error(domain_error(stdio_spec,invalid),process_create/3) + +``` + +```trycmd +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_wait(50, _), halt' +use_module(library(process)),process_wait(50,_[..]),halt causes: error(type_error(process,50),process_wait/2) + +``` + +```trycmd +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_kill(50), halt' +use_module(library(process)),process_kill(50),halt causes: error(type_error(process,50),process_kill/1) + +``` + +```trycmd +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_id(50,_), halt' +use_module(library(process)),process_id(50,_[..]),halt causes: error(type_error(process,50),process_id/2) + +``` + +```trycmd +$ scryer-prolog -f --no-add-history -g 'use_module(library(process)), process_release(50), halt' +use_module(library(process)),process_release(50),halt causes: error(type_error(process,50),process_wait/2) ``` -- 2.54.0