Major enhancement is PKCS12 support. git-svn-id: svn://10.0.0.236/trunk@262367 18797224-902f-48f8-a5cc-f745e15eee43
125 lines
3.1 KiB
Python
Executable File
125 lines
3.1 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import getopt
|
|
import sys
|
|
import os
|
|
import unittest
|
|
from util import get_build_dir
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
prog_name = os.path.basename(sys.argv[0])
|
|
|
|
config = {
|
|
'in_tree' : True,
|
|
}
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
def run_tests():
|
|
|
|
import setup_certs
|
|
import test_cert_components
|
|
import test_cipher
|
|
import test_digest
|
|
import test_pkcs12
|
|
import test_client_server
|
|
|
|
setup_certs.setup_certs()
|
|
|
|
loader = unittest.TestLoader()
|
|
runner = unittest.TextTestRunner()
|
|
|
|
suite = loader.loadTestsFromModule(test_cert_components)
|
|
suite.addTests(loader.loadTestsFromModule(test_cipher))
|
|
suite.addTests(loader.loadTestsFromModule(test_digest))
|
|
suite.addTests(loader.loadTestsFromModule(test_pkcs12))
|
|
suite.addTests(loader.loadTestsFromModule(test_client_server))
|
|
|
|
result = runner.run(suite)
|
|
return len(result.failures)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
class Usage(Exception):
|
|
def __init__(self, msg):
|
|
self.msg = msg
|
|
|
|
def usage():
|
|
'Print command help.'
|
|
|
|
return '''\
|
|
%(prog_name)s [-i]
|
|
|
|
-h --help print help
|
|
-i --installed runs the test using installed libraries
|
|
instead of "in tree" libraries
|
|
|
|
Runs unit tests.
|
|
By default test is done "in tree".
|
|
|
|
Examples:
|
|
|
|
Run test using libraries built in this tree
|
|
%(prog_name)s
|
|
|
|
Run post install test
|
|
%(prog_name)s -i
|
|
''' % {'prog_name' : prog_name,
|
|
}
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
def main(argv=None):
|
|
if argv is None:
|
|
argv = sys.argv
|
|
|
|
try:
|
|
try:
|
|
opts, args = getopt.getopt(argv[1:], 'hi',
|
|
['help', 'installed',])
|
|
except getopt.GetoptError, e:
|
|
raise Usage(e)
|
|
return 2
|
|
|
|
for o, a in opts:
|
|
if o in ('-h', '--help'):
|
|
print >>sys.stdout, usage()
|
|
return 0
|
|
elif o in ('-i', '--installed'):
|
|
config['in_tree'] = False
|
|
else:
|
|
raise Usage("command argument '%s' not handled, internal error" % o)
|
|
except Usage, e:
|
|
print >>sys.stderr, e.msg
|
|
print >>sys.stderr, "for help use --help"
|
|
return 2
|
|
|
|
|
|
if config['in_tree']:
|
|
# Run the tests "in the tree"
|
|
# Rather than testing with installed versions run the test
|
|
# with the package built in this tree.
|
|
|
|
build_dir = get_build_dir()
|
|
if build_dir and os.path.exists(build_dir):
|
|
print "Using local libraries from tree, located here:\n%s\n" % build_dir
|
|
sys.path.insert(0, build_dir)
|
|
else:
|
|
print >>sys.stderr, "ERROR: Unable to locate in tree libraries"
|
|
return 2
|
|
else:
|
|
print "Using installed libraries"
|
|
|
|
num_failures = run_tests()
|
|
|
|
if num_failures == 0:
|
|
return 0
|
|
else:
|
|
return 1
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|