@@ -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,70 +274,101 @@ namespace :gen do
274274 end
275275end
276276
277- desc <<~DESC
278- Run the regression tests
279-
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
299-
300- puts
301- puts "Regression test PASSED"
277+ namespace :test do
278+ desc <<~DESC
279+ Run smoke tests
280+
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
289+
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
304- desc <<~DESC
305- Generate all certificates and profile PDFs.
306- DESC
307- task :cert_profile_pdfs do
308- puts "==================================="
309- puts "cert_profile_pdfs: Generating MC100"
310- puts " 1st target"
311- puts "==================================="
312- Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MC100.pdf" ] . invoke
313-
314- puts "=================================================="
315- puts "cert_profile_pdfs: Generating MockCertificateModel"
316- puts " 2nd target"
317- puts "=================================================="
318- Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MockCertificateModel.pdf" ] . invoke
319-
320- puts "==================================="
321- puts "cert_profile_pdfs: Generating RVA20"
322- puts " 3rd target"
323- puts "==================================="
324- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA20.pdf" ] . invoke
325-
326- puts "==================================="
327- puts "cert_profile_pdfs: Generating RVA22"
328- puts " 4th target"
329- puts "==================================="
330- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA22.pdf" ] . invoke
331-
332- puts "==================================="
333- puts "cert_profile_pdfs: Generating RVI20"
334- puts " 5th target"
335- puts "==================================="
336- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVI20.pdf" ] . invoke
337-
338- puts "==================================="
339- puts "cert_profile_pdfs: Generating MockProfileRelease"
340- puts " 6th target"
341- puts "==================================="
342- Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/MockProfileRelease.pdf" ] . invoke
333+ namespace :gen do
334+ desc <<~DESC
335+ Generate all certificates and profile PDFs.
336+ DESC
337+ task :cert_profile_pdfs do
338+ puts "==================================="
339+ puts "cert_profile_pdfs: Generating MC100"
340+ puts " 1st target"
341+ puts "==================================="
342+ Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MC100.pdf" ] . invoke
343+
344+ puts "=================================================="
345+ puts "cert_profile_pdfs: Generating MockCertificateModel"
346+ puts " 2nd target"
347+ puts "=================================================="
348+ Rake ::Task [ "#{ $root} /gen/certificate_doc/pdf/MockCertificateModel.pdf" ] . invoke
349+
350+ puts "==================================="
351+ puts "cert_profile_pdfs: Generating RVA20"
352+ puts " 3rd target"
353+ puts "==================================="
354+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA20.pdf" ] . invoke
355+
356+ puts "==================================="
357+ puts "cert_profile_pdfs: Generating RVA22"
358+ puts " 4th target"
359+ puts "==================================="
360+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVA22.pdf" ] . invoke
361+
362+ puts "==================================="
363+ puts "cert_profile_pdfs: Generating RVI20"
364+ puts " 5th target"
365+ puts "==================================="
366+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/RVI20.pdf" ] . invoke
367+
368+ puts "==================================="
369+ puts "cert_profile_pdfs: Generating MockProfileRelease"
370+ puts " 6th target"
371+ puts "==================================="
372+ Rake ::Task [ "#{ $root} /gen/profile_doc/pdf/MockProfileRelease.pdf" ] . invoke
373+ end
343374end
0 commit comments