mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 2d1b5589e8
			
		
	
	2d1b5589e8
	
	
	
		
			
			To follow the pattern of using NVIM for technical descriptions, it was renamed to NVIM_LISTEN_ADDRESS
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env expect
 | |
| 
 | |
| if {$argc < 2} {
 | |
|   puts "Need commands for running the tests and for starting nvim"
 | |
|   exit 1
 | |
| }
 | |
| 
 | |
| set timeout 60
 | |
| set run_tests [split [lindex $argv 0] " "]
 | |
| set run_nvim [split [lindex $argv 1] " "]
 | |
| 
 | |
| # don't echo to stdout
 | |
| log_user 0
 | |
| # set NVIM_LISTEN_ADDRESS, so nvim will listen on a known socket
 | |
| set env(NVIM_LISTEN_ADDRESS) "/tmp/nvim-[exec date +%s%N].sock"
 | |
| # start nvim
 | |
| spawn {*}$run_nvim
 | |
| # save the job descriptor
 | |
| set nvim_id $spawn_id
 | |
| # Reset function that can be invoked by test runners to put nvim in a cleaner
 | |
| # state
 | |
| send {
 | |
| :echo "read"."y"
 | |
| }
 | |
| # wait until nvim is ready
 | |
| expect "ready"
 | |
| # run tests
 | |
| spawn {*}$run_tests
 | |
| set tests_id $spawn_id
 | |
| set status 1
 | |
| # listen for test output in the background
 | |
| expect_background {
 | |
|   * {
 | |
|     # show test output to the user
 | |
|     send_user -- $expect_out(buffer)
 | |
|   }
 | |
|   eof {
 | |
|     # collect the exit status code
 | |
|     set spawn_id $tests_id
 | |
|     catch wait result
 | |
|     set status [lindex $result 3]
 | |
|     set spawn_id $nvim_id
 | |
|     # quit nvim
 | |
|     send ":qa!\r"
 | |
|   }
 | |
| }
 | |
| # switch back nvim and wait until it exits 
 | |
| set spawn_id $nvim_id
 | |
| expect eof
 | |
| exit $status
 |