tests: add a test for spack debug command
				
					
				
			This commit is contained in:
		| @@ -555,6 +555,9 @@ def instance(self): | ||||
|     def __getattr__(self, name): | ||||
|         return getattr(self.instance, name) | ||||
|  | ||||
|     def __getitem__(self, name): | ||||
|         return self.instance[name] | ||||
|  | ||||
|     def __str__(self): | ||||
|         return str(self.instance) | ||||
|  | ||||
| @@ -571,6 +574,9 @@ def __init__(self, ref_function): | ||||
|     def __getattr__(self, name): | ||||
|         return getattr(self.ref_function(), name) | ||||
|  | ||||
|     def __getitem__(self, name): | ||||
|         return self.ref_function()[name] | ||||
|  | ||||
|     def __str__(self): | ||||
|         return str(self.ref_function()) | ||||
|  | ||||
|   | ||||
| @@ -76,14 +76,14 @@ def create_db_tarball(args): | ||||
|     tarball_name = "spack-db.%s.tar.gz" % _debug_tarball_suffix() | ||||
|     tarball_path = os.path.abspath(tarball_name) | ||||
|  | ||||
|     base = os.path.basename(spack.store.root) | ||||
|     base = os.path.basename(str(spack.store.root)) | ||||
|     transform_args = [] | ||||
|     if 'GNU' in tar('--version', output=str): | ||||
|         transform_args = ['--transform', 's/^%s/%s/' % (base, tarball_name)] | ||||
|     else: | ||||
|         transform_args = ['-s', '/^%s/%s/' % (base, tarball_name)] | ||||
|  | ||||
|     wd = os.path.dirname(spack.store.root) | ||||
|     wd = os.path.dirname(str(spack.store.root)) | ||||
|     with working_dir(wd): | ||||
|         files = [spack.store.db._index_path] | ||||
|         files += glob('%s/*/*/*/.spack/spec.yaml' % base) | ||||
|   | ||||
							
								
								
									
										58
									
								
								lib/spack/spack/test/cmd/debug.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								lib/spack/spack/test/cmd/debug.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| ############################################################################## | ||||
| # Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC. | ||||
| # Produced at the Lawrence Livermore National Laboratory. | ||||
| # | ||||
| # This file is part of Spack. | ||||
| # Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. | ||||
| # LLNL-CODE-647188 | ||||
| # | ||||
| # For details, see https://github.com/spack/spack | ||||
| # Please also see the NOTICE and LICENSE files for our notice and the LGPL. | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU Lesser General Public License (as | ||||
| # published by the Free Software Foundation) version 2.1, February 1999. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and | ||||
| # conditions of the GNU Lesser General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU Lesser General Public | ||||
| # License along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
| ############################################################################## | ||||
| import os | ||||
| import os.path | ||||
|  | ||||
| from spack.main import SpackCommand | ||||
| from spack.util.executable import which | ||||
|  | ||||
| debug = SpackCommand('debug') | ||||
|  | ||||
|  | ||||
| def test_create_db_tarball(tmpdir, database): | ||||
|     with tmpdir.as_cwd(): | ||||
|         debug('create-db-tarball') | ||||
|  | ||||
|         files = os.listdir(os.getcwd()) | ||||
|         tarball_name = files[0] | ||||
|  | ||||
|         # debug command made an archive | ||||
|         assert os.path.exists(tarball_name) | ||||
|  | ||||
|         # print contents of archive | ||||
|         tar = which('tar') | ||||
|         contents = tar('tzf', tarball_name, output=str) | ||||
|  | ||||
|         # DB file is included | ||||
|         assert 'index.json' in contents | ||||
|  | ||||
|         # spec.yamls from all installs are included | ||||
|         for spec in database.query(): | ||||
|             # externals won't have a spec.yaml | ||||
|             if spec.external: | ||||
|                 continue | ||||
|  | ||||
|             spec_suffix = '%s/.spack/spec.yaml' % spec.dag_hash() | ||||
|             assert spec_suffix in contents | ||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin