test_name once-with-exception test_description Once functions that raises exception during the first call should raise it next time it is called. -- .NET preserves original exception while "classic" raises Routine_failure if DOTNET define RAISES_RESCUE_EXCEPTION "false" if not DOTNET define RAISES_RESCUE_EXCEPTION "true" -- Generation of test classes -- Thread-relative onces define ONCE_STATUS "" define IS_PROCESS_RELATIVE "false" -- Thread-relative once without rescue clause define RESCUE_START "if false then" define RESCUE_STOP "end" define REDEFINE_DEFAULT_RESCUE "rename default_rescue as rescue_handler" define RESCUE_ACTION "action_nothing" define BODY_ACTION "action_nothing" define ROUTINE_ACTION "action_nothing" define NAME "TN" copy_sub test_.e $CLUSTER test_tn.e define BODY_ACTION "action_assertion" define ROUTINE_ACTION "action_assertion" define NAME "TA" copy_sub test_.e $CLUSTER test_ta.e define BODY_ACTION "action_developer" define ROUTINE_ACTION "action_developer" define NAME "TD" copy_sub test_.e $CLUSTER test_td.e define BODY_ACTION "action_system" define ROUTINE_ACTION "action_system" define NAME "TS" copy_sub test_.e $CLUSTER test_ts.e -- Thread-relative once with rescue clause define RESCUE_START "rescue" define RESCUE_STOP "" define BODY_ACTION "action_nothing" define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_nothing" define NAME "TNN" copy_sub test_.e $CLUSTER test_tnn.e define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_failure" define BODY_ACTION "action_assertion" define NAME "TAN" copy_sub test_.e $CLUSTER test_tan.e define BODY_ACTION "action_developer" define NAME "TDN" copy_sub test_.e $CLUSTER test_tdn.e define BODY_ACTION "action_system" define NAME "TSN" copy_sub test_.e $CLUSTER test_tsn.e define RESCUE_ACTION "action_assertion" define ROUTINE_ACTION "action_assertion" define BODY_ACTION "action_assertion" define NAME "TAA" copy_sub test_.e $CLUSTER test_taa.e define BODY_ACTION "action_developer" define NAME "TDA" copy_sub test_.e $CLUSTER test_tda.e define BODY_ACTION "action_system" define NAME "TSA" copy_sub test_.e $CLUSTER test_tsa.e define RESCUE_ACTION "action_developer" define ROUTINE_ACTION "action_developer" define BODY_ACTION "action_assertion" define NAME "TAD" copy_sub test_.e $CLUSTER test_tad.e define BODY_ACTION "action_developer" define NAME "TDD" copy_sub test_.e $CLUSTER test_tdd.e define BODY_ACTION "action_system" define NAME "TSD" copy_sub test_.e $CLUSTER test_tsd.e define RESCUE_ACTION "action_system" define ROUTINE_ACTION "action_system" define BODY_ACTION "action_assertion" define NAME "TAS" copy_sub test_.e $CLUSTER test_tas.e define BODY_ACTION "action_developer" define NAME "TDS" copy_sub test_.e $CLUSTER test_tds.e define BODY_ACTION "action_system" define NAME "TSS" copy_sub test_.e $CLUSTER test_tss.e -- Thread-relative once without rescue clause but with redefined default_rescue define RESCUE_START "if false then" define RESCUE_STOP "end" define REDEFINE_DEFAULT_RESCUE "redefine default_rescue" define BODY_ACTION "action_nothing" define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_nothing" define NAME "TN_N" copy_sub test_.e $CLUSTER test_tn_n.e define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_failure" define BODY_ACTION "action_assertion" define NAME "TA_N" copy_sub test_.e $CLUSTER test_ta_n.e define BODY_ACTION "action_developer" define NAME "TD_N" copy_sub test_.e $CLUSTER test_td_n.e define BODY_ACTION "action_system" define NAME "TS_N" copy_sub test_.e $CLUSTER test_ts_n.e define RESCUE_ACTION "action_assertion" define ROUTINE_ACTION "action_assertion" define BODY_ACTION "action_assertion" define NAME "TA_A" copy_sub test_.e $CLUSTER test_ta_a.e define BODY_ACTION "action_developer" define NAME "TD_A" copy_sub test_.e $CLUSTER test_td_a.e define BODY_ACTION "action_system" define NAME "TS_A" copy_sub test_.e $CLUSTER test_ts_a.e define RESCUE_ACTION "action_developer" define ROUTINE_ACTION "action_developer" define BODY_ACTION "action_assertion" define NAME "TA_D" copy_sub test_.e $CLUSTER test_ta_d.e define BODY_ACTION "action_developer" define NAME "TD_D" copy_sub test_.e $CLUSTER test_td_d.e define BODY_ACTION "action_system" define NAME "TS_D" copy_sub test_.e $CLUSTER test_ts_d.e define RESCUE_ACTION "action_system" define ROUTINE_ACTION "action_system" define BODY_ACTION "action_assertion" define NAME "TA_S" copy_sub test_.e $CLUSTER test_ta_s.e define BODY_ACTION "action_developer" define NAME "TD_S" copy_sub test_.e $CLUSTER test_td_s.e define BODY_ACTION "action_system" define NAME "TS_S" copy_sub test_.e $CLUSTER test_ts_s.e -- Process-relative onces define ONCE_STATUS "global" define IS_PROCESS_RELATIVE "true" -- Process-relative once without rescue clause define RESCUE_START "if false then" define RESCUE_STOP "end" define REDEFINE_DEFAULT_RESCUE "rename default_rescue as rescue_handler" define RESCUE_ACTION "action_nothing" define BODY_ACTION "action_nothing" define ROUTINE_ACTION "action_nothing" define NAME "PN" copy_sub test_.e $CLUSTER test_pn.e define BODY_ACTION "action_assertion" define ROUTINE_ACTION "action_assertion" define NAME "PA" copy_sub test_.e $CLUSTER test_pa.e define BODY_ACTION "action_developer" define ROUTINE_ACTION "action_developer" define NAME "PD" copy_sub test_.e $CLUSTER test_pd.e define BODY_ACTION "action_system" define ROUTINE_ACTION "action_system" define NAME "PS" copy_sub test_.e $CLUSTER test_ps.e -- Process-relative once with rescue clause define RESCUE_START "rescue" define RESCUE_STOP "" define BODY_ACTION "action_nothing" define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_nothing" define NAME "PNN" copy_sub test_.e $CLUSTER test_pnn.e define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_failure" define BODY_ACTION "action_assertion" define NAME "PAN" copy_sub test_.e $CLUSTER test_pan.e define BODY_ACTION "action_developer" define NAME "PDN" copy_sub test_.e $CLUSTER test_pdn.e define BODY_ACTION "action_system" define NAME "PSN" copy_sub test_.e $CLUSTER test_psn.e define RESCUE_ACTION "action_assertion" define ROUTINE_ACTION "action_assertion" define BODY_ACTION "action_assertion" define NAME "PAA" copy_sub test_.e $CLUSTER test_paa.e define BODY_ACTION "action_developer" define NAME "PDA" copy_sub test_.e $CLUSTER test_pda.e define BODY_ACTION "action_system" define NAME "PSA" copy_sub test_.e $CLUSTER test_psa.e define RESCUE_ACTION "action_developer" define ROUTINE_ACTION "action_developer" define BODY_ACTION "action_assertion" define NAME "PAD" copy_sub test_.e $CLUSTER test_pad.e define BODY_ACTION "action_developer" define NAME "PDD" copy_sub test_.e $CLUSTER test_pdd.e define BODY_ACTION "action_system" define NAME "PSD" copy_sub test_.e $CLUSTER test_psd.e define RESCUE_ACTION "action_system" define ROUTINE_ACTION "action_system" define BODY_ACTION "action_assertion" define NAME "PAS" copy_sub test_.e $CLUSTER test_pas.e define BODY_ACTION "action_developer" define NAME "PDS" copy_sub test_.e $CLUSTER test_pds.e define BODY_ACTION "action_system" define NAME "PSS" copy_sub test_.e $CLUSTER test_pss.e -- Process-relative once without rescue clause but with redefined default_rescue define RESCUE_START "if false then" define RESCUE_STOP "end" define REDEFINE_DEFAULT_RESCUE "redefine default_rescue" define BODY_ACTION "action_nothing" define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_nothing" define NAME "PN_N" copy_sub test_.e $CLUSTER test_pn_n.e define RESCUE_ACTION "action_nothing" define ROUTINE_ACTION "action_failure" define BODY_ACTION "action_assertion" define NAME "PA_N" copy_sub test_.e $CLUSTER test_pa_n.e define BODY_ACTION "action_developer" define NAME "PD_N" copy_sub test_.e $CLUSTER test_pd_n.e define BODY_ACTION "action_system" define NAME "PS_N" copy_sub test_.e $CLUSTER test_ps_n.e define RESCUE_ACTION "action_assertion" define ROUTINE_ACTION "action_assertion" define BODY_ACTION "action_assertion" define NAME "PA_A" copy_sub test_.e $CLUSTER test_pa_a.e define BODY_ACTION "action_developer" define NAME "PD_A" copy_sub test_.e $CLUSTER test_pd_a.e define BODY_ACTION "action_system" define NAME "PS_A" copy_sub test_.e $CLUSTER test_ps_a.e define RESCUE_ACTION "action_developer" define ROUTINE_ACTION "action_developer" define BODY_ACTION "action_assertion" define NAME "PA_D" copy_sub test_.e $CLUSTER test_pa_d.e define BODY_ACTION "action_developer" define NAME "PD_D" copy_sub test_.e $CLUSTER test_pd_d.e define BODY_ACTION "action_system" define NAME "PS_D" copy_sub test_.e $CLUSTER test_ps_d.e define RESCUE_ACTION "action_system" define ROUTINE_ACTION "action_system" define BODY_ACTION "action_assertion" define NAME "PA_S" copy_sub test_.e $CLUSTER test_pa_s.e define BODY_ACTION "action_developer" define NAME "PD_S" copy_sub test_.e $CLUSTER test_pd_s.e define BODY_ACTION "action_system" define NAME "PS_S" copy_sub test_.e $CLUSTER test_ps_s.e -- Single-threaded tests copy_sub Ace-st $TEST Ace copy_sub test.e0 $CLUSTER test.e copy_sub test_thread_st.e $CLUSTER test_thread.e compile_frozen compile_result ok c_compile_work c_compile_result ok -- Melted code define HAS_ASSERTIONS "true" copy_sub test_setup.e $CLUSTER test_setup.e copy_sub test.e $CLUSTER test.e copy_sub test_helper.e $CLUSTER test_helper.e compile_melted compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 execute_work NONE exec_output_sm execute_result ok compare exec_output_sm output cleanup_compile -- Frozen code compile_frozen compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 c_compile_work c_compile_result ok execute_work NONE exec_output_sf execute_result ok compare exec_output_sf output cleanup_compile -- Final code with assertions compile_final_keep compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 c_compile_final c_compile_result ok execute_final NONE exec_output_sk execute_result ok compare exec_output_sk output cleanup_compile -- Final code without assertions define HAS_ASSERTIONS "false" copy_sub test_setup.e $CLUSTER test_setup.e compile_final compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 c_compile_final c_compile_result ok execute_final NONE exec_output_si execute_result ok compare exec_output_si output cleanup_compile -- Multi-threaded tests copy_sub Ace-mt $TEST Ace copy_sub test.e0 $CLUSTER test.e copy_raw test_thread_mt.e $CLUSTER test_thread.e compile_frozen compile_result ok c_compile_work c_compile_result ok -- Melted code define HAS_ASSERTIONS "true" copy_sub test_setup.e $CLUSTER test_setup.e copy_sub test.e $CLUSTER test.e copy_sub test_helper.e $CLUSTER test_helper.e compile_melted compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 execute_work NONE exec_output_mm execute_result ok compare exec_output_mm output cleanup_compile -- Frozen code compile_frozen compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 c_compile_work c_compile_result ok execute_work NONE exec_output_mf execute_result ok compare exec_output_mf output cleanup_compile -- Final code with assertions compile_final_keep compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 c_compile_final c_compile_result ok execute_final NONE exec_output_mk execute_result ok compare exec_output_mk output cleanup_compile -- Final code without assertions define HAS_ASSERTIONS "false" copy_sub test_setup.e $CLUSTER test_setup.e compile_final compile_result syntax_warning TEST_PA 262; TEST_PAA 262; TEST_PAD 262; TEST_PAN 262; TEST_PAS 262; TEST_PA_A 262; TEST_PA_D 262; TEST_PA_N 262; TEST_PA_S 262; TEST_PD 262; TEST_PDA 262; TEST_PDD 262; TEST_PDN 262; TEST_PDS 262; TEST_PD_A 262; TEST_PD_D 262; TEST_PD_N 262; TEST_PD_S 262; TEST_PN 262; TEST_PNN 262; TEST_PN_N 262; TEST_PS 262; TEST_PSA 262; TEST_PSD 262; TEST_PSN 262; TEST_PSS 262; TEST_PS_A 262; TEST_PS_D 262; TEST_PS_N 262; TEST_PS_S 262 c_compile_final c_compile_result ok execute_final NONE exec_output_mi execute_result ok compare exec_output_mi output cleanup_compile test_end