'Test creating a C shared library object using pycc.'

def test_pycc_ctypes_lib(self):

    source = os.path.join(base_path, 'compile_with_pycc.py')
    cdll_modulename = ('test_dll_legacy' + find_shared_ending())
    cdll_path = os.path.join(self.tmpdir, cdll_modulename)
    if os.path.exists(cdll_path):
        os.unlink(cdll_path)
    main(args=['--debug', '-o', cdll_path, source])
    lib = CDLL(cdll_path)
    lib.mult.argtypes = [POINTER(c_double), c_void_p, c_void_p, c_double, c_double]
    lib.mult.restype = c_int
    lib.multf.argtypes = [POINTER(c_float), c_void_p, c_void_p, c_float, c_float]
    lib.multf.restype = c_int
    res = c_double()
    lib.mult(byref(res), None, None, 123, 321)
    self.assertEqual(res.value, (123 * 321))
    res = c_float()
    lib.multf(byref(res), None, None, 987, 321)
    self.assertEqual(res.value, (987 * 321))
