origen 0.34.3 → 0.52.0
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|