implemented the coverage tool on _save instead of seek

This commit is contained in:
isidorajovanovic 2024-06-21 22:10:27 +02:00
parent 37eecafb75
commit 5701d33cbb
2 changed files with 14 additions and 14 deletions

View File

@ -14,7 +14,7 @@ def calculate_coverage(test_name):
"branches1": Image.branches, "branches1": Image.branches,
"branches2": PdfParser.XrefTable.branches, "branches2": PdfParser.XrefTable.branches,
"branches3": SpiderImagePlugin.SpiderImageFile.branches1, "branches3": SpiderImagePlugin.SpiderImageFile.branches1,
"branches4": SpiderImagePlugin.SpiderImageFile.branches2, "branches4": SpiderImagePlugin.branches2,
# Add more # Add more
} }

View File

@ -56,6 +56,13 @@ def isInt(f):
iforms = [1, 3, -11, -12, -21, -22] iforms = [1, 3, -11, -12, -21, -22]
branches2 = {
"1": False,
"2": False,
"3": False,
"4": False
}
# There is no magic number to identify Spider files, so just check a # There is no magic number to identify Spider files, so just check a
# series of header locations to see if they have reasonable values. # series of header locations to see if they have reasonable values.
@ -116,13 +123,6 @@ class SpiderImageFile(ImageFile.ImageFile):
"14": False "14": False
} }
branches2 = {
"1": False,
"2": False,
"3": False,
"4": False
}
def _open(self) -> None: def _open(self) -> None:
# check header # check header
n = 27 * 4 # read 27 float values n = 27 * 4 # read 27 float values
@ -220,17 +220,11 @@ class SpiderImageFile(ImageFile.ImageFile):
def seek(self, frame: int) -> None: def seek(self, frame: int) -> None:
if self.istack == 0: if self.istack == 0:
SpiderImageFile.branches2["1"] = True
msg = "attempt to seek in a non-stack file" msg = "attempt to seek in a non-stack file"
raise EOFError(msg) raise EOFError(msg)
else: # ADDED FOR BRANCH MARKING
SpiderImageFile.branches2["2"] = True
if not self._seek_check(frame): if not self._seek_check(frame):
SpiderImageFile.branches2["3"] = True
return return
else: # ADDED FOR BRANCH MARKING
SpiderImageFile.branches2["4"] = True
self.stkoffset = self.hdrlen + frame * (self.hdrlen + self.imgbytes) self.stkoffset = self.hdrlen + frame * (self.hdrlen + self.imgbytes)
self.fp = self._fp self.fp = self._fp
@ -319,12 +313,18 @@ def makeSpiderHeader(im: Image.Image) -> list[bytes]:
def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None: def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
if im.mode[0] != "F": if im.mode[0] != "F":
branches2["1"] = True
im = im.convert("F") im = im.convert("F")
else:
branches2["2"] = True
hdr = makeSpiderHeader(im) hdr = makeSpiderHeader(im)
if len(hdr) < 256: if len(hdr) < 256:
branches2["3"] = True
msg = "Error creating Spider header" msg = "Error creating Spider header"
raise OSError(msg) raise OSError(msg)
else:
branches2["4"] = True
# write the SPIDER header # write the SPIDER header
fp.writelines(hdr) fp.writelines(hdr)