1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#! /usr/bin/env python
##
## vi:ts=4:et
##
##---------------------------------------------------------------------------##
##
## This file is part of the LZO real-time data compression library.
##
## Copyright (C) 1998-2002 Markus Franz Xaver Johannes Oberhumer
## All Rights Reserved.
##
## The LZO library is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License as
## published by the Free Software Foundation; either version 2 of
## the License, or (at your option) any later version.
##
## The LZO library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with the LZO library; see the file COPYING.
## If not, write to the Free Software Foundation, Inc.,
## 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
## Markus F.X.J. Oberhumer
## <markus@oberhumer.com>
## http://www.oberhumer.com/opensource/lzo/
##
##---------------------------------------------------------------------------##
import sys, string
# update sys.path when running in the build directory
from util import get_sys_path
sys.path = get_sys_path()
import lzo
# /***********************************************************************
# // a very simple test driver...
# ************************************************************************/
def print_modinfo():
#print sys.modules
mod = sys.modules['lzo']
#print mod
d = mod.__dict__
for k in d.keys():
print k, d[k]
def test(src, level=1):
a0 = lzo.adler32(src)
c = lzo.compress(src, level)
u1 = lzo.decompress(c)
a1 = lzo.adler32(u1)
o = lzo.optimize(c)
u2 = lzo.decompress(o)
a2 = lzo.adler32(u2)
if src != u1 or src != u2:
raise lzo.error, "internal error 1"
if a0 != a1 or a0 != a2:
raise lzo.error, "internal error 2"
print "compressed %6d -> %6d" % (len(src), len(c))
def main(args):
# display version information and module documentation
print "LZO version %s (0x%x), %s" % (lzo.LZO_VERSION_STRING, lzo.LZO_VERSION, lzo.LZO_VERSION_DATE)
print lzo.__file__
print
print lzo.__doc__
# display additional module information
## print dir(lzo)
## print_modinfo()
# compress some simple strings
test("aaaaaaaaaaaaaaaaaaaaaaaa")
test("abcabcabcabcabcabcabcabc")
test("abcabcabcabcabcabcabcabc", level=9)
test(" " * 131072)
test("")
print "Simple compression test passed."
# force an exception (because of invalid compressed data)
assert issubclass(lzo.error, Exception)
try:
x = lzo.decompress("xx")
except lzo.error, ex:
## print ex
pass
else:
print "Exception handling does NOT work !"
return 1
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))
|