mirror of https://github.com/redis/redis.git
				
				
				
			
		
			
				
	
	
		
			33 lines
		
	
	
		
			828 B
		
	
	
	
		
			Tcl
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			828 B
		
	
	
	
		
			Tcl
		
	
	
	
| set testmodule [file normalize tests/modules/fork.so]
 | |
| 
 | |
| proc count_log_message {pattern} {
 | |
|     set result [exec grep -c $pattern < [srv 0 stdout]]
 | |
| }
 | |
| 
 | |
| start_server {tags {"modules"}} {
 | |
|     r module load $testmodule
 | |
| 
 | |
|     test {Module fork} {
 | |
|         # the argument to fork.create is the exitcode on termination
 | |
|         r fork.create 3
 | |
|         wait_for_condition 20 100 {
 | |
|             [r fork.exitcode] != -1
 | |
|         } else {
 | |
|             fail "fork didn't terminate"
 | |
|         }
 | |
|         r fork.exitcode
 | |
|     } {3}
 | |
| 
 | |
|     test {Module fork kill} {
 | |
|         r fork.create 3
 | |
|         after 20
 | |
|         r fork.kill
 | |
|         after 100
 | |
| 
 | |
|         assert {[count_log_message "fork child started"] eq "2"}
 | |
|         assert {[count_log_message "Received SIGUSR1 in child"] eq "1"}
 | |
|         assert {[count_log_message "fork child exiting"] eq "1"}
 | |
|     }
 | |
| 
 | |
| }
 |