Module: OrigenTesters::SmartestBasedTester::V93K_SMT8::Generator
- Extended by:
- ActiveSupport::Concern
- Includes:
- Base::Generator
- Defined in:
- lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb
Overview
Include this module in an interface class to make it a V93K interface and to give access to the V93K SMT8 program generator API
Constant Summary collapse
- PLATFORM =
V93K_SMT8
Instance Method Summary collapse
- #limits_workbook ⇒ Object
- #shmoo_tests ⇒ Object
-
#sub_flow_no_return_vars ⇒ Object
Sub flows are generated in a forked process for SMT8, however any updates made to interface instance variables by the sub-flow will be applied to the interface of the master process.
-
#sub_flow_no_return_vars=(val) ⇒ Object
See sub_flow_no_return_vars.
Methods included from Base::Generator
#_internal_startup, #add_tml, #at_flow_end, #at_flow_start, #at_run_start, #flow, #flow_generators, #flow_sheets, #initialize, #pattern_compiler, #pattern_compilers, #pattern_master, #pattern_master_filename, #pattern_master_filename=, #pattern_masters, #pattern_reference_recorded, #resources_filename=, #sheet_generators, #test_methods, #test_suites, #variables_file, #variables_files, #with_flow
Methods included from Interface
#add_description!, #add_flow_enable, #add_flow_enable=, #add_meta!, #all_pattern_references, #app_identifier, #atp, #clean_referenced_patterns, #clear_pattern_references, #clear_top_level_flow, #close, #comment, #comments, #compile, #consume_comments, #context_changed?, #context_or_parameter_changed?, #descriptions, #discard_comments, #discard_top_level_flow, #flow_generator, #generating_sub_program?, #identity_map, #import, #merge_pattern_references, #on_program_completion, #parameter_changed?, #pattern_references, #pattern_references_name, #pattern_references_name=, #platform, #record_pattern_reference, #referenced_patterns, #render, #resources_mode, resources_mode?, #resources_mode?, #set_top_level_flow, #test, #top_level_flow, #unique_test_names, #unique_test_names=, with_resources_mode, write=, write?, #write?, #write_files
Methods included from ATP::FlowAPI
#atp, #atp=, #hi_limit, #limit, #lo_limit, #loop
Instance Method Details
#limits_workbook ⇒ Object
42 43 44 |
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 42 def limits_workbook @@limits_workbook ||= LimitsWorkbook.new(manually_register: true) end |
#shmoo_tests ⇒ Object
46 47 48 |
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 46 def shmoo_tests flow.shmoo_tests end |
#sub_flow_no_return_vars ⇒ Object
Sub flows are generated in a forked process for SMT8, however any updates made to interface instance variables by the sub-flow will be applied to the interface of the master process. This is what the user would expect to happen and keeps them largely unaware of the fact that the sub-flow is actually being generated by a forked process. However, to do this it is necessary to marshal the value of the instance variables and some (rich) Ruby objects cannot be marshaled. This parameter allows applications to selectively mark such variables as not to be returned from the forked process, skipping the marshal operation but also meaning that any changes made to the variable by the sub-flow will not be visible to the top-level flow.
If the application actually needs updates to that variable made during a sub-flow to be available to the top-level flow, then they will need to work around it in another way on a case by case basis.
# In the application's interface
sub_flow_no_return_vars << :@my_problem_var
33 34 35 |
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 33 def sub_flow_no_return_vars @sub_flow_no_return_vars ||= [] end |
#sub_flow_no_return_vars=(val) ⇒ Object
See sub_flow_no_return_vars
38 39 40 |
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 38 def sub_flow_no_return_vars=(val) @sub_flow_no_return_vars = val end |