mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Merge #7093 from justinmk/fix-qb
This commit is contained in:
		
							
								
								
									
										92
									
								
								busted/outputHandlers/TAP.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								busted/outputHandlers/TAP.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | -- TODO(jkeyes): remove this and use the upstream version as soon as it is | ||||||
|  | -- available in a release of busted. | ||||||
|  |  | ||||||
|  | local pretty = require 'pl.pretty' | ||||||
|  |  | ||||||
|  | return function(options) | ||||||
|  |   local busted = require 'busted' | ||||||
|  |   local handler = require 'busted.outputHandlers.base'() | ||||||
|  |  | ||||||
|  |   local success = 'ok %u - %s' | ||||||
|  |   local failure = 'not ' .. success | ||||||
|  |   local skip = 'ok %u - # SKIP %s' | ||||||
|  |   local counter = 0 | ||||||
|  |  | ||||||
|  |   handler.suiteReset = function() | ||||||
|  |     counter = 0 | ||||||
|  |     return nil, true | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   handler.suiteEnd = function() | ||||||
|  |     print('1..' .. counter) | ||||||
|  |     io.flush() | ||||||
|  |     return nil, true | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   local function showFailure(t) | ||||||
|  |     local message = t.message | ||||||
|  |     local trace = t.trace or {} | ||||||
|  |  | ||||||
|  |     if message == nil then | ||||||
|  |       message = 'Nil error' | ||||||
|  |     elseif type(message) ~= 'string' then | ||||||
|  |       message = pretty.write(message) | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     print(failure:format(counter, t.name)) | ||||||
|  |     print('# ' .. t.element.trace.short_src .. ' @ ' .. t.element.trace.currentline) | ||||||
|  |     if t.randomseed then print('# Random seed: ' .. t.randomseed) end | ||||||
|  |     print('# Failure message: ' .. message:gsub('\n', '\n# ')) | ||||||
|  |     if options.verbose and trace.traceback then | ||||||
|  |       print('# ' .. trace.traceback:gsub('^\n', '', 1):gsub('\n', '\n# ')) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   handler.testStart = function(element, parent) | ||||||
|  |     local trace = element.trace | ||||||
|  |     if options.verbose and trace and trace.short_src then | ||||||
|  |       local fileline = trace.short_src .. ' @ ' ..  trace.currentline .. ': ' | ||||||
|  |       local testName = fileline .. handler.getFullName(element) | ||||||
|  |       print('# ' .. testName) | ||||||
|  |     end | ||||||
|  |     io.flush() | ||||||
|  |  | ||||||
|  |     return nil, true | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   handler.testEnd = function(element, parent, status, trace) | ||||||
|  |     counter = counter + 1 | ||||||
|  |     if status == 'success' then | ||||||
|  |       local t = handler.successes[#handler.successes] | ||||||
|  |       print(success:format(counter, t.name)) | ||||||
|  |     elseif status == 'pending' then | ||||||
|  |       local t = handler.pendings[#handler.pendings] | ||||||
|  |       print(skip:format(counter, (t.message or t.name))) | ||||||
|  |     elseif status == 'failure' then | ||||||
|  |       showFailure(handler.failures[#handler.failures]) | ||||||
|  |     elseif status == 'error' then | ||||||
|  |       showFailure(handler.errors[#handler.errors]) | ||||||
|  |     end | ||||||
|  |     io.flush() | ||||||
|  |  | ||||||
|  |     return nil, true | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   handler.error = function(element, parent, message, debug) | ||||||
|  |     if element.descriptor ~= 'it' then | ||||||
|  |       counter = counter + 1 | ||||||
|  |       showFailure(handler.errors[#handler.errors]) | ||||||
|  |     end | ||||||
|  |     io.flush() | ||||||
|  |  | ||||||
|  |     return nil, true | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   busted.subscribe({ 'suite', 'reset' }, handler.suiteReset) | ||||||
|  |   busted.subscribe({ 'suite', 'end' }, handler.suiteEnd) | ||||||
|  |   busted.subscribe({ 'test', 'start' }, handler.testStart, { predicate = handler.cancelOnPending }) | ||||||
|  |   busted.subscribe({ 'test', 'end' }, handler.testEnd, { predicate = handler.cancelOnPending }) | ||||||
|  |   busted.subscribe({ 'error' }, handler.error) | ||||||
|  |  | ||||||
|  |   return handler | ||||||
|  | end | ||||||
| @@ -1255,21 +1255,27 @@ func! Test_normal22_zet() | |||||||
|   " Test for ZZ |   " Test for ZZ | ||||||
|   " let shell = &shell |   " let shell = &shell | ||||||
|   " let &shell = 'sh' |   " let &shell = 'sh' | ||||||
|   call writefile(['1', '2'], 'Xfile') |  | ||||||
|   let args = ' --headless -u NONE -N -U NONE -i NONE --noplugins' |  | ||||||
|   call system(v:progpath . args . ' -c "%d" -c ":norm! ZZ" Xfile') |  | ||||||
|   let a = readfile('Xfile') |  | ||||||
|   call assert_equal([], a) |  | ||||||
|   " Test for ZQ |  | ||||||
|   call writefile(['1', '2'], 'Xfile') |  | ||||||
|   call system(v:progpath . args . ' -c "%d" -c ":norm! ZQ" Xfile') |  | ||||||
|   let a = readfile('Xfile') |  | ||||||
|   call assert_equal(['1', '2'], a) |  | ||||||
|  |  | ||||||
|   " clean up |   " Remove any stale test files from previous run. | ||||||
|   for file in ['Xfile'] |   for file in ['Xfile_Test_normal22_zet'] | ||||||
|     call delete(file) |     call delete(file) | ||||||
|   endfor |   endfor | ||||||
|  |  | ||||||
|  |   call writefile(['1', '2'], 'Xfile_Test_normal22_zet') | ||||||
|  |   let args = ' --headless -u NONE -N -U NONE -i NONE --noplugins' | ||||||
|  |   call system(v:progpath . args . ' -c "%d" -c ":norm! ZZ" Xfile_Test_normal22_zet') | ||||||
|  |   let a = readfile('Xfile_Test_normal22_zet') | ||||||
|  |   call assert_equal([], a) | ||||||
|  |   " Test for ZQ | ||||||
|  |   call writefile(['1', '2'], 'Xfile_Test_normal22_zet') | ||||||
|  |   call system(v:progpath . args . ' -c "%d" -c ":norm! ZQ" Xfile_Test_normal22_zet') | ||||||
|  |   let a = readfile('Xfile_Test_normal22_zet') | ||||||
|  |   call assert_equal(['1', '2'], a) | ||||||
|  |  | ||||||
|  |   " Nvim: This sometimes hangs the TSAN build. | ||||||
|  |   " for file in ['Xfile_Test_normal22_zet'] | ||||||
|  |   "   call delete(file) | ||||||
|  |   " endfor | ||||||
|   " let &shell = shell |   " let &shell = shell | ||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Justin M. Keyes
					Justin M. Keyes