origen 0.34.3 → 0.52.0
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 +5 -5
- data/bin/origen +1 -231
- data/config/application.rb +12 -3
- data/config/boot.rb +2 -7
- data/config/commands.rb +3 -74
- data/config/rubocop/easy_disabled.yml +4 -0
- data/config/rubocop/easy_enabled.yml +0 -4
- data/config/rubocop/strict_disabled.yml +4 -0
- data/config/rubocop/strict_enabled.yml +0 -4
- data/config/version.rb +2 -3
- data/lib/origen.rb +27 -14
- data/lib/origen/application.rb +88 -2
- data/lib/origen/application/deployer.rb +3 -1
- data/lib/origen/application/release.rb +2 -2
- data/lib/origen/application/runner.rb +35 -20
- data/lib/origen/boot.rb +302 -0
- data/lib/origen/boot/api.rb +13 -0
- data/lib/origen/boot/app.rb +284 -0
- data/lib/origen/code_generators.rb +30 -10
- data/lib/origen/code_generators/actions.rb +244 -34
- data/lib/origen/code_generators/base.rb +9 -2
- data/lib/origen/code_generators/block.rb +203 -0
- data/lib/origen/code_generators/block_common.rb +100 -0
- data/lib/origen/code_generators/dut.rb +62 -0
- data/lib/origen/code_generators/feature.rb +50 -0
- data/lib/origen/code_generators/klass.rb +41 -0
- data/lib/origen/code_generators/model.rb +60 -0
- data/lib/origen/code_generators/module.rb +92 -0
- data/lib/origen/commands.rb +30 -13
- data/lib/origen/commands/archive.rb +175 -0
- data/lib/origen/commands/extract.rb +43 -0
- data/lib/origen/commands/generate.rb +1 -0
- data/lib/origen/commands/lint.rb +6 -1
- data/lib/origen/commands/new.rb +48 -24
- data/lib/origen/commands/new_resource.rb +41 -0
- data/lib/origen/commands/site.rb +52 -0
- data/lib/origen/commands/web.rb +11 -6
- data/lib/origen/commands_global.rb +9 -7
- data/lib/origen/core_ext/numeric.rb +20 -0
- data/lib/{option_parser → origen/core_ext/option_parser}/optparse.rb +0 -0
- data/lib/origen/dependencies.rb +0 -0
- data/lib/origen/file_handler.rb +18 -6
- data/lib/origen/generator.rb +19 -10
- data/lib/origen/generator/comparator.rb +2 -1
- data/lib/origen/generator/flow.rb +3 -1
- data/lib/origen/generator/job.rb +60 -16
- data/lib/origen/generator/pattern.rb +132 -72
- data/lib/origen/generator/pattern_finder.rb +3 -3
- data/lib/origen/generator/pattern_sequence.rb +201 -0
- data/lib/origen/generator/pattern_sequencer.rb +99 -0
- data/lib/origen/generator/pattern_thread.rb +175 -0
- data/lib/origen/loader.rb +381 -0
- data/lib/origen/log.rb +250 -108
- data/lib/origen/model.rb +22 -1
- data/lib/origen/model/exporter.rb +50 -10
- data/lib/origen/model_initializer.rb +5 -1
- data/lib/origen/operating_systems.rb +4 -0
- data/lib/origen/parameters.rb +96 -4
- data/lib/origen/parameters/set.rb +4 -3
- data/lib/origen/pins.rb +10 -8
- data/lib/origen/pins/pin.rb +61 -46
- data/lib/origen/ports/port.rb +5 -0
- data/lib/origen/registers.rb +5 -0
- data/lib/origen/registers/bit.rb +57 -53
- data/lib/origen/registers/bit_collection.rb +100 -43
- data/lib/origen/registers/msb0_delegator.rb +47 -0
- data/lib/origen/registers/reg.rb +114 -99
- data/lib/origen/revision_control.rb +1 -1
- data/lib/origen/revision_control/git.rb +23 -3
- data/lib/origen/site_config.rb +251 -60
- data/lib/origen/site_config/config.rb +217 -0
- data/lib/origen/sub_blocks.rb +106 -31
- data/lib/origen/top_level.rb +11 -0
- data/lib/origen/users/user.rb +3 -2
- data/lib/origen/utility/mailer.rb +42 -9
- data/lib/origen/value/bin_str_val.rb +1 -1
- data/lib/origen/value/hex_str_val.rb +1 -1
- data/lib/origen/version_string.rb +6 -1
- data/lib/tasks/gem.rake +6 -1
- data/origen_app_generators/Gemfile +19 -0
- data/origen_app_generators/Gemfile.lock +152 -0
- data/origen_app_generators/LICENSE +21 -0
- data/origen_app_generators/README.md +368 -0
- data/{templates/code_generators/rakefile.rb → origen_app_generators/Rakefile} +0 -0
- data/origen_app_generators/bin/boot.rb +39 -0
- data/origen_app_generators/config/application.rb +153 -0
- data/origen_app_generators/config/boot.rb +1 -0
- data/origen_app_generators/config/commands.rb +63 -0
- data/origen_app_generators/config/shared_commands.rb +177 -0
- data/origen_app_generators/config/version.rb +8 -0
- data/origen_app_generators/doc/history +223 -0
- data/origen_app_generators/lbin/bundle +105 -0
- data/origen_app_generators/lbin/byebug +29 -0
- data/origen_app_generators/lbin/coderay +29 -0
- data/origen_app_generators/lbin/htmldiff +29 -0
- data/origen_app_generators/lbin/httparty +29 -0
- data/origen_app_generators/lbin/httpclient +29 -0
- data/origen_app_generators/lbin/kramdown +29 -0
- data/origen_app_generators/lbin/ldiff +29 -0
- data/origen_app_generators/lbin/nanoc +29 -0
- data/origen_app_generators/lbin/nokogiri +29 -0
- data/origen_app_generators/lbin/origen +62 -0
- data/origen_app_generators/lbin/pry +29 -0
- data/origen_app_generators/lbin/rackup +29 -0
- data/origen_app_generators/lbin/rake +29 -0
- data/origen_app_generators/lbin/rspec +29 -0
- data/origen_app_generators/lbin/rubocop +29 -0
- data/origen_app_generators/lbin/ruby-parse +29 -0
- data/origen_app_generators/lbin/ruby-rewrite +29 -0
- data/origen_app_generators/lbin/thor +29 -0
- data/origen_app_generators/lbin/tilt +29 -0
- data/origen_app_generators/lbin/yard +29 -0
- data/origen_app_generators/lbin/yardoc +29 -0
- data/origen_app_generators/lbin/yri +29 -0
- data/origen_app_generators/lib/origen_app_generators.rb +125 -0
- data/origen_app_generators/lib/origen_app_generators/application.rb +62 -0
- data/origen_app_generators/lib/origen_app_generators/base.rb +257 -0
- data/origen_app_generators/lib/origen_app_generators/empty_application.rb +15 -0
- data/origen_app_generators/lib/origen_app_generators/empty_plugin.rb +15 -0
- data/origen_app_generators/lib/origen_app_generators/new.rb +170 -0
- data/origen_app_generators/lib/origen_app_generators/new_app_tests.rb +4 -0
- data/origen_app_generators/lib/origen_app_generators/origen_infrastructure/app_generator_plugin.rb +107 -0
- data/origen_app_generators/lib/origen_app_generators/plugin.rb +55 -0
- data/origen_app_generators/lib/origen_app_generators/test_engineering/common.rb +29 -0
- data/origen_app_generators/lib/origen_app_generators/test_engineering/stand_alone_application.rb +64 -0
- data/origen_app_generators/lib/origen_app_generators/test_engineering/test_block.rb +61 -0
- data/origen_app_generators/origen_app_generators.gemspec +33 -0
- data/{templates/code_generators → origen_app_generators/spec}/spec_helper.rb +0 -0
- data/origen_app_generators/target/debug.rb +8 -0
- data/origen_app_generators/target/default.rb +8 -0
- data/origen_app_generators/target/production.rb +0 -0
- data/origen_app_generators/templates/app_generators/application/.gitignore +37 -0
- data/origen_app_generators/templates/app_generators/application/.irbrc +9 -0
- data/origen_app_generators/templates/app_generators/application/.rspec +1 -0
- data/origen_app_generators/templates/app_generators/application/.travis.yml +11 -0
- data/origen_app_generators/templates/app_generators/application/Gemfile +34 -0
- data/origen_app_generators/templates/app_generators/application/Rakefile +7 -0
- data/origen_app_generators/templates/app_generators/application/app/blocks/top_level.rb +12 -0
- data/origen_app_generators/templates/app_generators/application/app/lib/module.rb +6 -0
- data/origen_app_generators/templates/app_generators/application/app/templates/web/index.md.erb +19 -0
- data/origen_app_generators/templates/app_generators/application/app/templates/web/layouts/_basic.html.erb +13 -0
- data/origen_app_generators/templates/app_generators/application/app/templates/web/partials/_navbar.html.erb +20 -0
- data/origen_app_generators/templates/app_generators/application/app/templates/web/release_notes.md.erb +5 -0
- data/origen_app_generators/templates/app_generators/application/config/application.rb +121 -0
- data/origen_app_generators/templates/app_generators/application/config/boot.rb +4 -0
- data/origen_app_generators/templates/app_generators/application/config/commands.rb +79 -0
- data/origen_app_generators/templates/app_generators/application/config/maillist_dev.txt +4 -0
- data/origen_app_generators/templates/app_generators/application/config/maillist_prod.txt +3 -0
- data/origen_app_generators/templates/app_generators/application/config/version.rb +8 -0
- data/origen_app_generators/templates/app_generators/application/doc/history +0 -0
- data/origen_app_generators/templates/app_generators/application/dot_keep +0 -0
- data/origen_app_generators/templates/app_generators/application/origen_core_session +2 -0
- data/origen_app_generators/templates/app_generators/application/spec/spec_helper.rb +44 -0
- data/origen_app_generators/templates/app_generators/application/target/debug.rb +8 -0
- data/origen_app_generators/templates/app_generators/application/target/default.rb +1 -0
- data/origen_app_generators/templates/app_generators/application/target/production.rb +4 -0
- data/origen_app_generators/templates/app_generators/new/generator.rb +102 -0
- data/origen_app_generators/templates/app_generators/new/info.md.erb +9 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/application.rb +54 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/base.rb +55 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/module.rb +28 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/plugin.rb +64 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/config/load_generators.rb +6 -0
- data/origen_app_generators/templates/app_generators/plugin/Gemfile +32 -0
- data/origen_app_generators/templates/app_generators/plugin/Rakefile +10 -0
- data/origen_app_generators/templates/app_generators/plugin/app/templates/web/index.md.erb +37 -0
- data/origen_app_generators/templates/app_generators/plugin/app/templates/web/partials/_navbar_external.html.erb +20 -0
- data/origen_app_generators/templates/app_generators/plugin/app/templates/web/partials/_navbar_internal.html.erb +20 -0
- data/origen_app_generators/templates/app_generators/plugin/config/boot.rb +24 -0
- data/origen_app_generators/templates/app_generators/plugin/gemspec.rb +43 -0
- data/origen_app_generators/templates/app_generators/test_engineering/environment/j750.rb +1 -0
- data/origen_app_generators/templates/app_generators/test_engineering/environment/uflex.rb +1 -0
- data/origen_app_generators/templates/app_generators/test_engineering/environment/v93k.rb +1 -0
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/.keep +0 -0
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/.keep +0 -0
- data/origen_site_config.yml +55 -5
- data/templates/code_generators/attributes.rb +20 -0
- data/templates/code_generators/class.rb +9 -0
- data/templates/code_generators/controller.rb +87 -0
- data/templates/code_generators/model.rb +21 -0
- data/templates/code_generators/module.rb +4 -0
- data/templates/code_generators/parameters.rb +19 -0
- data/templates/code_generators/pins.rb +28 -0
- data/templates/code_generators/registers.rb +20 -0
- data/templates/code_generators/sub_blocks.rb +24 -0
- data/templates/code_generators/timesets.rb +24 -0
- data/templates/code_generators/version.rb +0 -1
- data/templates/git/gitignore.erb +0 -1
- data/vendor/lib/models/origen/export1.rb +77 -0
- data/vendor/lib/models/origen/export1/block1.rb +13 -0
- data/vendor/lib/models/origen/export1/block1/x.rb +36 -0
- data/vendor/lib/models/origen/non_origen_meta_data.md +1 -0
- metadata +149 -68
- data/bin/fix_my_workspace +0 -100
- data/lib/c99/ate_interface.rb +0 -77
- data/lib/c99/nvm.rb +0 -110
- data/lib/c99/target/mock2.rb +0 -1
- data/lib/c99/target/subdir/mock3.rb +0 -1
- data/lib/origen/code_generators/bundler.rb +0 -17
- data/lib/origen/code_generators/gem_setup.rb +0 -49
- data/lib/origen/code_generators/rake.rb +0 -13
- data/lib/origen/code_generators/rspec.rb +0 -12
- data/lib/origen/commands/add.rb +0 -12
- data/lib/tasks/private/build.rake +0 -8
- data/templates/code_generators/gemfile_app.rb +0 -4
- data/templates/code_generators/gemfile_plugin.rb +0 -6
- data/templates/code_generators/gemspec.rb +0 -33
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 66da9dd0e7daf45df9ed1b3296be702222ccfbdd9a7daa9d4258e13b8170a2d9
|
|
4
|
+
data.tar.gz: d4e0594b55959d9d98a8971f08e87d2fd62074f72076c21a5a75b3d667996638
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 25583f8f1033819423e649ddd3743e7b7a4a523b12724985e34b2b06d5dd83d3495e8eae9949cd5e6049b94548374a2c2ee3f9088815667a85c1d3e17633787a
|
|
7
|
+
data.tar.gz: e4d661a56516345b15ad2fa812fdb11ed171a3a067d6b5c86dc837bf4429c11244ab43ebe7677f9db16f442bf882aafbb7dcf2091cf4b14cfb0f14c86627e676
|
data/bin/origen
CHANGED
|
@@ -1,232 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
require 'pathname'
|
|
5
|
-
require 'fileutils'
|
|
6
|
-
#require 'byebug' # Un-comment to debug this file
|
|
7
|
-
|
|
8
|
-
class OrigenBootError < StandardError
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# Keep a note of the pwd at the time when Origen was first loaded, this is initially used
|
|
12
|
-
# by the site_config lookup.
|
|
13
|
-
$_origen_invocation_pwd ||= Pathname.pwd
|
|
14
|
-
|
|
15
|
-
load File.expand_path('../../lib/origen/operating_systems.rb', __FILE__)
|
|
16
|
-
load File.expand_path('../../lib/origen/site_config.rb', __FILE__)
|
|
17
|
-
|
|
18
|
-
# This will be referenced later in ruby_version_check, the origen used to launch
|
|
19
|
-
# the process is different than the one that actually runs under bundler
|
|
20
|
-
$origen_launch_root = Pathname.new(File.dirname(__FILE__)).parent
|
|
21
|
-
|
|
22
|
-
# Override any influence from $LANG in the users environment
|
|
23
|
-
Encoding.default_external = Encoding::UTF_8
|
|
24
|
-
Encoding.default_internal = Encoding::UTF_8
|
|
25
|
-
ENV['LC_ALL'] = nil
|
|
26
|
-
ENV['LANG'] = nil
|
|
27
|
-
ENV['LANG'] = 'en_US.UTF-8'
|
|
28
|
-
|
|
29
|
-
# Work out what Origen.root is if we are running inside an Origen application, this will be
|
|
30
|
-
# later used to execute from that app's bundle even if the origen executable lives somewhere
|
|
31
|
-
# else (e.g. in the tools repository)
|
|
32
|
-
app_config = File.join('config', 'application.rb')
|
|
33
|
-
if File.exist?(app_config)
|
|
34
|
-
origen_root = Dir.pwd
|
|
35
|
-
else
|
|
36
|
-
path = Pathname.new(Dir.pwd)
|
|
37
|
-
until path.root? || origen_root
|
|
38
|
-
if File.exist?(File.join(path, app_config))
|
|
39
|
-
origen_root = path.to_s
|
|
40
|
-
else
|
|
41
|
-
path = path.parent
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# If running inside an application workspace
|
|
47
|
-
if origen_root
|
|
48
|
-
# Force everyone to have a consistent way of installing gems with bundler
|
|
49
|
-
ENV['BUNDLE_GEMFILE'] = File.join(origen_root, 'Gemfile')
|
|
50
|
-
ENV['BUNDLE_PATH'] = File.expand_path(Origen.site_config.gem_install_dir)
|
|
51
|
-
ENV['BUNDLE_BIN'] = File.join(origen_root, 'lbin')
|
|
52
|
-
|
|
53
|
-
# If it looks like a bundled binstub of origen exists, and we have not been invoked through that,
|
|
54
|
-
# then run that instead.
|
|
55
|
-
if Origen.site_config.gem_manage_bundler && File.exist?("#{origen_root}/lbin/origen") && !ENV['BUNDLE_BIN_PATH'] &&
|
|
56
|
-
File.exist?(File.expand_path(Origen.site_config.gem_install_dir))
|
|
57
|
-
exec Gem.ruby, "#{origen_root}/lbin/origen", *ARGV
|
|
58
|
-
exit 0
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
boot_app = true
|
|
62
|
-
|
|
63
|
-
# If running outside an application and a user or central tool Origen bundle is to be used
|
|
64
|
-
elsif Origen.site_config.gem_manage_bundler && (Origen.site_config.user_install_enable || Origen.site_config.tool_repo_install_dir)
|
|
65
|
-
# Force everyone to have a consistent way of installing gems with bundler.
|
|
66
|
-
# In this case, we aren't running from an Origen application, so build everything at Origen.home instead
|
|
67
|
-
# Have two options here: if user_install_enable is true, use user_install_dir. Otherwise, use the tool_repo_install_dir
|
|
68
|
-
Origen.site_config.user_install_enable ? origen_root = File.expand_path(Origen.site_config.user_install_dir) : origen_root = File.expand_path(Origen.site_config.tool_repo_install_dir)
|
|
69
|
-
unless Dir.exists?(origen_root)
|
|
70
|
-
load File.expand_path('../../lib/origen/utility/input_capture.rb', __FILE__)
|
|
71
|
-
include Origen::Utility::InputCapture
|
|
72
|
-
|
|
73
|
-
puts "Root directory '#{origen_root}' does not exist. Would you like to create it?"
|
|
74
|
-
if get_text(confirm: :return_boolean)
|
|
75
|
-
FileUtils.mkdir(origen_root)
|
|
76
|
-
else
|
|
77
|
-
puts "Exiting with creating Origen install"
|
|
78
|
-
exit!
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
gemfile = File.join(origen_root, 'Gemfile')
|
|
83
|
-
unless File.exists?(gemfile)
|
|
84
|
-
# Create a default Gemfile that can be further customized by the user.
|
|
85
|
-
# Initial Gemfile only requires Origen. Nothing else. Essentially a blank installation.
|
|
86
|
-
Dir.chdir(origen_root) do
|
|
87
|
-
`bundle init`
|
|
88
|
-
end
|
|
89
|
-
# The above will give a general Gemfile from Bundler. We'll just append "gem 'origen' to the end.
|
|
90
|
-
File.open(gemfile, 'a') do |f|
|
|
91
|
-
f << "gem 'origen'\n"
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
ENV['BUNDLE_GEMFILE'] = gemfile
|
|
95
|
-
ENV['BUNDLE_PATH'] = File.expand_path(Origen.site_config.gem_install_dir)
|
|
96
|
-
ENV['BUNDLE_BIN'] = File.join(origen_root, 'lbin')
|
|
97
|
-
|
|
98
|
-
origen_exec = File.join(ENV['BUNDLE_BIN'], 'origen')
|
|
99
|
-
|
|
100
|
-
# If the user/tool bundle already exists but we have not been invoked through that, abort this thread
|
|
101
|
-
# and re-launch under the required bundler environment
|
|
102
|
-
if File.exist?(origen_exec) && !ENV['BUNDLE_BIN_PATH'] && File.exist?(ENV['BUNDLE_PATH'])
|
|
103
|
-
exec Gem.ruby, origen_exec, *ARGV
|
|
104
|
-
exit 0
|
|
105
|
-
else
|
|
106
|
-
boot_app = false
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
if origen_root && File.exist?(ENV['BUNDLE_GEMFILE']) && Origen.site_config.gem_manage_bundler && (boot_app || Origen.site_config.user_install_enable || Origen.site_config.tool_repo_install_dir)
|
|
111
|
-
# Overriding bundler here so that bundle install can be automated as required
|
|
112
|
-
require 'bundler/shared_helpers'
|
|
113
|
-
if Bundler::SharedHelpers.in_bundle?
|
|
114
|
-
require 'bundler'
|
|
115
|
-
if STDOUT.tty?
|
|
116
|
-
begin
|
|
117
|
-
fail OrigenBootError unless File.exist?(ENV['BUNDLE_BIN'])
|
|
118
|
-
Bundler.setup
|
|
119
|
-
fail OrigenBootError unless File.exist?(ENV['BUNDLE_BIN'])
|
|
120
|
-
rescue Gem::LoadError, Bundler::BundlerError, OrigenBootError => e
|
|
121
|
-
cmd = "bundle install --gemfile #{ENV['BUNDLE_GEMFILE']} --binstubs #{ENV['BUNDLE_BIN']} --path #{ENV['BUNDLE_PATH']}"
|
|
122
|
-
# puts cmd
|
|
123
|
-
puts 'Installing required gems...'
|
|
124
|
-
puts
|
|
125
|
-
`chmod o-w #{origen_root}` # Stops some annoying world writable warnings during install
|
|
126
|
-
`chmod o-w #{origen_root}/bin` if File.exist?("#{origen_root}/bin")
|
|
127
|
-
`chmod o-w #{origen_root}/.bin` if File.exist?("#{origen_root}/.bin")
|
|
128
|
-
result = false
|
|
129
|
-
|
|
130
|
-
Bundler.with_clean_env do
|
|
131
|
-
if Origen.os.unix?
|
|
132
|
-
if Origen.site_config.gem_build_switches
|
|
133
|
-
Origen.site_config.gem_build_switches.each do |switches|
|
|
134
|
-
`bundle config build.#{switches}`
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
result = system(cmd)
|
|
139
|
-
end
|
|
140
|
-
`chmod o-w #{ENV['BUNDLE_BIN']}`
|
|
141
|
-
# Make .bat versions of all executables, Bundler should really be doing this when running
|
|
142
|
-
# on windows
|
|
143
|
-
if Origen.os.windows?
|
|
144
|
-
bat_present = File.exist? "#{origen_root}/lbin/origen.bat"
|
|
145
|
-
Dir.glob("#{origen_root}/lbin/*").each do |bin|
|
|
146
|
-
unless bin =~ /.bat$/
|
|
147
|
-
bat = "#{bin}.bat"
|
|
148
|
-
unless File.exist?(bat)
|
|
149
|
-
File.open(bat, 'w') { |f| f.write('@"ruby.exe" "%~dpn0" %*') }
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
if !bat_present && !result
|
|
154
|
-
puts 'Some Windows specific updates to your workspace were required, please re-run the last command'
|
|
155
|
-
exit 0
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
if result
|
|
159
|
-
exec "origen #{ARGV.join(' ')}"
|
|
160
|
-
exit 0
|
|
161
|
-
else
|
|
162
|
-
puts
|
|
163
|
-
puts "If you have just updated a gem version and are now getting an error that Bundler cannot find compatible versions for it then first try running 'bundle update <gemname>'."
|
|
164
|
-
puts "For example if you have just changed the version of origen_core run 'bundle update origen_core'."
|
|
165
|
-
exit 1
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
else
|
|
169
|
-
Bundler.setup
|
|
170
|
-
end
|
|
171
|
-
end
|
|
172
|
-
require 'bundler/setup'
|
|
173
|
-
require 'origen'
|
|
174
|
-
else
|
|
175
|
-
$LOAD_PATH.unshift "#{File.expand_path(File.dirname(__FILE__))}/../lib"
|
|
176
|
-
require 'origen'
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
begin
|
|
180
|
-
# If this script has been invoked from within an Origen application then open
|
|
181
|
-
# up all commands, if not then only allow the command to create a new Origen
|
|
182
|
-
# application.
|
|
183
|
-
if origen_root && boot_app
|
|
184
|
-
require 'origen/commands'
|
|
185
|
-
else
|
|
186
|
-
require 'origen/commands_global'
|
|
187
|
-
end
|
|
188
|
-
rescue Exception => e
|
|
189
|
-
# A formatted stack dump will not be printed if the application ends via 'exit 0' or 'exit 1'. In that
|
|
190
|
-
# case the application code is responsible for printing a helpful error message.
|
|
191
|
-
# This will intercept all other exits, e.g. via 'fail "Something has done wrong"', and split the stack
|
|
192
|
-
# dump to separate all in-application references from Origen core/plugin references.
|
|
193
|
-
if e.is_a?(SystemExit)
|
|
194
|
-
exit e.status
|
|
195
|
-
else
|
|
196
|
-
puts
|
|
197
|
-
if Origen.app_loaded?
|
|
198
|
-
puts 'COMPLETE CALL STACK'
|
|
199
|
-
puts '-------------------'
|
|
200
|
-
puts e.message unless e.is_a?(SystemExit)
|
|
201
|
-
puts e.backtrace
|
|
202
|
-
|
|
203
|
-
puts
|
|
204
|
-
puts 'APPLICATION CALL STACK'
|
|
205
|
-
puts '----------------------'
|
|
206
|
-
puts e.message unless e.is_a?(SystemExit)
|
|
207
|
-
# Only print out the application stack trace by default, if verbose logging is
|
|
208
|
-
# enabled then output the full thing
|
|
209
|
-
e.backtrace.each do |line|
|
|
210
|
-
path = Pathname.new(line)
|
|
211
|
-
if path.absolute?
|
|
212
|
-
if line =~ /^#{Origen.root}/ && line !~ /^#{Origen.root}\/lbin/
|
|
213
|
-
puts line
|
|
214
|
-
end
|
|
215
|
-
else
|
|
216
|
-
puts line unless line =~ /^.\/lbin/
|
|
217
|
-
end
|
|
218
|
-
end
|
|
219
|
-
else
|
|
220
|
-
puts 'COMPLETE CALL STACK'
|
|
221
|
-
puts '-------------------'
|
|
222
|
-
puts e.message unless e.is_a?(SystemExit)
|
|
223
|
-
puts e.backtrace
|
|
224
|
-
end
|
|
225
|
-
exit 1
|
|
226
|
-
end
|
|
227
|
-
ensure
|
|
228
|
-
if Origen.app_loaded?
|
|
229
|
-
Origen.app.listeners_for(:on_origen_shutdown).each(&:on_origen_shutdown)
|
|
230
|
-
Origen.app.runner.shutdown
|
|
231
|
-
end
|
|
232
|
-
end
|
|
2
|
+
load File.expand_path('../../lib/origen/boot.rb', __FILE__)
|
data/config/application.rb
CHANGED
|
@@ -38,7 +38,8 @@ class OrigenCoreApplication < Origen::Application
|
|
|
38
38
|
|
|
39
39
|
#config.lsf.project = "origen core"
|
|
40
40
|
|
|
41
|
-
config.web_directory = "
|
|
41
|
+
config.web_directory = "https://github.com/Origen-SDK/Origen-SDK.github.io.git/origen"
|
|
42
|
+
#config.web_directory = "git@github.com:Origen-SDK/Origen-SDK.github.io.git/origen"
|
|
42
43
|
config.web_domain = "http://origen-sdk.org/origen"
|
|
43
44
|
|
|
44
45
|
config.pattern_prefix = "nvm"
|
|
@@ -78,13 +79,13 @@ class OrigenCoreApplication < Origen::Application
|
|
|
78
79
|
iterator.key = :by_block
|
|
79
80
|
|
|
80
81
|
iterator.loop do |&pattern|
|
|
81
|
-
|
|
82
|
+
dut.nvm.blocks.each do |block|
|
|
82
83
|
pattern.call(block)
|
|
83
84
|
end
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
iterator.setup do |block|
|
|
87
|
-
blk =
|
|
88
|
+
blk = dut.nvm.find_block_by_id(block.id)
|
|
88
89
|
blk.select
|
|
89
90
|
blk
|
|
90
91
|
end
|
|
@@ -119,6 +120,14 @@ class OrigenCoreApplication < Origen::Application
|
|
|
119
120
|
end
|
|
120
121
|
end
|
|
121
122
|
|
|
123
|
+
def before_release_gem
|
|
124
|
+
Dir.chdir Origen.root do
|
|
125
|
+
FileUtils.rm_rf('origen_app_generators') if File.exist?('origen_app_generators')
|
|
126
|
+
FileUtils.cp_r(Origen.app(:origen_app_generators).root, 'origen_app_generators')
|
|
127
|
+
FileUtils.rm_rf(File.join('origen_app_generators', '.git'))
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
122
131
|
# Ensure that all tests pass before allowing a release to continue
|
|
123
132
|
def validate_release
|
|
124
133
|
if !system("origen specs") || !system("origen examples")
|
data/config/boot.rb
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
# Interfaces must be required, can't autoload
|
|
2
|
-
require "c99/ate_interface"
|
|
3
|
-
# The majority of this class is defined in the support application,
|
|
4
|
-
# this is to test that the importing application can override and
|
|
5
|
-
# extend imported classes.
|
|
6
|
-
require_relative "../lib/c99/nvm"
|
|
7
|
-
|
|
8
1
|
require_relative "../helpers/guides"
|
|
2
|
+
|
|
3
|
+
require "#{Origen.root(:origen_sim)}/config/boot"
|
data/config/commands.rb
CHANGED
|
@@ -15,83 +15,12 @@ when "tags"
|
|
|
15
15
|
exit 0
|
|
16
16
|
|
|
17
17
|
when "specs"
|
|
18
|
+
Origen.app.session.origen_core[:mode] = 'debug'
|
|
18
19
|
require "rspec"
|
|
19
|
-
|
|
20
|
-
options = {}
|
|
21
|
-
opt_parser = OptionParser.new do |opts|
|
|
22
|
-
opts.banner = [
|
|
23
|
-
'Run the specs unit tests',
|
|
24
|
-
'Usage: origen specs [filename_substrings...] [options]',
|
|
25
|
-
"Note: all files must reside in #{Origen.app.root}/specs for filename substrings",
|
|
26
|
-
"E.g.: origen specs site_config #=> runs only specs in filenames matching 'site_config'"
|
|
27
|
-
].join("\n")
|
|
28
|
-
opts.on('-h', '--help', 'Show this help message') do |h|
|
|
29
|
-
puts opt_parser
|
|
30
|
-
exit!
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
opt_parser.parse! ARGV
|
|
34
|
-
|
|
35
|
-
# Search for the filenames given.
|
|
36
|
-
spec_files = ARGV.map do |file|
|
|
37
|
-
f = Pathname.new(file)
|
|
38
|
-
dir = Origen.app.root.join('spec')
|
|
39
|
-
|
|
40
|
-
# Find any files that match the name. Include all these files.
|
|
41
|
-
# Note that this will map a string to an array, so we'll flatten the array later.
|
|
42
|
-
# Also, we'll only search for .rb files in spec. Append that to the glob if no file ext is provided.
|
|
43
|
-
if f.exist? && f.extname == '.rb'
|
|
44
|
-
# This is a hard-coded path. Don't glob this, just make sure its witin the spec directory.
|
|
45
|
-
File.expand_path(f)
|
|
46
|
-
elsif f.extname == '.rb'
|
|
47
|
-
# Search includes the extension, so don't add it.
|
|
48
|
-
# (limited to .rb files)
|
|
49
|
-
Dir.glob(dir.join("**/*#{f}"))
|
|
50
|
-
else
|
|
51
|
-
# Search for matching ruby files.
|
|
52
|
-
# (limited to .rb files)
|
|
53
|
-
Dir.glob(dir.join("**/*#{f}*.rb"))
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
spec_files.flatten!
|
|
57
|
-
|
|
58
|
-
if ARGV.empty?
|
|
59
|
-
# No filename substrings given. Run all *_spec files in spec/ directory
|
|
60
|
-
spec_files = ['spec']
|
|
61
|
-
elsif spec_files.empty? && !ARGV.empty?
|
|
62
|
-
# The spec files to run is empty, but file substring were given.
|
|
63
|
-
# Report that no files were found and exit.
|
|
64
|
-
Origen.app!.fail!(message: "No matching spec files could be found at #{Origen.app.root}/spec for patterns: #{ARGV.join(', ')}")
|
|
65
|
-
else
|
|
66
|
-
# Filename substrings were given and matching files were found. List the files just for user awareness.
|
|
67
|
-
Origen.log.info "Found matching specs files for patterns: #{ARGV.join(', ')}"
|
|
68
|
-
spec_files.each { |f| Origen.log.info(f) }
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
current_mode = Origen.mode.instance_variable_get(:@current_mode)
|
|
72
|
-
Origen.mode = :debug
|
|
73
|
-
Origen.app.session.origen_core[:mode] = Origen.mode.to_s
|
|
74
|
-
begin
|
|
75
|
-
status = RSpec::Core::Runner.run(spec_files)
|
|
76
|
-
rescue SystemExit => e
|
|
77
|
-
Origen.log.error "Unexpected SystemExit reached. Reporting failure status..."
|
|
78
|
-
status = 1
|
|
79
|
-
end
|
|
80
|
-
Origen.mode = current_mode
|
|
81
|
-
Origen.app.session.origen_core[:mode] = Origen.mode.to_s
|
|
82
|
-
|
|
83
|
-
# One kind of confusing thing is that Specs can still print the 'pass'/'success' verbiage even when it actually failed.
|
|
84
|
-
# This is due to rspec itself catching the errors, so there's no exception to catch from outside Rspec.
|
|
85
|
-
# Most likely the user will see red and see that nothing was actually run, but print a reassuring message from Origen saying that the specs actually failed,
|
|
86
|
-
# despite what Rspec's verbiage says.
|
|
87
|
-
if status == 1
|
|
88
|
-
Origen.log.error "Some errors occurred outside of the examples: received exit status 1 (failure). Please review RSpec output for details."
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
exit(status)
|
|
20
|
+
exit RSpec::Core::Runner.run(['spec'])
|
|
92
21
|
|
|
93
22
|
when "examples", "test"
|
|
94
|
-
Origen.
|
|
23
|
+
Origen.app.session.origen_core[:mode] = 'debug'
|
|
95
24
|
status = 0
|
|
96
25
|
Dir["#{Origen.root}/examples/*.rb"].each do |example|
|
|
97
26
|
require example
|
|
@@ -78,10 +78,6 @@ Style/CharacterLiteral:
|
|
|
78
78
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
|
|
79
79
|
Enabled: true
|
|
80
80
|
|
|
81
|
-
Style/ClassAndModuleChildren:
|
|
82
|
-
Description: 'Checks style of children classes and modules.'
|
|
83
|
-
Enabled: true
|
|
84
|
-
|
|
85
81
|
Style/ClassCheck:
|
|
86
82
|
Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
|
|
87
83
|
Enabled: true
|
|
@@ -88,10 +88,6 @@ Style/CharacterLiteral:
|
|
|
88
88
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
|
|
89
89
|
Enabled: true
|
|
90
90
|
|
|
91
|
-
Style/ClassAndModuleChildren:
|
|
92
|
-
Description: 'Checks style of children classes and modules.'
|
|
93
|
-
Enabled: true
|
|
94
|
-
|
|
95
91
|
Style/ClassCheck:
|
|
96
92
|
Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
|
|
97
93
|
Enabled: true
|
data/config/version.rb
CHANGED
data/lib/origen.rb
CHANGED
|
@@ -12,8 +12,10 @@ unless defined? RGen::ORIGENTRANSITION
|
|
|
12
12
|
# by the site_config lookup.
|
|
13
13
|
$_origen_invocation_pwd ||= Pathname.pwd
|
|
14
14
|
require 'fileutils'
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
# Force these to re-load since they could have been loaded from an earlier version of Origen during boot
|
|
16
|
+
load 'origen/loader.rb'
|
|
17
|
+
load 'origen/site_config.rb'
|
|
18
|
+
load 'origen/operating_systems.rb'
|
|
17
19
|
require 'origen/core_ext'
|
|
18
20
|
require 'origen/acronyms'
|
|
19
21
|
require 'origen/callbacks'
|
|
@@ -24,11 +26,13 @@ unless defined? RGen::ORIGENTRANSITION
|
|
|
24
26
|
require 'origen/remote_manager'
|
|
25
27
|
require 'origen/utility'
|
|
26
28
|
require 'origen/logger_methods'
|
|
27
|
-
require 'option_parser/optparse'
|
|
29
|
+
require 'origen/core_ext/option_parser/optparse'
|
|
28
30
|
require 'bundler'
|
|
29
31
|
require 'origen/undefined'
|
|
30
32
|
require 'origen/componentable'
|
|
31
33
|
|
|
34
|
+
autoload :PatSeq, 'origen/generator/pattern_sequencer'
|
|
35
|
+
|
|
32
36
|
module Origen
|
|
33
37
|
autoload :Features, 'origen/features'
|
|
34
38
|
autoload :Bugs, 'origen/bugs'
|
|
@@ -74,17 +78,14 @@ unless defined? RGen::ORIGENTRANSITION
|
|
|
74
78
|
|
|
75
79
|
APP_CONFIG = File.join('config', 'application.rb')
|
|
76
80
|
|
|
77
|
-
class OrigenError < StandardError
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
class
|
|
84
|
-
class
|
|
85
|
-
class DesignSyncError < OrigenError; status_code(12); end
|
|
86
|
-
class RevisionControlUninitializedError < OrigenError; status_code(13); end
|
|
87
|
-
class SyntaxError < OrigenError; status_code(14); end
|
|
81
|
+
class OrigenError < StandardError; end
|
|
82
|
+
class PerforceError < OrigenError; end
|
|
83
|
+
class GitError < OrigenError; end
|
|
84
|
+
class DesignSyncError < OrigenError; end
|
|
85
|
+
class RevisionControlUninitializedError < OrigenError; end
|
|
86
|
+
class SyntaxError < OrigenError; end
|
|
87
|
+
class BinStrValError < OrigenError; end
|
|
88
|
+
class HexStrValError < OrigenError; end
|
|
88
89
|
|
|
89
90
|
class << self
|
|
90
91
|
include Origen::Utility::TimeAndDate
|
|
@@ -290,6 +291,7 @@ unless defined? RGen::ORIGENTRANSITION
|
|
|
290
291
|
|
|
291
292
|
# Returns true if Origen is running in an application workspace
|
|
292
293
|
def in_app_workspace?
|
|
294
|
+
return @in_app_workspace if defined? @in_app_workspace
|
|
293
295
|
@in_app_workspace ||= begin
|
|
294
296
|
path = Pathname.new(Dir.pwd)
|
|
295
297
|
until path.root? || File.exist?(File.join(path, APP_CONFIG))
|
|
@@ -660,6 +662,10 @@ unless defined? RGen::ORIGENTRANSITION
|
|
|
660
662
|
@running_remotely = val
|
|
661
663
|
end
|
|
662
664
|
|
|
665
|
+
def running_simulation?
|
|
666
|
+
!!(defined?(OrigenSim) && Origen.tester && Origen.tester.sim?)
|
|
667
|
+
end
|
|
668
|
+
|
|
663
669
|
# Returns true if Origen is running interactively. That is, the command was 'origen i'
|
|
664
670
|
def running_interactively?
|
|
665
671
|
!!@running_interactively
|
|
@@ -776,6 +782,13 @@ unless defined? RGen::ORIGENTRANSITION
|
|
|
776
782
|
end
|
|
777
783
|
end
|
|
778
784
|
|
|
785
|
+
# OS agnostic split of a caller line into file and line number
|
|
786
|
+
def split_caller_line(line)
|
|
787
|
+
arr = line.split(':')
|
|
788
|
+
arr[0] = arr[0] + ':' + arr.delete_at(1) if Origen.os.windows?
|
|
789
|
+
arr
|
|
790
|
+
end
|
|
791
|
+
|
|
779
792
|
private
|
|
780
793
|
|
|
781
794
|
def current_command=(val)
|