@@ -31,7 +31,8 @@ namespace :gen do
3131 desc "Generate documentation for the ruby tooling"
3232 task tool_doc : "#{ $root} /.stamps/dev_gems" do
3333 Dir . chdir ( $root) do
34- sh "bundle exec yard doc"
34+ sh "bundle exec yard doc --yardopts arch_def.yardopts"
35+ sh "bundle exec yard doc --yardopts idl.yardopts"
3536 end
3637 end
3738end
@@ -97,71 +98,6 @@ namespace :validate do
9798
9899 arch_def_64 . type_check
99100
100- # arch_def_64 = arch_def_for("_64")
101- # arch_def_64.type_check
102-
103- # puts "Type checking IDL code..."
104- # progressbar = ProgressBar.create(title: "Instructions", total: arch_def_32.instructions.size + arch_def_64.instructions.size)
105- # arch_def_32.instructions.each do |inst|
106- # progressbar.increment
107- # inst.type_checked_operation_ast(arch_def_32.idl_compiler, arch_def_32.symtab, 32) if inst.rv32?
108- # end
109- # arch_def_64.instructions.each do |inst|
110- # progressbar.increment
111- # inst.type_checked_operation_ast(arch_def_64.idl_compiler, arch_def_64.symtab, 64) if inst.rv64?
112- # # also need to check for an RV64 machine running with effective XLEN of 32
113- # inst.type_checked_operation_ast(arch_def_64.idl_compiler, arch_def_64.symtab, 32) if inst.rv64? && inst.rv32?
114- # end
115-
116- # progressbar = ProgressBar.create(title: "CSRs", total: arch_def_32.csrs.size + arch_def_64.csrs.size)
117- # arch_def_32.csrs.each do |csr|
118- # progressbar.increment
119- # profile = RubyProf::Profile.new
120- # result = profile.profile do
121- # if csr.has_custom_sw_read?
122- # csr.type_checked_sw_read_ast(arch_def_32.symtab) if csr.defined_in_base32?
123- # end
124- # csr.fields.each do |field|
125- # unless field.type_ast(arch_def_32.symtab).nil?
126- # field.type_checked_type_ast(arch_def_32.symtab) if csr.defined_in_base32? && field.defined_in_base32?
127- # end
128- # unless field.reset_value_ast(arch_def_32.symtab).nil?
129- # field.type_checked_reset_value_ast(arch_def_32.symtab) if csr.defined_in_base32? && field.defined_in_base32?
130- # end
131- # unless field.sw_write_ast(arch_def_32.symtab).nil?
132- # field.type_checked_sw_write_ast(arch_def_32.symtab, 32) if csr.defined_in_base32? && field.defined_in_base32?
133- # end
134- # end
135- # end
136- # RubyProf::GraphHtmlPrinter.new(result).print(File.open("#{csr.name}-prof.html", "w+"), {})
137- # end
138- # arch_def_64.csrs.each do |csr|
139- # progressbar.increment
140- # if csr.has_custom_sw_read?
141- # csr.type_checked_sw_read_ast(arch_def_64.symtab) if csr.defined_in_base64?
142- # end
143- # csr.fields.each do |field|
144- # unless field.type_ast(arch_def_64.symtab).nil?
145- # field.type_checked_type_ast(arch_def_64.symtab) if csr.defined_in_base64? && field.defined_in_base64?
146- # end
147- # unless field.reset_value_ast(arch_def_64.symtab).nil?
148- # field.type_checked_reset_value_ast(arch_def_64.symtab) if csr.defined_in_base64? && field.defined_in_base64?
149- # end
150- # unless field.sw_write_ast(arch_def_64.symtab).nil?
151- # field.type_checked_sw_write_ast(arch_def_64.symtab, 32) if csr.defined_in_base32? && field.defined_in_base32?
152- # field.type_checked_sw_write_ast(arch_def_64.symtab, 64) if csr.defined_in_base64? && field.defined_in_base64?
153- # end
154- # end
155- # end
156- # progressbar = ProgressBar.create(title: "Functions", total: arch_def_32.functions.size + arch_def_64.functions.size)
157- # arch_def_32.functions.each do |func|
158- # progressbar.increment
159- # func.type_check(arch_def_32.symtab)
160- # end
161- # arch_def_64.functions.each do |func|
162- # progressbar.increment
163- # func.type_check(arch_def_64.symtab)
164- # end
165101 puts "All IDL passed type checking"
166102 end
167103end
@@ -325,3 +261,23 @@ namespace :gen do
325261 end
326262 end
327263end
264+
265+ desc <<~DESC
266+ Run the regression tests
267+
268+ These tests must pass before a commit will be allowed in the main branch on GitHub
269+ DESC
270+ task :regress do
271+ Rake ::Task [ "idl_test" ] . invoke
272+ Rake ::Task [ "validate" ] . invoke
273+ ENV [ "MANUAL_NAME" ] = "isa"
274+ ENV [ "VERSIONS" ] = "all"
275+ Rake ::Task [ "gen:html_manual" ] . invoke
276+ Rake ::Task [ "gen:html" ] . invoke ( "generic_rv64" )
277+ Rake ::Task [ "gen:crd_pdf" ] . invoke ( "MockCRD-1" )
278+ Rake ::Task [ "gen:crd_pdf" ] . invoke ( "MC-1" )
279+ Rake ::Task [ "gen:profile_pdf" ] . invoke ( "rva" )
280+
281+ puts
282+ puts "Regression test PASSED"
283+ end
0 commit comments