@@ -97,71 +97,6 @@ namespace :validate do
9797
9898 arch_def_64 . type_check
9999
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
165100 puts "All IDL passed type checking"
166101 end
167102end
@@ -325,3 +260,20 @@ namespace :gen do
325260 end
326261 end
327262end
263+
264+ desc <<~DESC
265+ Run the regression tests
266+
267+ These tests must pass before a commit will be allowed in the main branch on GitHub
268+ DESC
269+ task :regress do
270+ Rake ::Task [ "idl_test" ] . invoke
271+ Rake ::Task [ "validate" ] . invoke
272+ Rake ::Task [ "gen:html" ] . invoke ( "generic_rv64" )
273+ Rake ::Task [ "gen:crd_pdf" ] . invoke ( "MockCRD-1" )
274+ Rake ::Task [ "gen:crd_pdf" ] . invoke ( "MC-1" )
275+ Rake ::Task [ "gen:profile_pdf" ] . invoke ( "rva" )
276+
277+ puts
278+ puts "Regression test PASSED"
279+ end
0 commit comments