示例#1
0
def write_patch(fo, len_dst, tcontrol, bdiff, bextra):
    """write a BSDIFF4-format patch to stream 'fo'
    """
    fo.write(MAGIC)
    faux = StringIO()
    # write control tuples as series of offts
    for c in tcontrol:
        for x in c:
            faux.write(core.encode_int64(x))
    # compress each block
    bcontrol = bz2.compress(faux.getvalue())
    bdiff = bz2.compress(bdiff)
    bextra = bz2.compress(bextra)
    for n in len(bcontrol), len(bdiff), len_dst:
        fo.write(core.encode_int64(n))
    fo.write(bcontrol)
    fo.write(bdiff)
    fo.write(bextra)
示例#2
0
 def test_special_values(self):
     for n, b in [
         (-N, b'\xff\xff\xff\xff\xff\xff\xff\xff'),
         (-256, b'\x00\x01\x00\x00\x00\x00\x00\x80'),
         (-128, b'\x80\x00\x00\x00\x00\x00\x00\x80'),
         (-1, b'\x01\x00\x00\x00\x00\x00\x00\x80'),
         (0, b'\x00\x00\x00\x00\x00\x00\x00\x00'),
         (1, b'\x01\x00\x00\x00\x00\x00\x00\x00'),
         (127, b'\x7f\x00\x00\x00\x00\x00\x00\x00'),
         (128, b'\x80\x00\x00\x00\x00\x00\x00\x00'),
         (129, b'\x81\x00\x00\x00\x00\x00\x00\x00'),
         (255, b'\xff\x00\x00\x00\x00\x00\x00\x00'),
         (256, b'\x00\x01\x00\x00\x00\x00\x00\x00'),
         (257, b'\x01\x01\x00\x00\x00\x00\x00\x00'),
         (N, b'\xff\xff\xff\xff\xff\xff\xff\x7f'),
     ]:
         self.assertEqual(core.encode_int64(n), b)
         self.assertEqual(core.decode_int64(b), n)
示例#3
0
 def test_special_values(self):
     for n, s in [
         (-N, '\xff\xff\xff\xff\xff\xff\xff\xff'),
         (-256, '\x00\x01\x00\x00\x00\x00\x00\x80'),
         (-128, '\x80\x00\x00\x00\x00\x00\x00\x80'),
         (-1, '\x01\x00\x00\x00\x00\x00\x00\x80'),
         (0, '\x00\x00\x00\x00\x00\x00\x00\x00'),
         (1, '\x01\x00\x00\x00\x00\x00\x00\x00'),
         (127, '\x7f\x00\x00\x00\x00\x00\x00\x00'),
         (128, '\x80\x00\x00\x00\x00\x00\x00\x00'),
         (129, '\x81\x00\x00\x00\x00\x00\x00\x00'),
         (255, '\xff\x00\x00\x00\x00\x00\x00\x00'),
         (256, '\x00\x01\x00\x00\x00\x00\x00\x00'),
         (257, '\x01\x01\x00\x00\x00\x00\x00\x00'),
         (N, '\xff\xff\xff\xff\xff\xff\xff\x7f'),
         ]:
         b = to_bytes(s)
         self.assertEqual(core.encode_int64(n), b)
         self.assertEqual(core.decode_int64(b), n)
示例#4
0
 def test_special_values(self):
     for n, s in [
         (-N, '\xff\xff\xff\xff\xff\xff\xff\xff'),
         (-256, '\x00\x01\x00\x00\x00\x00\x00\x80'),
         (-128, '\x80\x00\x00\x00\x00\x00\x00\x80'),
         (-1, '\x01\x00\x00\x00\x00\x00\x00\x80'),
         (0, '\x00\x00\x00\x00\x00\x00\x00\x00'),
         (1, '\x01\x00\x00\x00\x00\x00\x00\x00'),
         (127, '\x7f\x00\x00\x00\x00\x00\x00\x00'),
         (128, '\x80\x00\x00\x00\x00\x00\x00\x00'),
         (129, '\x81\x00\x00\x00\x00\x00\x00\x00'),
         (255, '\xff\x00\x00\x00\x00\x00\x00\x00'),
         (256, '\x00\x01\x00\x00\x00\x00\x00\x00'),
         (257, '\x01\x01\x00\x00\x00\x00\x00\x00'),
         (N, '\xff\xff\xff\xff\xff\xff\xff\x7f'),
     ]:
         b = to_bytes(s)
         self.assertEqual(core.encode_int64(n), b)
         self.assertEqual(core.decode_int64(b), n)
示例#5
0
 def test_random(self):
     for dum in range(1000):
         n = random.randint(-N, N)
         b = core.encode_int64(n)
         self.assertEqual(len(b), 8)
         self.assertEqual(core.decode_int64(b), n)
示例#6
0
 def test_random(self):
     for dum in range(1000):
         n = random.randint(-N, N)
         b = core.encode_int64(n)
         self.assertEqual(len(b), 8)
         self.assertEqual(core.decode_int64(b), n)