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 | ||||
|  | ||||
| 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']() | ||||
|     return prog == '' and (provider .. ' not detected') or false | ||||
|   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