Merge branch 'queeno-fix_truncation_bug'

This commit is contained in:
Andrey Smirnov
2014-10-17 00:55:09 +04:00
4 changed files with 27 additions and 1 deletions
+4 -1
View File
@@ -128,12 +128,15 @@ func (pool *PackagePool) Import(path string, hashMD5 string) error {
// unable to stat target location?
return err
}
// file doesn't exist, that's ok
} else {
// target already exists
if targetInfo.Size() != sourceInfo.Size() {
// trying to overwrite file?
return fmt.Errorf("unable to import into pool: file %s already exists", poolPath)
}
// assume that target is already there
return nil
}
// create subdirs as necessary
+5
View File
@@ -156,6 +156,7 @@ class BaseTest(object):
'files': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files"),
'udebs': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "udebs"),
'testfiles': os.path.join(os.path.dirname(inspect.getsourcefile(self.__class__)), self.__class__.__name__),
'aptlyroot': os.path.join(os.environ["HOME"], ".aptly"),
}
if self.fixtureWebServer:
params['url'] = self.webServerUrl
@@ -258,6 +259,10 @@ class BaseTest(object):
if os.path.exists(os.path.join(os.environ["HOME"], ".aptly", path)):
raise Exception("path %s exists" % (path, ))
def check_file_not_empty(self, path):
if os.stat(os.path.join(os.environ["HOME"], ".aptly", path))[6] == 0:
raise Exception("file %s is empty" % (path, ))
def check_equal(self, a, b):
if a != b:
self.verify_match(a, b, match_prepare=pprint.pformat)
+2
View File
@@ -0,0 +1,2 @@
Loading packages...
[+] libboost-program-options-dev_1.49.0.1_i386 added
+16
View File
@@ -267,3 +267,19 @@ class AddRepo13Test(BaseTest):
# check pool
self.check_exists('pool/72/16/dmraid-udeb_1.0.0.rc16-4.1_amd64.udeb')
self.check_exists('pool/b7/2c/pyspi_0.6.1-1.3.dsc')
class AddRepo14Test(BaseTest):
"""
add same package to local repo twice and make sure the file doesn't get truncated.
"""
fixtureCmds = [
"aptly repo create -comment=Repo14 -distribution=squeeze repo14",
"aptly repo add repo14 ${files}/libboost-program-options-dev_1.49.0.1_i386.deb"
]
runCmd = "aptly repo add repo14 $aptlyroot/pool/00/35/libboost-program-options-dev_1.49.0.1_i386.deb"
def check(self):
super(AddRepo14Test, self).check()
# check pool
self.check_file_not_empty('pool/00/35/libboost-program-options-dev_1.49.0.1_i386.deb')