[CRIU] [PATCH 1/2] tests: remember to clean everything on make clean

Tycho Andersen tycho.andersen at canonical.com
Tue Feb 16 09:42:30 PST 2016


On Tue, Feb 16, 2016 at 09:18:16AM -0700, Tycho Andersen wrote:
> If we forget to clean some of this stuff, we can get into strange states
> where zdtm.py thinks it has constructed the root, but really hasn't, and
> can't construct the root because it partially exists.

Heh, whoops. This one has lots of debugging. Let me resend without
that :)

> Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
> ---
>  test/Makefile | 4 ++++
>  test/zdtm.py  | 6 ++++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/test/Makefile b/test/Makefile
> index 059ae38..a0a22b0 100644
> --- a/test/Makefile
> +++ b/test/Makefile
> @@ -52,6 +52,10 @@ clean_root:
>  	$(Q) $(RM) -r ./etc
>  	$(Q) $(RM) -r ./dev
>  	$(Q) $(RM) -r ./bin
> +	$(Q) $(RM) -r ./sbin
> +	$(Q) $(RM) -r ./proc
> +	$(Q) $(RM) -r ./usr
> +	$(Q) $(RM) -r ./.constructed
>  
>  clean: clean_root
>  	$(RM) zdtm_ct zdtm-tst-list
> diff --git a/test/zdtm.py b/test/zdtm.py
> index 01b20e7..4bde1ec 100755
> --- a/test/zdtm.py
> +++ b/test/zdtm.py
> @@ -161,6 +161,7 @@ class ns_flavor:
>  
>  	def __construct_root(self):
>  		for dir in self.__root_dirs:
> +			print "mkdiring ", self.root + dir
>  			os.mkdir(self.root + dir)
>  			os.chmod(self.root + dir, 0777)
>  
> @@ -181,14 +182,17 @@ class ns_flavor:
>  		raise test_fail_exc("Deps check %s failed" % deps)
>  
>  	def init(self, l_bins, x_bins):
> +		print "init called for %s", l_bins[0]
>  		subprocess.check_call(["mount", "--make-slave", "--bind", ".", self.root])
>  		self.root_mounted = True
> +		print "root mounted for %s", l_bins[0]
>  
>  		if not os.access(self.root + "/.constructed", os.F_OK):
>  			with open(os.path.abspath(__file__)) as o:
>  				fcntl.flock(o, fcntl.LOCK_EX)
>  				if not os.access(self.root + "/.constructed", os.F_OK):
>  					print "Construct root for %s" % l_bins[0]
> +					print "root is ", self.root
>  					self.__construct_root()
>  					os.mknod(self.root + "/.constructed", stat.S_IFREG | 0600)
>  
> @@ -211,7 +215,9 @@ class ns_flavor:
>  			if os.access(p, os.F_OK):
>  				shutil.rmtree('./' + d)
>  
> +		print "accessing constructed...", os.access('./.constructed', os.F_OK)
>  		if os.access('./.constructed', os.F_OK):
> +			print "unlinking constructed"
>  			os.unlink('./.constructed')
>  
>  
> -- 
> 2.6.4
> 


More information about the CRIU mailing list