format("Test predicate executed~n", []).
% Test predicates for g_caused_exception/2
-:- dynamic(g_caused_exception/2).
-
check_for_exception :-
- ( g_caused_exception(_Goal, Exception) ->
+ ( '$toplevel':g_caused_exception(_Goal, Exception) ->
format("Exception occurred: ~w~n", [Exception]),
halt(1)
; format("No exception~n", []),
)).
test("g_caused_exception/2 is not asserted when no exception occurs", (
- retractall(g_caused_exception(_, _)),
- \+ g_caused_exception(_, _)
+ retractall('$toplevel':g_caused_exception(_, _)),
+ \+ '$toplevel':g_caused_exception(_, _)
)).
test("g_caused_exception/2 can be checked from custom toplevel", (
% This tests the predicate structure; actual exception handling
% is tested via CLI tests since it requires -g and -t flags
- retractall(g_caused_exception(_, _)),
- asserta(g_caused_exception(test_goal, test_error)),
- g_caused_exception(test_goal, test_error),
- retractall(g_caused_exception(_, _))
+ retractall('$toplevel':g_caused_exception(_, _)),
+ asserta('$toplevel':g_caused_exception(test_goal, test_error)),
+ '$toplevel':g_caused_exception(test_goal, test_error),
+ retractall('$toplevel':g_caused_exception(_, _))
)).
:- dynamic(disabled_init_file/0).
:- dynamic(started/0).
:- dynamic(custom_toplevel/1).
+:- dynamic(g_caused_exception/2).
load_scryerrc :-
( '$home_directory'(HomeDir) ->
( write_term(Goal, [variable_names(VNs),double_quotes(DQ)]),
write(' causes: '),
write_term(Exception, [double_quotes(DQ)]), nl,
- asserta(user:g_caused_exception(Goal, Exception))
+ asserta(g_caused_exception(Goal, Exception))
)
) -> true
; write('% Warning: initialization failed for: '),
format("Helper predicate works~n", []).
% g_caused_exception/2 testing predicates
-:- dynamic(g_caused_exception/2).
-
check_exception_halt_1 :-
- ( g_caused_exception(Goal, Exception) ->
+ ( '$toplevel':g_caused_exception(Goal, Exception) ->
format("EXCEPTION_CAUGHT~n", []),
format("Goal: ~w~n", [Goal]),
format("Exception: ~w~n", [Exception]),
).
check_exception_halt_0 :-
- ( g_caused_exception(_, _) ->
+ ( '$toplevel':g_caused_exception(_, _) ->
format("UNEXPECTED_EXCEPTION~n", []),
halt(1)
; format("SUCCESS_NO_EXCEPTION~n", []),