# @file # Split a file into two pieces at the request offset. # # Copyright (c) 2021, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ## # Import Modules import unittest import tempfile import os import shutil import Split.Split as sp import struct as st class TestSplit(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp() self.binary_file = os.path.join(self.tmpdir, "Binary.bin") self.create_inputfile() def tearDown(self): if os.path.exists(self.tmpdir): shutil.rmtree(self.tmpdir) def test_splitFile_position(self): position = [-1, 0, 256, 512, 700, 1024, 2048] result = [(0, 1024), (0, 1024), (256, 768), (512, 512), (700, 324), (1024, 0), (1024, 0)] outputfolder = self.tmpdir for index, po in enumerate(position): try: sp.splitFile(self.binary_file, po) except Exception as e: self.assertTrue(False, msg="splitFile function error") output1 = os.path.join(outputfolder, "Binary.bin1") output2 = os.path.join(outputfolder, "Binary.bin2") with open(output1, "rb") as f1: size1 = len(f1.read()) with open(output2, "rb") as f2: size2 = len(f2.read()) ex_result = result[index] self.assertEqual(size1, ex_result[0]) self.assertEqual(size2, ex_result[1]) def create_inputfile(self): with open(self.binary_file, "wb") as fout: for i in range(512): fout.write(st.pack("