@@ -55,20 +55,22 @@ namespace :serve do
5555 end
5656end
5757
58- desc "Run the IDL compiler test suite"
59- task :idl_test do
60- t = Minitest ::TestTask . new ( :lib_test )
61- t . test_globs = [ "#{ $root} /lib/idl/tests/test_*.rb" ]
62- t . process_env
63- ruby t . make_test_cmd
64- end
58+ namespace :test do
59+ # "Run the IDL compiler test suite"
60+ task :idl_compiler do
61+ t = Minitest ::TestTask . new ( :lib_test )
62+ t . test_globs = [ "#{ $root} /lib/idl/tests/test_*.rb" ]
63+ t . process_env
64+ ruby t . make_test_cmd
65+ end
6566
66- desc "Run the Ruby library test suite"
67- task :lib_test do
68- t = Minitest ::TestTask . new ( :lib_test )
69- t . test_globs = [ "#{ $root} /lib/test/test_*.rb" ]
70- t . process_env
71- ruby t . make_test_cmd
67+ # "Run the Ruby library test suite"
68+ task :lib do
69+ t = Minitest ::TestTask . new ( :lib_test )
70+ t . test_globs = [ "#{ $root} /lib/test/test_*.rb" ]
71+ t . process_env
72+ ruby t . make_test_cmd
73+ end
7274end
7375
7476desc "Clean up all generated files"
@@ -77,7 +79,7 @@ task :clean do
7779 FileUtils . rm_rf $root / ".stamps"
7880end
7981
80- namespace :validate do
82+ namespace :test do
8183 task :insts do
8284 puts "Checking instruction encodings..."
8385 inst_paths = Dir . glob ( "#{ $root} /arch/inst/**/*.yaml" ) . map { |f | Pathname . new ( f ) }
@@ -95,9 +97,10 @@ namespace :validate do
9597 progressbar . increment
9698 validator . validate ( f )
9799 end
100+ Rake ::Task [ "test:insts" ] . invoke
98101 puts "All files validate against their schema"
99102 end
100- task idl : [ "gen:arch" , "#{ $root} /.stamps/arch-gen-_32.stamp" , "#{ $root} /.stamps/arch-gen-_64.stamp" ] do
103+ task idl_model : [ "gen:arch" , "#{ $root} /.stamps/arch-gen-_32.stamp" , "#{ $root} /.stamps/arch-gen-_64.stamp" ] do
101104 print "Parsing IDL code for RV32..."
102105 arch_def_32 = arch_def_for ( "_32" )
103106 puts "done"
@@ -114,9 +117,6 @@ namespace :validate do
114117 end
115118end
116119
117- desc "Validate the arch docs"
118- task validate : [ "validate:schema" , "validate:idl" , "validate:insts" ]
119-
120120def insert_warning ( str , from )
121121 # insert a warning on the second line
122122 lines = str . lines
@@ -274,31 +274,60 @@ namespace :gen do
274274 end
275275end
276276
277- desc <<~DESC
278- Run the regression tests
277+ namespace :test do
278+ desc <<~DESC
279+ Run smoke tests
279280
280- These tests must pass before a commit will be allowed in the main branch on GitHub
281- DESC
282- task :regress do
283- Rake ::Task [ "idl_test" ] . invoke
284- Rake ::Task [ "lib_test" ] . invoke
285- Rake ::Task [ "validate" ] . invoke
286- ENV [ "MANUAL_NAME" ] = "isa"
287- ENV [ "VERSIONS" ] = "all"
288- Rake ::Task [ "gen:html_manual" ] . invoke
289- Rake ::Task [ "gen:html" ] . invoke ( "generic_rv64" )
290- ENV [ "EXT" ] = "B"
291- ENV [ "VERSION" ] = "latest"
292- Rake ::Task [ "gen:ext_pdf" ] . invoke
293- Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MockCertificateModel.pdf" ] . invoke
294- Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MC100.pdf" ] . invoke
295- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/MockProfileRelease.pdf" ] . invoke
296- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA20.pdf" ] . invoke
297- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA22.pdf" ] . invoke
298- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVI20.pdf" ] . invoke
281+ These are basic but fast-running tests to check the database and tools
282+ DESC
283+ task :smoke do
284+ Rake ::Task [ "test:idl_compiler" ] . invoke
285+ Rake ::Task [ "test:lib" ] . invoke
286+ Rake ::Task [ "test:schema" ] . invoke
287+ Rake ::Task [ "test:idl_model" ] . invoke
288+ end
299289
300- puts
301- puts "Regression test PASSED"
290+ desc <<~DESC
291+ Run the regression tests
292+
293+ These tests must pass before a commit will be allowed in the main branch on GitHub
294+ DESC
295+ task :regress do
296+ Rake ::Task [ "test:smoke" ] . invoke
297+
298+ ENV [ "MANUAL_NAME" ] = "isa"
299+ ENV [ "VERSIONS" ] = "all"
300+ Rake ::Task [ "gen:html_manual" ] . invoke
301+
302+ ENV [ "EXT" ] = "B"
303+ ENV [ "VERSION" ] = "latest"
304+ Rake ::Task [ "gen:ext_pdf" ] . invoke
305+
306+ Rake ::Task [ "gen:html" ] . invoke ( "generic_rv64" )
307+
308+ Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MockCertificateModel.pdf" ] . invoke
309+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/MockProfileRelease.pdf" ] . invoke
310+
311+ puts
312+ puts "Regression test PASSED"
313+ end
314+
315+ desc <<~DESC
316+ Run the nightly regression tests
317+
318+ Generally, this tries to build all artifacts
319+ DESC
320+ task :nightly do
321+ Rake ::Task [ "regress" ] . invoke
322+
323+ Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MC100.pdf" ] . invoke
324+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA20.pdf" ] . invoke
325+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA22.pdf" ] . invoke
326+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVI20.pdf" ] . invoke
327+
328+ puts
329+ puts "Nightly regression test PASSED"
330+ end
302331end
303332
304333desc <<~DESC
@@ -354,4 +383,4 @@ task MockCertificateModel: "#{$root}/gen/certificate_doc/pdf/MockCertificateMode
354383task RVI20 : "#{ $root} /gen/profile_doc/pdf/RVI20.pdf"
355384task RVA20 : "#{ $root} /gen/profile_doc/pdf/RVA20.pdf"
356385task RVA22 : "#{ $root} /gen/profile_doc/pdf/RVA22.pdf"
357- task MockProfileRelease : "#{ $root} /gen/profile_doc/pdf/MockProfileRelease.pdf"
386+ task MockProfileRelease : "#{ $root} /gen/profile_doc/pdf/MockProfileRelease.pdf"
0 commit comments