tests: Improve synchronization in 'tests/guix-register.sh'.
* tests/guix-register.sh: When launching guix-daemon, add retry loop around 'open-connection'. This fixes test failures that could occur under heavy load where the daemon's socket file wouldn't be ready yet when the client connects.
This commit is contained in:
		
							parent
							
								
									61201e46a7
								
							
						
					
					
						commit
						57c7e46d39
					
				
					 1 changed files with 15 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# GNU Guix --- Functional package management for GNU
 | 
			
		||||
# Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
# Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 | 
			
		||||
#
 | 
			
		||||
# This file is part of GNU Guix.
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -157,8 +157,20 @@ do
 | 
			
		|||
    # that name in a 'valid-path?' query because 'assertStorePath' would kill
 | 
			
		||||
    # us because of the wrong prefix.  So we just list dead paths instead.
 | 
			
		||||
    guile -c "
 | 
			
		||||
      (use-modules (guix store) (srfi srfi-1))
 | 
			
		||||
      (define s (open-connection \"$GUIX_DAEMON_SOCKET\"))
 | 
			
		||||
      (use-modules (guix store) (srfi srfi-1) (srfi srfi-34))
 | 
			
		||||
 | 
			
		||||
      (define s
 | 
			
		||||
        (let loop ((i 5))
 | 
			
		||||
          (guard (c ((nix-connection-error? c)
 | 
			
		||||
                     (if (<= i 0)
 | 
			
		||||
                         (raise c)
 | 
			
		||||
                         (begin
 | 
			
		||||
                           (display \"waiting for daemon socket...\")
 | 
			
		||||
                           (newline)
 | 
			
		||||
                           (sleep 1)
 | 
			
		||||
                           (loop (- i 1))))))
 | 
			
		||||
             (open-connection \"$GUIX_DAEMON_SOCKET\"))))
 | 
			
		||||
 | 
			
		||||
      (exit (lset= string=?
 | 
			
		||||
                   (pk 1 (list \"$copied\" \"$copied_duplicate1\"
 | 
			
		||||
                               \"$copied_duplicate2\"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue