origen 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/ctags +0 -0
- data/bin/origen +165 -1
- data/bin/rgen +2 -0
- data/config/application.rb +141 -0
- data/config/commands.rb +72 -0
- data/config/development.rb +7 -0
- data/config/environment.rb +0 -0
- data/config/rgen.policy +7 -0
- data/config/rubocop/easy.yml +620 -0
- data/config/rubocop/easy_disabled.yml +271 -0
- data/config/rubocop/easy_enabled.yml +731 -0
- data/config/rubocop/strict.yml +620 -0
- data/config/rubocop/strict_disabled.yml +247 -0
- data/config/rubocop/strict_enabled.yml +755 -0
- data/config/users.rb +20 -0
- data/config/version.rb +1 -1
- data/helpers/url.rb +68 -0
- data/lib/c99/doc_interface.rb +56 -0
- data/lib/c99/j750_interface.rb +85 -0
- data/lib/c99/nvm.rb +89 -0
- data/lib/c99/target/mock2.rb +1 -0
- data/lib/c99/target/subdir/mock3.rb +1 -0
- data/lib/option_parser/optparse.rb +12 -0
- data/lib/origen/acronyms.rb +60 -0
- data/lib/origen/application/command_dispatcher.rb +12 -0
- data/lib/origen/application/configuration.rb +206 -0
- data/lib/origen/application/configuration_manager.rb +78 -0
- data/lib/origen/application/deployer.rb +367 -0
- data/lib/origen/application/environment.rb +186 -0
- data/lib/origen/application/lsf.rb +145 -0
- data/lib/origen/application/lsf_manager.rb +657 -0
- data/lib/origen/application/plugins_manager.rb +280 -0
- data/lib/origen/application/release.rb +359 -0
- data/lib/origen/application/runner.rb +246 -0
- data/lib/origen/application/statistics.rb +191 -0
- data/lib/origen/application/target.rb +374 -0
- data/lib/origen/application/version_tracker.rb +59 -0
- data/lib/origen/application/workspace_manager.rb +151 -0
- data/lib/origen/application.rb +746 -0
- data/lib/origen/bugs/bug.rb +36 -0
- data/lib/origen/bugs.rb +45 -0
- data/lib/origen/callbacks.rb +35 -0
- data/lib/origen/chip_mode.rb +118 -0
- data/lib/origen/chip_package.rb +461 -0
- data/lib/origen/client.rb +87 -0
- data/lib/origen/code_generators/actions.rb +258 -0
- data/lib/origen/code_generators/base.rb +57 -0
- data/lib/origen/code_generators/bundler.rb +17 -0
- data/lib/origen/code_generators/gem_setup.rb +49 -0
- data/lib/origen/code_generators/rake.rb +13 -0
- data/lib/origen/code_generators/rspec.rb +12 -0
- data/lib/origen/code_generators/semver.rb +39 -0
- data/lib/origen/code_generators/timever.rb +37 -0
- data/lib/origen/code_generators.rb +111 -0
- data/lib/origen/commands/add.rb +12 -0
- data/lib/origen/commands/compile.rb +62 -0
- data/lib/origen/commands/ctags.rb +9 -0
- data/lib/origen/commands/dispatch.rb +22 -0
- data/lib/origen/commands/environment.rb +11 -0
- data/lib/origen/commands/fetch.rb +63 -0
- data/lib/origen/commands/generate.rb +130 -0
- data/lib/origen/commands/interactive.rb +73 -0
- data/lib/origen/commands/lint.rb +82 -0
- data/lib/origen/commands/lsf.rb +93 -0
- data/lib/origen/commands/merge.rb +55 -0
- data/lib/origen/commands/modifications.rb +12 -0
- data/lib/origen/commands/new.rb +113 -0
- data/lib/origen/commands/plugin.rb +105 -0
- data/lib/origen/commands/program.rb +70 -0
- data/lib/origen/commands/rc.rb +442 -0
- data/lib/origen/commands/save.rb +56 -0
- data/lib/origen/commands/target.rb +27 -0
- data/lib/origen/commands/time.rb +127 -0
- data/lib/origen/commands/version.rb +17 -0
- data/lib/origen/commands/web.rb +221 -0
- data/lib/origen/commands.rb +272 -0
- data/lib/origen/commands_global.rb +76 -0
- data/lib/origen/controller.rb +94 -0
- data/lib/origen/core_ext/array.rb +23 -0
- data/lib/origen/core_ext/bignum.rb +36 -0
- data/lib/origen/core_ext/enumerable.rb +76 -0
- data/lib/origen/core_ext/fixnum.rb +46 -0
- data/lib/origen/core_ext/hash.rb +52 -0
- data/lib/origen/core_ext/module.rb +14 -0
- data/lib/origen/core_ext/numeric.rb +126 -0
- data/lib/origen/core_ext/object.rb +13 -0
- data/lib/origen/core_ext/range.rb +7 -0
- data/lib/origen/core_ext/string.rb +124 -0
- data/lib/origen/core_ext.rb +10 -0
- data/lib/origen/database/key_value_store.rb +111 -0
- data/lib/origen/database/key_value_stores.rb +108 -0
- data/lib/origen/database.rb +6 -0
- data/lib/origen/encodings.rb +102 -0
- data/lib/origen/features/feature.rb +22 -0
- data/lib/origen/features.rb +104 -0
- data/lib/origen/file_handler.rb +429 -0
- data/lib/origen/generator/comparator.rb +56 -0
- data/lib/origen/generator/compiler.rb +277 -0
- data/lib/origen/generator/flow.rb +49 -0
- data/lib/origen/generator/job.rb +131 -0
- data/lib/origen/generator/pattern.rb +356 -0
- data/lib/origen/generator/pattern_finder.rb +155 -0
- data/lib/origen/generator/pattern_iterator.rb +55 -0
- data/lib/origen/generator/renderer.rb +113 -0
- data/lib/origen/generator/resources.rb +40 -0
- data/lib/origen/generator/stage.rb +89 -0
- data/lib/origen/generator.rb +85 -0
- data/lib/origen/global_methods.rb +205 -0
- data/lib/origen/import_manager.rb +596 -0
- data/lib/origen/location/base.rb +116 -0
- data/lib/origen/location/map.rb +83 -0
- data/lib/origen/location.rb +6 -0
- data/lib/origen/log.rb +217 -0
- data/lib/origen/logger_methods.rb +56 -0
- data/lib/origen/mode.rb +61 -0
- data/lib/origen/model.rb +267 -0
- data/lib/origen/model_initializer.rb +45 -0
- data/lib/origen/nvm/block_array.rb +72 -0
- data/lib/origen/nvm.rb +6 -0
- data/lib/origen/parameters/live.rb +22 -0
- data/lib/origen/parameters/missing.rb +28 -0
- data/lib/origen/parameters/set.rb +144 -0
- data/lib/origen/parameters.rb +107 -0
- data/lib/origen/pdm.rb +218 -0
- data/lib/origen/pins/function_proxy.rb +36 -0
- data/lib/origen/pins/ground_pin.rb +6 -0
- data/lib/origen/pins/pin.rb +860 -0
- data/lib/origen/pins/pin_bank.rb +349 -0
- data/lib/origen/pins/pin_clock.rb +124 -0
- data/lib/origen/pins/pin_collection.rb +492 -0
- data/lib/origen/pins/pin_common.rb +206 -0
- data/lib/origen/pins/port.rb +268 -0
- data/lib/origen/pins/power_pin.rb +30 -0
- data/lib/origen/pins.rb +696 -0
- data/lib/origen/registers/bit.rb +562 -0
- data/lib/origen/registers/bit_collection.rb +787 -0
- data/lib/origen/registers/container.rb +288 -0
- data/lib/origen/registers/domain.rb +16 -0
- data/lib/origen/registers/reg.rb +1406 -0
- data/lib/origen/registers/reg_collection.rb +24 -0
- data/lib/origen/registers.rb +652 -0
- data/lib/origen/regression_manager.rb +251 -0
- data/lib/origen/remote_manager.rb +340 -0
- data/lib/origen/revision_control/base.rb +257 -0
- data/lib/origen/revision_control/design_sync.rb +276 -0
- data/lib/origen/revision_control/git.rb +243 -0
- data/lib/origen/revision_control/subversion.rb +6 -0
- data/lib/origen/revision_control.rb +44 -0
- data/lib/origen/ruby_version_check.rb +131 -0
- data/lib/origen/site_config.rb +61 -0
- data/lib/origen/specs/checkers.rb +103 -0
- data/lib/origen/specs/creation_info.rb +17 -0
- data/lib/origen/specs/doc_resource.rb +91 -0
- data/lib/origen/specs/exhibit.rb +17 -0
- data/lib/origen/specs/mode_select.rb +16 -0
- data/lib/origen/specs/note.rb +17 -0
- data/lib/origen/specs/override.rb +21 -0
- data/lib/origen/specs/power_supply.rb +13 -0
- data/lib/origen/specs/spec.rb +226 -0
- data/lib/origen/specs/version_history.rb +14 -0
- data/lib/origen/specs.rb +552 -0
- data/lib/origen/sub_blocks.rb +298 -0
- data/lib/origen/tester/api.rb +277 -0
- data/lib/origen/tester/bdm/bdm.rb +25 -0
- data/lib/origen/tester/command_based_tester.rb +46 -0
- data/lib/origen/tester/doc/doc.rb +226 -0
- data/lib/origen/tester/doc/generator/flow.rb +71 -0
- data/lib/origen/tester/doc/generator/flow_line.rb +203 -0
- data/lib/origen/tester/doc/generator/test.rb +68 -0
- data/lib/origen/tester/doc/generator/test_group.rb +66 -0
- data/lib/origen/tester/doc/generator/tests.rb +47 -0
- data/lib/origen/tester/doc/generator.rb +126 -0
- data/lib/origen/tester/doc/model.rb +162 -0
- data/lib/origen/tester/generator/flow_control_api.rb +606 -0
- data/lib/origen/tester/generator/identity_map.rb +25 -0
- data/lib/origen/tester/generator/placeholder.rb +13 -0
- data/lib/origen/tester/generator/test_numberer.rb +25 -0
- data/lib/origen/tester/generator.rb +271 -0
- data/lib/origen/tester/interface.rb +154 -0
- data/lib/origen/tester/j750/files.rb +45 -0
- data/lib/origen/tester/j750/generator/flow.rb +123 -0
- data/lib/origen/tester/j750/generator/flow_line.rb +288 -0
- data/lib/origen/tester/j750/generator/patgroup.rb +111 -0
- data/lib/origen/tester/j750/generator/patgroups.rb +41 -0
- data/lib/origen/tester/j750/generator/patset.rb +111 -0
- data/lib/origen/tester/j750/generator/patsets.rb +41 -0
- data/lib/origen/tester/j750/generator/templates/flow.txt.erb +9 -0
- data/lib/origen/tester/j750/generator/templates/instances.txt.erb +16 -0
- data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +8 -0
- data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +10 -0
- data/lib/origen/tester/j750/generator/test_instance.rb +846 -0
- data/lib/origen/tester/j750/generator/test_instance_group.rb +60 -0
- data/lib/origen/tester/j750/generator/test_instances.rb +182 -0
- data/lib/origen/tester/j750/generator.rb +203 -0
- data/lib/origen/tester/j750/j750.rb +845 -0
- data/lib/origen/tester/j750/j750_hpt.rb +35 -0
- data/lib/origen/tester/j750/parser/ac_spec.rb +11 -0
- data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/j750/parser/dc_spec.rb +36 -0
- data/lib/origen/tester/j750/parser/dc_specs.rb +50 -0
- data/lib/origen/tester/j750/parser/descriptions.rb +340 -0
- data/lib/origen/tester/j750/parser/flow.rb +111 -0
- data/lib/origen/tester/j750/parser/flow_line.rb +207 -0
- data/lib/origen/tester/j750/parser/flows.rb +23 -0
- data/lib/origen/tester/j750/parser/pattern_set.rb +94 -0
- data/lib/origen/tester/j750/parser/pattern_sets.rb +33 -0
- data/lib/origen/tester/j750/parser/test_instance.rb +322 -0
- data/lib/origen/tester/j750/parser/test_instances.rb +26 -0
- data/lib/origen/tester/j750/parser/timeset.rb +15 -0
- data/lib/origen/tester/j750/parser/timesets.rb +0 -0
- data/lib/origen/tester/j750/parser.rb +104 -0
- data/lib/origen/tester/jlink/jlink.rb +33 -0
- data/lib/origen/tester/parser/description_lookup.rb +64 -0
- data/lib/origen/tester/parser/searchable_array.rb +32 -0
- data/lib/origen/tester/parser/searchable_hash.rb +32 -0
- data/lib/origen/tester/parser.rb +24 -0
- data/lib/origen/tester/time.rb +338 -0
- data/lib/origen/tester/timing.rb +253 -0
- data/lib/origen/tester/ultraflex/files.rb +45 -0
- data/lib/origen/tester/ultraflex/generator/flow.rb +119 -0
- data/lib/origen/tester/ultraflex/generator/flow_line.rb +269 -0
- data/lib/origen/tester/ultraflex/generator/patgroup.rb +111 -0
- data/lib/origen/tester/ultraflex/generator/patgroups.rb +41 -0
- data/lib/origen/tester/ultraflex/generator/patset.rb +111 -0
- data/lib/origen/tester/ultraflex/generator/patsets.rb +41 -0
- data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +9 -0
- data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +16 -0
- data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +8 -0
- data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +10 -0
- data/lib/origen/tester/ultraflex/generator/test_instance.rb +622 -0
- data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +60 -0
- data/lib/origen/tester/ultraflex/generator/test_instances.rb +174 -0
- data/lib/origen/tester/ultraflex/generator.rb +200 -0
- data/lib/origen/tester/ultraflex/parser/ac_spec.rb +11 -0
- data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/ultraflex/parser/dc_spec.rb +36 -0
- data/lib/origen/tester/ultraflex/parser/dc_specs.rb +50 -0
- data/lib/origen/tester/ultraflex/parser/descriptions.rb +342 -0
- data/lib/origen/tester/ultraflex/parser/flow.rb +111 -0
- data/lib/origen/tester/ultraflex/parser/flow_line.rb +207 -0
- data/lib/origen/tester/ultraflex/parser/flows.rb +23 -0
- data/lib/origen/tester/ultraflex/parser/pattern_set.rb +94 -0
- data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +33 -0
- data/lib/origen/tester/ultraflex/parser/test_instance.rb +262 -0
- data/lib/origen/tester/ultraflex/parser/test_instances.rb +26 -0
- data/lib/origen/tester/ultraflex/parser/timeset.rb +15 -0
- data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
- data/lib/origen/tester/ultraflex/parser.rb +104 -0
- data/lib/origen/tester/ultraflex/ultraflex.rb +759 -0
- data/lib/origen/tester/v93k/generator/flow.rb +63 -0
- data/lib/origen/tester/v93k/generator/flow_node/print.rb +10 -0
- data/lib/origen/tester/v93k/generator/flow_node.rb +17 -0
- data/lib/origen/tester/v93k/generator/pattern.rb +16 -0
- data/lib/origen/tester/v93k/generator/pattern_master.rb +54 -0
- data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +6 -0
- data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +11 -0
- data/lib/origen/tester/v93k/generator/templates/template.flow.erb +121 -0
- data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +9 -0
- data/lib/origen/tester/v93k/generator/test_function.rb +103 -0
- data/lib/origen/tester/v93k/generator/test_functions.rb +79 -0
- data/lib/origen/tester/v93k/generator/test_method.rb +46 -0
- data/lib/origen/tester/v93k/generator/test_methods.rb +75 -0
- data/lib/origen/tester/v93k/generator/test_suite.rb +54 -0
- data/lib/origen/tester/v93k/generator/test_suites.rb +65 -0
- data/lib/origen/tester/v93k/generator.rb +80 -0
- data/lib/origen/tester/v93k/v93k.rb +420 -0
- data/lib/origen/tester/vector.rb +86 -0
- data/lib/origen/tester/vector_generator.rb +633 -0
- data/lib/origen/tester/vector_pipeline.rb +150 -0
- data/lib/origen/tester.rb +56 -0
- data/lib/origen/top_level.rb +134 -0
- data/lib/origen/users/ldap.rb +65 -0
- data/lib/origen/users/user.rb +149 -0
- data/lib/origen/users.rb +30 -0
- data/lib/origen/utility/block_args.rb +93 -0
- data/lib/origen/utility/csv_data.rb +110 -0
- data/lib/origen/utility/design_sync.rb +494 -0
- data/lib/origen/utility/diff.rb +158 -0
- data/lib/origen/utility/input_capture.rb +121 -0
- data/lib/origen/utility/mailer.rb +143 -0
- data/lib/origen/utility/s_record.rb +205 -0
- data/lib/origen/utility/time_and_date.rb +30 -0
- data/lib/origen/utility.rb +12 -0
- data/lib/origen/version_checker.rb +117 -0
- data/lib/origen/version_string.rb +356 -0
- data/lib/origen.rb +648 -0
- data/lib/tasks/gem.rake +27 -22
- data/origen_site_config.yml +36 -0
- data/source_setup +17 -0
- data/spec/format/rgen_formatter.rb +14 -0
- data/templates/api_doc/README.txt.erb +24 -0
- data/templates/code_generators/gemfile_app.rb +4 -0
- data/templates/code_generators/gemfile_plugin.rb +6 -0
- data/templates/code_generators/gemspec.rb +33 -0
- data/templates/code_generators/rakefile.rb +10 -0
- data/templates/code_generators/spec_helper.rb +49 -0
- data/templates/code_generators/version.rb +8 -0
- data/templates/code_generators/version_time.rb +3 -0
- data/templates/git/gitignore.erb +33 -0
- data/templates/j750/_vt_flow.txt.erb +8 -0
- data/templates/j750/_vt_instances.txt.erb +4 -0
- data/templates/j750/program_sheet.txt.erb +9 -0
- data/templates/nanoc/Rules +74 -0
- data/templates/nanoc/config.yaml +77 -0
- data/templates/nanoc/content/favicon.ico +0 -0
- data/templates/nanoc/layouts/bootstrap.html.erb +63 -0
- data/templates/nanoc/layouts/bootstrap3.html.erb +71 -0
- data/templates/nanoc/layouts/freescale.html.erb +79 -0
- data/templates/nanoc/lib/bootstrap_filter.rb +49 -0
- data/templates/nanoc/lib/codeblocks_filter.rb +41 -0
- data/templates/nanoc/lib/default.rb +2 -0
- data/templates/nanoc/lib/gzip_filter.rb +16 -0
- data/templates/nanoc/lib/haml_code_filter.rb +41 -0
- data/templates/nanoc/lib/helpers.rb +1 -0
- data/templates/nanoc/lib/search_filter.rb +62 -0
- data/templates/nanoc_dynamic/content/search.js.erb +92 -0
- data/templates/shared/web/_logo.html +10 -0
- data/templates/test/_inline_sub.txt.erb +2 -0
- data/templates/test/environment.txt.erb +1 -0
- data/templates/test/inline.txt.erb +11 -0
- data/templates/test/inspections.txt.erb +19 -0
- data/templates/test/set1/_sub1.txt.erb +12 -0
- data/templates/test/set1/_sub4.txt.erb +1 -0
- data/templates/test/set1/_sub5.txt.erb +1 -0
- data/templates/test/set1/main.txt.erb +53 -0
- data/templates/test/set1/sub_dir/_sub2.txt.erb +20 -0
- data/templates/test/set1/sub_dir/_sub3.txt.erb +12 -0
- data/templates/test/set1/sub_dir/main2.txt.erb +4 -0
- data/templates/test/set2/template_with_no_erb_1.txt +9 -0
- data/templates/test/set2/template_with_no_erb_2.txt +9 -0
- data/templates/test/set3/_layout.html.erb +4 -0
- data/templates/test/set3/content.html.erb +6 -0
- data/templates/time/filter.rb.erb +15 -0
- data/templates/time/rules.rb.erb +45 -0
- metadata +639 -5
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module Origen
|
|
2
|
+
module Tester
|
|
3
|
+
class J750
|
|
4
|
+
module Generator
|
|
5
|
+
class TestInstanceGroup
|
|
6
|
+
attr_accessor :name, :version, :append_version
|
|
7
|
+
|
|
8
|
+
include Enumerable
|
|
9
|
+
|
|
10
|
+
def initialize(name, _options = {})
|
|
11
|
+
@name = name
|
|
12
|
+
@store = []
|
|
13
|
+
@append_version = true
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def name
|
|
17
|
+
if unversioned_name
|
|
18
|
+
if version && @append_version
|
|
19
|
+
"#{unversioned_name}_v#{version}"
|
|
20
|
+
else
|
|
21
|
+
unversioned_name.to_s
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def unversioned_name
|
|
27
|
+
if @name
|
|
28
|
+
if @name =~ /grp$/
|
|
29
|
+
@name
|
|
30
|
+
else
|
|
31
|
+
"#{@name}_grp"
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def <<(instance)
|
|
37
|
+
@store << instance
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def size
|
|
41
|
+
@store.size
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def each
|
|
45
|
+
@store.each { |ins| yield ins }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def ==(other_instance_group)
|
|
49
|
+
self.class == other_instance_group.class &&
|
|
50
|
+
unversioned_name.to_s == other_instance_group.unversioned_name.to_s &&
|
|
51
|
+
size == other_instance_group.size &&
|
|
52
|
+
self.all? do |ins|
|
|
53
|
+
other_instance_group.any? { |other_ins| ins == other_ins }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
module Origen
|
|
2
|
+
module Tester
|
|
3
|
+
class J750
|
|
4
|
+
module Generator
|
|
5
|
+
class TestInstances
|
|
6
|
+
include Origen::Tester::Generator
|
|
7
|
+
|
|
8
|
+
TEMPLATE = "#{Origen.top}/lib/origen/tester/j750/generator/templates/instances.txt.erb"
|
|
9
|
+
OUTPUT_POSTFIX = 'instances'
|
|
10
|
+
|
|
11
|
+
class IndexedString < ::String
|
|
12
|
+
attr_accessor :index
|
|
13
|
+
|
|
14
|
+
def name
|
|
15
|
+
self
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def add(name, type, options = {})
|
|
20
|
+
options = {
|
|
21
|
+
test_instance_class: TestInstance
|
|
22
|
+
}.merge(options)
|
|
23
|
+
ins = options.delete(:test_instance_class).new(name, type, options)
|
|
24
|
+
if @current_group
|
|
25
|
+
@current_group << ins
|
|
26
|
+
else
|
|
27
|
+
collection << ins
|
|
28
|
+
end
|
|
29
|
+
c = Origen.interface.consume_comments
|
|
30
|
+
Origen.interface.descriptions.add_for_test_definition(name, c)
|
|
31
|
+
ins
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# IG-XL doesn't have a formal instance group type and instead declares them anonymously
|
|
35
|
+
# whenever test instances of the same name appear consecutively in the test instance sheet.
|
|
36
|
+
# However when it comes to generating a test program life becomes much easier if we have
|
|
37
|
+
# a way to explicitly declare instances as part of a group - this makes duplicate tracking
|
|
38
|
+
# and sorting of the test instance sheet much easier.
|
|
39
|
+
#
|
|
40
|
+
# Use this method to generate instance groups via a block. Within the the block you should
|
|
41
|
+
# generate instances as normal and they will automatically be assigned to the current group.
|
|
42
|
+
# Note that the name of the instances generated within the group is discarded and replaced
|
|
43
|
+
# with the name of the group. Origen automatically appends "grp" to this name to highlight
|
|
44
|
+
# instances that were generated as part of the group.
|
|
45
|
+
#
|
|
46
|
+
# test_instances.group("erase_all_blocks") do |group|
|
|
47
|
+
# # Generate instances here as normal
|
|
48
|
+
# test_instances.functional("erase_blk0")
|
|
49
|
+
# test_instances.functional("erase_blk1")
|
|
50
|
+
# end
|
|
51
|
+
#
|
|
52
|
+
# The group object is passed into the block but usually you should not need to interact
|
|
53
|
+
# with this directly except maybe to set the name if it is not yet established at the point
|
|
54
|
+
# where the group is initiated:
|
|
55
|
+
#
|
|
56
|
+
# test_instances.group do |group|
|
|
57
|
+
# # Generate instances here as normal
|
|
58
|
+
# group.name = "group_blah"
|
|
59
|
+
# end
|
|
60
|
+
#
|
|
61
|
+
# A common way to generate groups is to create a helper method in your application which
|
|
62
|
+
# is responsible for creating groups as required:
|
|
63
|
+
#
|
|
64
|
+
# def group_wrapper(name, options)
|
|
65
|
+
# if options[:by_block]
|
|
66
|
+
# test_instances.group(name) do |group|
|
|
67
|
+
# yield group
|
|
68
|
+
# end
|
|
69
|
+
# else
|
|
70
|
+
# yield
|
|
71
|
+
# end
|
|
72
|
+
# end
|
|
73
|
+
#
|
|
74
|
+
# In that case the group argument becomes quite useful for branching based on whether you
|
|
75
|
+
# are generating a group or standalone instances:
|
|
76
|
+
#
|
|
77
|
+
# group_wrapper(name, options) do |group|
|
|
78
|
+
# if group
|
|
79
|
+
# # Generate group instances
|
|
80
|
+
# else
|
|
81
|
+
# # Generate standalone instances
|
|
82
|
+
# end
|
|
83
|
+
# end
|
|
84
|
+
def group(name = nil, options = {})
|
|
85
|
+
name, options = nil, name if name.is_a?(Hash)
|
|
86
|
+
@current_group = TestInstanceGroup.new(name, options)
|
|
87
|
+
collection << @current_group
|
|
88
|
+
yield @current_group
|
|
89
|
+
@current_group = nil
|
|
90
|
+
end
|
|
91
|
+
alias_method :add_group, :group
|
|
92
|
+
|
|
93
|
+
def finalize(_options = {}) # :nodoc:
|
|
94
|
+
uniq!
|
|
95
|
+
sort!
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def uniq! # :nodoc:
|
|
99
|
+
uniques = []
|
|
100
|
+
versions = {}
|
|
101
|
+
multi_version_tests = {}
|
|
102
|
+
collection.each do |instance|
|
|
103
|
+
# If a uniquely named instance is found add it, otherwise update the version
|
|
104
|
+
# of the current instance to match that of the existing instance that it duplicates
|
|
105
|
+
unless uniques.any? do |i|
|
|
106
|
+
if i == instance
|
|
107
|
+
instance.version = i.version
|
|
108
|
+
true
|
|
109
|
+
else
|
|
110
|
+
false
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
if instance.respond_to?(:version=)
|
|
114
|
+
versions[instance.unversioned_name] ||= 0
|
|
115
|
+
versions[instance.unversioned_name] += 1
|
|
116
|
+
if versions[instance.unversioned_name] > 1
|
|
117
|
+
multi_version_tests[instance.unversioned_name] = true
|
|
118
|
+
end
|
|
119
|
+
instance.version = versions[instance.unversioned_name]
|
|
120
|
+
end
|
|
121
|
+
uniques << instance
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
# This final loop disables the version identifier for tests that have only a single version,
|
|
125
|
+
# this makes it clearer when multiple versions exist - whenever you see a v1 you know there
|
|
126
|
+
# is at least a v2 also.
|
|
127
|
+
collection.map! do |instance|
|
|
128
|
+
if instance.respond_to?(:version=)
|
|
129
|
+
unless multi_version_tests[instance.unversioned_name]
|
|
130
|
+
instance.append_version = false
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
instance
|
|
134
|
+
end
|
|
135
|
+
self.collection = uniques
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def sort! # :nodoc:
|
|
139
|
+
# Present the instances in the final sheet in alphabetical order
|
|
140
|
+
collection.map!.with_index do |ins, _i|
|
|
141
|
+
if ins.is_a?(String) # Can happen if content has been rendered in from a template
|
|
142
|
+
ins = IndexedString.new(ins)
|
|
143
|
+
end
|
|
144
|
+
ins
|
|
145
|
+
end
|
|
146
|
+
collection.sort! { |a, b| [a.name.to_s] <=> [b.name.to_s] }
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def bpmu(name, options = {})
|
|
150
|
+
add(name, :board_pmu, options)
|
|
151
|
+
end
|
|
152
|
+
alias_method :board_pmu, :bpmu
|
|
153
|
+
|
|
154
|
+
def ppmu(name, options = {})
|
|
155
|
+
add(name, :pin_pmu, options)
|
|
156
|
+
end
|
|
157
|
+
alias_method :pin_pmu, :ppmu
|
|
158
|
+
|
|
159
|
+
def functional(name, options = {})
|
|
160
|
+
add(name, :functional, options)
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def empty(name, options = {})
|
|
164
|
+
add(name, :empty, options)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def other(name, options = {})
|
|
168
|
+
add(name, :other, options)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def apmu_powersupply(name, options = {})
|
|
172
|
+
add(name, :apmu_powersupply, options)
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def mto_memory(name, options = {})
|
|
176
|
+
add(name, :mto_memory, options)
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
require 'active_support/concern'
|
|
2
|
+
|
|
3
|
+
module Origen
|
|
4
|
+
module Tester
|
|
5
|
+
class J750
|
|
6
|
+
module Generator
|
|
7
|
+
extend ActiveSupport::Concern
|
|
8
|
+
|
|
9
|
+
autoload :TestInstance, 'origen/tester/j750/generator/test_instance'
|
|
10
|
+
autoload :TestInstanceGroup, 'origen/tester/j750/generator/test_instance_group'
|
|
11
|
+
autoload :TestInstances, 'origen/tester/j750/generator/test_instances'
|
|
12
|
+
autoload :Patset, 'origen/tester/j750/generator/patset'
|
|
13
|
+
autoload :Patsets, 'origen/tester/j750/generator/patsets'
|
|
14
|
+
autoload :Patgroup, 'origen/tester/j750/generator/patgroup'
|
|
15
|
+
autoload :Patgroups, 'origen/tester/j750/generator/patgroups'
|
|
16
|
+
autoload :Flow, 'origen/tester/j750/generator/flow'
|
|
17
|
+
autoload :FlowLine, 'origen/tester/j750/generator/flow_line'
|
|
18
|
+
autoload :Placeholder, 'origen/tester/generator/placeholder'
|
|
19
|
+
|
|
20
|
+
included do
|
|
21
|
+
include Origen::Tester::Interface # adds the interface helpers/Origen hook-up
|
|
22
|
+
include Origen::Tester::Generator::FlowControlAPI::Interface
|
|
23
|
+
PLATFORM = Origen::Tester::J750
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @api private
|
|
27
|
+
def at_flow_start
|
|
28
|
+
@@test_instances_filename = nil
|
|
29
|
+
@@patsets_filename = nil
|
|
30
|
+
@@patgroups_filename = nil
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @api private
|
|
34
|
+
def at_run_start
|
|
35
|
+
flow.at_run_start
|
|
36
|
+
@@test_instance_sheets = nil
|
|
37
|
+
@@patset_sheets = nil
|
|
38
|
+
@@flow_sheets = nil
|
|
39
|
+
@@patgroup_sheets = nil
|
|
40
|
+
end
|
|
41
|
+
alias_method :reset_globals, :at_run_start
|
|
42
|
+
|
|
43
|
+
# Convenience method to allow the current name for the test instance,
|
|
44
|
+
# patsets and patgroups sheets to be set to the same value.
|
|
45
|
+
#
|
|
46
|
+
# # my j750 interface
|
|
47
|
+
#
|
|
48
|
+
# resources_filename = "common"
|
|
49
|
+
#
|
|
50
|
+
# # The above is equivalent to:
|
|
51
|
+
#
|
|
52
|
+
# test_instances_filename = "common"
|
|
53
|
+
# patsets_filename = "common"
|
|
54
|
+
# patgroups_filename = "common"
|
|
55
|
+
def resources_filename=(name)
|
|
56
|
+
self.test_instances_filename = name
|
|
57
|
+
self.patsets_filename = name
|
|
58
|
+
self.patgroups_filename = name
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Set the name of the current test instances sheet. This does not change
|
|
62
|
+
# the name of the current sheet, but rather sets the name of the sheet that
|
|
63
|
+
# will be generated the next time you access test_instances.
|
|
64
|
+
def test_instances_filename=(name)
|
|
65
|
+
@@test_instances_filename = name
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Set the name of the current pattern sets sheet. This does not change
|
|
69
|
+
# the name of the current sheet, but rather sets the name of the sheet that
|
|
70
|
+
# will be generated the next time you access patsets.
|
|
71
|
+
def patsets_filename=(name)
|
|
72
|
+
@@patsets_filename = name
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Set the name of the current pattern groups sheet. This does not change
|
|
76
|
+
# the name of the current sheet, but rather sets the name of the sheet that
|
|
77
|
+
# will be generated the next time you access patgroups.
|
|
78
|
+
def patgroups_filename=(name)
|
|
79
|
+
@@patgroups_filename = name
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Returns the name of the current test instances sheet
|
|
83
|
+
def test_instances_filename
|
|
84
|
+
@@test_instances_filename ||= 'global'
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Returns the name of the current pat sets sheet
|
|
88
|
+
def patsets_filename
|
|
89
|
+
@@patsets_filename ||= 'global'
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Returns the name of the current pat groups sheet
|
|
93
|
+
def patgroups_filename
|
|
94
|
+
@@patgroups_filename ||= 'global'
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Returns a hash containing all test instance sheets
|
|
98
|
+
def test_instance_sheets
|
|
99
|
+
@@test_instance_sheets ||= {}
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Returns a hash containing all pat set sheets
|
|
103
|
+
def patset_sheets
|
|
104
|
+
@@patset_sheets ||= {}
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Returns a hash containing all flow sheets
|
|
108
|
+
def flow_sheets
|
|
109
|
+
@@flow_sheets ||= {}
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Returns a hash containing all pat group sheets
|
|
113
|
+
def patgroup_sheets
|
|
114
|
+
@@patgroup_sheets ||= {}
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# Returns an array containing all sheet generators where a sheet generator is a flow,
|
|
118
|
+
# test instance, patset or pat group sheet.
|
|
119
|
+
# All Origen program generators must implement this method
|
|
120
|
+
def sheet_generators # :nodoc:
|
|
121
|
+
g = []
|
|
122
|
+
[flow_sheets, test_instance_sheets, patset_sheets, patgroup_sheets].each do |sheets|
|
|
123
|
+
sheets.each do |_name, sheet|
|
|
124
|
+
g << sheet
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
g
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Returns an array containing all flow sheet generators.
|
|
131
|
+
# All Origen program generators must implement this method
|
|
132
|
+
def flow_generators
|
|
133
|
+
g = []
|
|
134
|
+
flow_sheets.each do |_name, sheet|
|
|
135
|
+
g << sheet
|
|
136
|
+
end
|
|
137
|
+
g
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Returns the current test instances sheet (as defined by the current value of
|
|
141
|
+
# test_instances_filename).
|
|
142
|
+
#
|
|
143
|
+
# Pass in a filename argument to have a specific sheet returned instead.
|
|
144
|
+
#
|
|
145
|
+
# If the sheet does not exist yet it will be created.
|
|
146
|
+
def test_instances(filename = test_instances_filename)
|
|
147
|
+
f = filename.to_sym
|
|
148
|
+
return test_instance_sheets[f] if test_instance_sheets[f]
|
|
149
|
+
t = TestInstances.new
|
|
150
|
+
t.filename = f
|
|
151
|
+
test_instance_sheets[f] = t
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Returns the current pattern sets sheet (as defined by the current value of
|
|
155
|
+
# patsets_filename).
|
|
156
|
+
#
|
|
157
|
+
# Pass in a filename argument to have a specific sheet returned instead.
|
|
158
|
+
#
|
|
159
|
+
# If the sheet does not exist yet it will be created.
|
|
160
|
+
def patsets(filename = patsets_filename)
|
|
161
|
+
f = filename.to_sym
|
|
162
|
+
return patset_sheets[f] if patset_sheets[f]
|
|
163
|
+
p = Patsets.new
|
|
164
|
+
p.filename = f
|
|
165
|
+
patset_sheets[f] = p
|
|
166
|
+
end
|
|
167
|
+
alias_method :pat_sets, :patsets
|
|
168
|
+
alias_method :pattern_sets, :patsets
|
|
169
|
+
|
|
170
|
+
# Returns the current flow sheet (as defined by the name of the current top
|
|
171
|
+
# level flow source file).
|
|
172
|
+
#
|
|
173
|
+
# Pass in a filename argument to have a specific sheet returned instead.
|
|
174
|
+
#
|
|
175
|
+
# If the sheet does not exist yet it will be created.
|
|
176
|
+
def flow(filename = Origen.file_handler.current_file.basename('.rb').to_s)
|
|
177
|
+
f = filename.to_sym
|
|
178
|
+
return flow_sheets[f] if flow_sheets[f]
|
|
179
|
+
p = Flow.new
|
|
180
|
+
p.inhibit_output if Origen.interface.resources_mode?
|
|
181
|
+
p.filename = f
|
|
182
|
+
flow_sheets[f] = p
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
# Returns the current pattern groups sheet (as defined by the current value of
|
|
186
|
+
# patgroups_filename).
|
|
187
|
+
#
|
|
188
|
+
# Pass in a filename argument to have a specific sheet returned instead.
|
|
189
|
+
#
|
|
190
|
+
# If the sheet does not exist yet it will be created.
|
|
191
|
+
def patgroups(filename = patgroups_filename)
|
|
192
|
+
f = filename.to_sym
|
|
193
|
+
return patgroup_sheets[f] if patgroup_sheets[f]
|
|
194
|
+
p = Patgroups.new
|
|
195
|
+
p.filename = f
|
|
196
|
+
patgroup_sheets[f] = p
|
|
197
|
+
end
|
|
198
|
+
alias_method :pat_groups, :patgroups
|
|
199
|
+
alias_method :pattern_groups, :patgroups
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|