]> Repositorios git - scryer-prolog.git/commitdiff
fix tests, use '$first_answer' to print indentation before errors (#1408)
authorMark Thom <[email protected]>
Sun, 10 Apr 2022 02:32:52 +0000 (20:32 -0600)
committerMark Thom <[email protected]>
Sun, 10 Apr 2022 02:32:52 +0000 (20:32 -0600)
src/loader.pl
src/machine/project_attributes.pl
src/tests/clpz/test_clpz.pl
src/toplevel.pl
tests/scryer/issues.rs
tests/scryer/src_tests.rs

index 9a130375ce069d05c63c0fe39e461534d173147b..ebc81d6cbbba2f91c4eaad5702f4e6400a4c9b3e 100644 (file)
 
 
 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),
        functor(Error, error, 2) ->
        writeq(Error)
index e62b22787cd934601597251c14bc0a33d15550da..ae2054e36b8da860dd0a2a30b3f30ea6111ed912 100644 (file)
@@ -10,8 +10,7 @@ project_attributes(QueryVars, AttrVars) :-
        ;  E = error(evaluation_error((Module:project_attributes)/2), _)
        )  ->
        true
-    ;  write_term('caught: ', [quoted(false)]),
-       writeq(E),
+    ;  loader:write_error(E),
        nl
     ).
 
@@ -34,8 +33,7 @@ call_attribute_goals([Module|Modules], GoalCaller, AttrVars) :-
 '$print_attribute_goals_exception'(Module, E) :-
     (  E = error(evaluation_error((Module:attribute_goals)/3), attribute_goals/3)
     -> true
-    ;  write_term('caught: ', [quoted(false)]),
-       writeq(E),
+    ;  loader:write_error(E),
        nl
     ).
 
index 98fd827b51ee6d6b3152a257fd1b860b01ccd5e4..9b55bfd5bfeab96006c1ceaf1ed9ab7fb662cf2c 100644 (file)
@@ -100,7 +100,7 @@ run :-
             Dss
         ),
         E,
-        (   write('caught: '), write(E), nl,
+        (   loader:write_error(E), nl,
             portray_clause([N, Settings, Vs, Gs4, Dss]), nl,
             false
         )
index a6b14e1d9407fe7b7f89cf79d33a3cb80bf11721..171b76d5aaf2431d39a5438ca38cdb73bc97f158 100644 (file)
@@ -134,6 +134,7 @@ run_goals([Goal|_]) :-
     halt.
 
 repl :-
+    bb_put('$first_answer', true),
     catch(read_and_match, E, print_exception(E)),
     false. %% this is for GC, until we get actual GC.
 repl :-
@@ -198,9 +199,8 @@ submit_query_and_print_results(Term0, VarList) :-
                     % in the first argument, which is done by call/N
     ;  expand_goal(Term0, user, Term)
     ),
-    setup_call_cleanup(bb_put('$first_answer', true),
-                       submit_query_and_print_results_(Term, VarList),
-                       bb_put('$first_answer', false)).
+    bb_put('$first_answer', true),
+    submit_query_and_print_results_(Term, VarList).
 
 
 needs_bracketing(Value, Op) :-
index 12440851aceeaf1dd0802b934f2e0edc8590102d..2db08402879e9f7c05bf8efd4b468536c193a79d 100644 (file)
@@ -29,12 +29,7 @@ fn do_not_duplicate_path_components() {
         ['tests-pl/issue852-throw_e.pl'].\n\
         halt.\n\
         ",
-        "\
-        caught: e\n   \
-        false.\n\
-        caught: e\n   \
-        false.\n\
-        ",
+        "   throw(e)\n   false.\n   throw(e)\n   false.\n",
     );
 }
 
@@ -170,6 +165,6 @@ fn ignored_constraint() {
 fn call_0() {
     load_module_test(
         "tests-pl/issue831-call0.pl",
-        "caught: error(existence_error(procedure,call/0),call/0)\n",
+        "   error(existence_error(procedure,call/0),call/0)\n",
     );
 }
index 2b6adbd5a32a20d19fd16b458673ffa3e32e4abf..3dcd65605e27608662001440bd7af3cf1c4ace29 100644 (file)
@@ -30,7 +30,7 @@ fn hello_world() {
 fn syntax_error() {
     load_module_test(
         "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",
     );
 }