mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	provider/perl: add basic tests
This commit is contained in:
		| @@ -768,7 +768,7 @@ function module.new_pipename() | |||||||
| end | end | ||||||
|  |  | ||||||
| function module.missing_provider(provider) | function module.missing_provider(provider) | ||||||
|   if provider == 'ruby' or provider == 'node' then |   if provider == 'ruby' or provider == 'node' or provider == 'perl' then | ||||||
|     local prog = module.funcs['provider#' .. provider .. '#Detect']() |     local prog = module.funcs['provider#' .. provider .. '#Detect']() | ||||||
|     return prog == '' and (provider .. ' not detected') or false |     return prog == '' and (provider .. ' not detected') or false | ||||||
|   elseif provider == 'python' or provider == 'python3' then |   elseif provider == 'python' or provider == 'python3' then | ||||||
|   | |||||||
							
								
								
									
										75
									
								
								test/functional/provider/perl_spec.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								test/functional/provider/perl_spec.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | local helpers = require('test.functional.helpers')(after_each) | ||||||
|  | local eq, clear = helpers.eq, helpers.clear | ||||||
|  | local missing_provider = helpers.missing_provider | ||||||
|  | local command = helpers.command | ||||||
|  | local write_file = helpers.write_file | ||||||
|  | local eval = helpers.eval | ||||||
|  | local retry = helpers.retry | ||||||
|  |  | ||||||
|  | do | ||||||
|  |   clear() | ||||||
|  |   local reason = missing_provider('perl') | ||||||
|  |   if reason then | ||||||
|  |     pending(string.format("Missing perl host, or perl version is too old (%s)", reason), function() end) | ||||||
|  |     return | ||||||
|  |   end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | before_each(function() | ||||||
|  |   clear() | ||||||
|  | end) | ||||||
|  |  | ||||||
|  | describe('perl host', function() | ||||||
|  |   teardown(function () | ||||||
|  |     os.remove('Xtest-perl-hello.pl') | ||||||
|  |     os.remove('Xtest-perl-hello-plugin.pl') | ||||||
|  |   end) | ||||||
|  |  | ||||||
|  |   it('works', function() | ||||||
|  |     local fname = 'Xtest-perl-hello.pl' | ||||||
|  |     write_file(fname, [[ | ||||||
|  |       package main; | ||||||
|  |       use v5.22.1; | ||||||
|  |       use Neovim::Ext; | ||||||
|  |       use Neovim::Ext::MsgPack::RPC; | ||||||
|  |  | ||||||
|  |       my $session = Neovim::Ext::MsgPack::RPC::socket_session($ENV{NVIM_LISTEN_ADDRESS}); | ||||||
|  |       my $nvim = Neovim::Ext::from_session($session); | ||||||
|  |       $nvim->command('let g:job_out = "hello"'); | ||||||
|  |       1; | ||||||
|  |     ]]) | ||||||
|  |     command('let g:job_id = jobstart(["perl", "'..fname..'"])') | ||||||
|  |     retry(nil, 3000, function() eq('hello', eval('g:job_out')) end) | ||||||
|  |   end) | ||||||
|  |  | ||||||
|  |   it('plugin works', function() | ||||||
|  |     local fname = 'Xtest-perl-hello-plugin.pl' | ||||||
|  |     write_file(fname, [[ | ||||||
|  |       package TestPlugin; | ||||||
|  |       use parent qw(Neovim::Ext::Plugin); | ||||||
|  |  | ||||||
|  |       __PACKAGE__->register; | ||||||
|  |  | ||||||
|  |       @{TestPlugin::commands} = (); | ||||||
|  |       @{TestPlugin::specs} = (); | ||||||
|  |       sub test_command :nvim_command('TestCommand') | ||||||
|  |       { | ||||||
|  |         my ($this) = @_; | ||||||
|  |         $this->nvim->command('let g:job_out = "hello-plugin"'); | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       package main; | ||||||
|  |       use v5.22.1; | ||||||
|  |       use Neovim::Ext; | ||||||
|  |       use Neovim::Ext::MsgPack::RPC; | ||||||
|  |  | ||||||
|  |       my $session = Neovim::Ext::MsgPack::RPC::socket_session($ENV{NVIM_LISTEN_ADDRESS}); | ||||||
|  |       my $nvim = Neovim::Ext::from_session($session); | ||||||
|  |       my $plugin = TestPlugin->new($nvim); | ||||||
|  |       $plugin->test_command(); | ||||||
|  |       1; | ||||||
|  |     ]]) | ||||||
|  |     command('let g:job_id = jobstart(["perl", "'..fname..'"])') | ||||||
|  |     retry(nil, 3000, function() eq('hello-plugin', eval('g:job_out')) end) | ||||||
|  |   end) | ||||||
|  | end) | ||||||
		Reference in New Issue
	
	Block a user
	 Jan Edmund Lazo
					Jan Edmund Lazo