* Make this test a bit more robust. It's still timing dependent
though.
This commit is contained in:
		
							parent
							
								
									3a87163b24
								
							
						
					
					
						commit
						7aedcf9460
					
				
					 3 changed files with 14 additions and 10 deletions
				
			
		|  | @ -2,7 +2,7 @@ echo "DOING $text" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # increase counter | # increase counter | ||||||
| while ! ln -s x $shared.lock; do | while ! ln -s x $shared.lock 2> /dev/null; do | ||||||
|     sleep 1 |     sleep 1 | ||||||
| done | done | ||||||
| test -f $shared.cur || echo 0 > $shared.cur | test -f $shared.cur || echo 0 > $shared.cur | ||||||
|  | @ -17,11 +17,11 @@ rm $shared.lock | ||||||
| 
 | 
 | ||||||
| echo -n $(cat $inputs)$text > $out | echo -n $(cat $inputs)$text > $out | ||||||
| 
 | 
 | ||||||
| sleep 3 | sleep $sleepTime | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # decrease counter | # decrease counter | ||||||
| while ! ln -s x $shared.lock; do | while ! ln -s x $shared.lock 2> /dev/null; do | ||||||
|     sleep 1 |     sleep 1 | ||||||
| done | done | ||||||
| test -f $shared.cur || echo 0 > $shared.cur | test -f $shared.cur || echo 0 > $shared.cur | ||||||
|  |  | ||||||
|  | @ -1,3 +1,5 @@ | ||||||
|  | {sleepTime ? 3}: | ||||||
|  | 
 | ||||||
| with import ./config.nix; | with import ./config.nix; | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|  | @ -5,7 +7,7 @@ let | ||||||
|   mkDrv = text: inputs: mkDerivation { |   mkDrv = text: inputs: mkDerivation { | ||||||
|     name = "parallel"; |     name = "parallel"; | ||||||
|     builder = ./parallel.builder.sh; |     builder = ./parallel.builder.sh; | ||||||
|     inherit text inputs shared; |     inherit text inputs shared sleepTime; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   a = mkDrv "a" []; |   a = mkDrv "a" []; | ||||||
|  |  | ||||||
|  | @ -25,21 +25,23 @@ clearStore | ||||||
| 
 | 
 | ||||||
| rm -f $SHARED.cur $SHARED.max | rm -f $SHARED.cur $SHARED.max | ||||||
| 
 | 
 | ||||||
| $nixbuild -j1 parallel.nix & | cmd="$nixbuild -j1 parallel.nix --argstr sleepTime 7" | ||||||
|  | 
 | ||||||
|  | $cmd & | ||||||
| pid1=$! | pid1=$! | ||||||
| echo "pid 1 is $pid1" | echo "pid 1 is $pid1" | ||||||
| 
 | 
 | ||||||
| $nixbuild -j1 parallel.nix & | $cmd & | ||||||
| pid2=$! | pid2=$! | ||||||
| echo "pid 2 is $pid2" | echo "pid 2 is $pid2" | ||||||
| 
 | 
 | ||||||
| $nixbuild -j1 parallel.nix & | $cmd & | ||||||
| pid3=$! | pid3=$! | ||||||
| echo "pid 3 is $pid3" | echo "pid 3 is $pid3" | ||||||
| 
 | 
 | ||||||
| wait $pid1 | wait $pid1 || fail "instance 1 failed: $?" | ||||||
| wait $pid2 | wait $pid2 || fail "instance 2 failed: $?" | ||||||
| wait $pid3 | wait $pid3 || fail "instance 3 failed: $?" | ||||||
| 
 | 
 | ||||||
| if test "$(cat $SHARED.cur)" != 0; then fail "wrong current process count"; fi | if test "$(cat $SHARED.cur)" != 0; then fail "wrong current process count"; fi | ||||||
| if test "$(cat $SHARED.max)" != 3; then fail "not enough parallelism"; fi | if test "$(cat $SHARED.max)" != 3; then fail "not enough parallelism"; fi | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue