fix tests, use '$first_answer' to print indentation before errors (#1408)
This commit is contained in:
@@ -18,7 +18,14 @@
|
|||||||
|
|
||||||
|
|
||||||
write_error(Error) :-
|
write_error(Error) :-
|
||||||
write(' '),
|
% '$fetch_global_var' is the core system call of bb_get/2, but
|
||||||
|
% bb_get may not exist when write_error is first called, so fall
|
||||||
|
% back on '$fetch_global_var'.
|
||||||
|
( '$fetch_global_var'('$first_answer', false) ->
|
||||||
|
true
|
||||||
|
; write(' ') % if '$first_answer' isn't defined yet or true,
|
||||||
|
% print indentation.
|
||||||
|
),
|
||||||
( nonvar(Error),
|
( nonvar(Error),
|
||||||
functor(Error, error, 2) ->
|
functor(Error, error, 2) ->
|
||||||
writeq(Error)
|
writeq(Error)
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ project_attributes(QueryVars, AttrVars) :-
|
|||||||
; E = error(evaluation_error((Module:project_attributes)/2), _)
|
; E = error(evaluation_error((Module:project_attributes)/2), _)
|
||||||
) ->
|
) ->
|
||||||
true
|
true
|
||||||
; write_term('caught: ', [quoted(false)]),
|
; loader:write_error(E),
|
||||||
writeq(E),
|
|
||||||
nl
|
nl
|
||||||
).
|
).
|
||||||
|
|
||||||
@@ -34,8 +33,7 @@ call_attribute_goals([Module|Modules], GoalCaller, AttrVars) :-
|
|||||||
'$print_attribute_goals_exception'(Module, E) :-
|
'$print_attribute_goals_exception'(Module, E) :-
|
||||||
( E = error(evaluation_error((Module:attribute_goals)/3), attribute_goals/3)
|
( E = error(evaluation_error((Module:attribute_goals)/3), attribute_goals/3)
|
||||||
-> true
|
-> true
|
||||||
; write_term('caught: ', [quoted(false)]),
|
; loader:write_error(E),
|
||||||
writeq(E),
|
|
||||||
nl
|
nl
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ run :-
|
|||||||
Dss
|
Dss
|
||||||
),
|
),
|
||||||
E,
|
E,
|
||||||
( write('caught: '), write(E), nl,
|
( loader:write_error(E), nl,
|
||||||
portray_clause([N, Settings, Vs, Gs4, Dss]), nl,
|
portray_clause([N, Settings, Vs, Gs4, Dss]), nl,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ run_goals([Goal|_]) :-
|
|||||||
halt.
|
halt.
|
||||||
|
|
||||||
repl :-
|
repl :-
|
||||||
|
bb_put('$first_answer', true),
|
||||||
catch(read_and_match, E, print_exception(E)),
|
catch(read_and_match, E, print_exception(E)),
|
||||||
false. %% this is for GC, until we get actual GC.
|
false. %% this is for GC, until we get actual GC.
|
||||||
repl :-
|
repl :-
|
||||||
@@ -198,9 +199,8 @@ submit_query_and_print_results(Term0, VarList) :-
|
|||||||
% in the first argument, which is done by call/N
|
% in the first argument, which is done by call/N
|
||||||
; expand_goal(Term0, user, Term)
|
; expand_goal(Term0, user, Term)
|
||||||
),
|
),
|
||||||
setup_call_cleanup(bb_put('$first_answer', true),
|
bb_put('$first_answer', true),
|
||||||
submit_query_and_print_results_(Term, VarList),
|
submit_query_and_print_results_(Term, VarList).
|
||||||
bb_put('$first_answer', false)).
|
|
||||||
|
|
||||||
|
|
||||||
needs_bracketing(Value, Op) :-
|
needs_bracketing(Value, Op) :-
|
||||||
|
|||||||
@@ -29,12 +29,7 @@ fn do_not_duplicate_path_components() {
|
|||||||
['tests-pl/issue852-throw_e.pl'].\n\
|
['tests-pl/issue852-throw_e.pl'].\n\
|
||||||
halt.\n\
|
halt.\n\
|
||||||
",
|
",
|
||||||
"\
|
" throw(e)\n false.\n throw(e)\n false.\n",
|
||||||
caught: e\n \
|
|
||||||
false.\n\
|
|
||||||
caught: e\n \
|
|
||||||
false.\n\
|
|
||||||
",
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,6 +165,6 @@ fn ignored_constraint() {
|
|||||||
fn call_0() {
|
fn call_0() {
|
||||||
load_module_test(
|
load_module_test(
|
||||||
"tests-pl/issue831-call0.pl",
|
"tests-pl/issue831-call0.pl",
|
||||||
"caught: error(existence_error(procedure,call/0),call/0)\n",
|
" error(existence_error(procedure,call/0),call/0)\n",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ fn hello_world() {
|
|||||||
fn syntax_error() {
|
fn syntax_error() {
|
||||||
load_module_test(
|
load_module_test(
|
||||||
"tests-pl/syntax_error.pl",
|
"tests-pl/syntax_error.pl",
|
||||||
"caught: error(syntax_error(incomplete_reduction),read_term/3:6)\n",
|
" error(syntax_error(incomplete_reduction),read_term/3:6)\n",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user