[csw-devel] SF.net SVN: gar:[21069] csw/mgar/gar/v2/lib/python
wahwah at users.sourceforge.net
wahwah at users.sourceforge.net
Tue May 14 00:54:09 CEST 2013
Revision: 21069
http://gar.svn.sourceforge.net/gar/?rev=21069&view=rev
Author: wahwah
Date: 2013-05-13 22:54:09 +0000 (Mon, 13 May 2013)
Log Message:
-----------
pkgdb: Fix inspective_package unit tests
Modified Paths:
--------------
csw/mgar/gar/v2/lib/python/inspective_package.py
csw/mgar/gar/v2/lib/python/inspective_package_test.py
Modified: csw/mgar/gar/v2/lib/python/inspective_package.py
===================================================================
--- csw/mgar/gar/v2/lib/python/inspective_package.py 2013-05-13 22:53:53 UTC (rev 21068)
+++ csw/mgar/gar/v2/lib/python/inspective_package.py 2013-05-13 22:54:09 UTC (rev 21069)
@@ -15,6 +15,7 @@
import shell
import mmap
import tempfile
+import io
from elftools.elf.elffile import ELFFile
from elftools.elf.enums import ENUM_E_MACHINE
@@ -282,12 +283,20 @@
binary_info = {'version definition': [],
'version needed': []}
- if not os.fstat(elfdump_output_file.fileno()).st_size:
+ try:
+ file_size = os.fstat(elfdump_output_file.fileno()).st_size
+ except io.UnsupportedOperation:
+ file_size = len(elfdump_output_file.getvalue())
+ if not file_size:
binary_info['symbol table'] = []
binaries_elf_info[binary] = binary_info
continue
- elfdump_output = mmap.mmap(elfdump_output_file.fileno(), 0, prot=mmap.PROT_READ)
+ try:
+ fileno = elfdump_output_file.fileno()
+ elfdump_output = mmap.mmap(fileno, 0, prot=mmap.PROT_READ)
+ except io.UnsupportedOperation:
+ elfdump_output = elfdump_output_file
cur_section = None
for line in iter(elfdump_output.readline, ""):
Modified: csw/mgar/gar/v2/lib/python/inspective_package_test.py
===================================================================
--- csw/mgar/gar/v2/lib/python/inspective_package_test.py 2013-05-13 22:53:53 UTC (rev 21068)
+++ csw/mgar/gar/v2/lib/python/inspective_package_test.py 2013-05-13 22:54:09 UTC (rev 21069)
@@ -9,6 +9,8 @@
import magic
import os
import common_constants
+import tempfile
+import io
LDD_R_OUTPUT_1 = """\tlibc.so.1 => /lib/libc.so.1
\tsymbol not found: check_encoding_conversion_args (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so)
@@ -135,7 +137,7 @@
-class InspectivePackageUnitTest(mox.MoxTestBase):
+class InspectivePackageUnitTest(mox.MoxTestBase, unittest.TestCase):
def testListBinaries(self):
self.mox.StubOutWithMock(os, 'access')
@@ -220,6 +222,11 @@
def testGetBinaryElfInfoRoot(self):
+ self.mox.StubOutWithMock(tempfile, 'TemporaryFile')
+ fake_file = io.BytesIO()
+ fake_file.write(ELFDUMP_OUTPUT)
+ fake_file.seek(0)
+ tempfile.TemporaryFile().AndReturn(fake_file)
fake_binary = 'opt/csw/lib/libssl.so.1.0.0'
fake_package_path = '/fake/path/CSWfoo'
@@ -235,12 +242,20 @@
args = [common_constants.ELFDUMP_BIN,
'-svy',
os.path.join(fake_package_path, "root", fake_binary)]
- shell.ShellCommand(args, allow_error=True).AndReturn((0, ELFDUMP_OUTPUT, ""))
+ shell.ShellCommand(
+ args,
+ allow_error=True,
+ stdout=mox.IgnoreArg()).AndReturn((0, "", ""))
self.mox.ReplayAll()
self.assertEqual(BINARY_ELFINFO, ip.GetBinaryElfInfo())
def testGetBinaryElfInfoReloc(self):
+ self.mox.StubOutWithMock(tempfile, 'TemporaryFile')
+ fake_file = io.BytesIO()
+ fake_file.write(ELFDUMP_OUTPUT)
+ fake_file.seek(0)
+ tempfile.TemporaryFile().AndReturn(fake_file)
fake_binary = 'lib/libssl.so.1.0.0'
fake_package_path = '/fake/path/CSWfoo'
@@ -256,7 +271,7 @@
args = [common_constants.ELFDUMP_BIN,
'-svy',
os.path.join(fake_package_path, "reloc", fake_binary)]
- shell.ShellCommand(args, allow_error=True).AndReturn((0, ELFDUMP_OUTPUT, ""))
+ shell.ShellCommand(args, allow_error=True, stdout=fake_file).AndReturn((0, "", ""))
self.mox.ReplayAll()
self.assertEqual(BINARY_ELFINFO, ip.GetBinaryElfInfo())
@@ -296,6 +311,12 @@
'version definition': [],
}
}
+ self.maxDiff = None
+ self.mox.StubOutWithMock(tempfile, 'TemporaryFile')
+ fake_file = io.BytesIO()
+ fake_file.write(fake_elfdump_output)
+ fake_file.seek(0)
+ tempfile.TemporaryFile().AndReturn(fake_file)
ip = inspective_package.InspectivePackage(fake_package_path)
self.mox.StubOutWithMock(ip, 'ListBinaries')
self.mox.StubOutWithMock(ip, 'GetBasedir')
@@ -308,7 +329,10 @@
args = [common_constants.ELFDUMP_BIN,
'-svy',
os.path.join(fake_package_path, "root", fake_binary)]
- shell.ShellCommand(args, allow_error=True).AndReturn((0, fake_elfdump_output, fake_elfdump_errors))
+ shell.ShellCommand(
+ args,
+ allow_error=True,
+ stdout=fake_file).AndReturn((0, fake_elfdump_output, fake_elfdump_errors))
self.mox.ReplayAll()
self.assertEqual(fake_binary_elfinfo, ip.GetBinaryElfInfo())
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list