[ctypes-commit] ctypes/unittests test_cfuncs.py,1.2,1.3
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2004-05-25 09:35:26
|
Update of /cvsroot/ctypes/ctypes/unittests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24032 Modified Files: test_cfuncs.py Log Message: Add tests for stdcall functions (on windows). Index: test_cfuncs.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/unittests/test_cfuncs.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_cfuncs.py 17 May 2004 20:56:43 -0000 1.2 --- test_cfuncs.py 25 May 2004 09:35:16 -0000 1.3 *************** *** 3,76 **** import _ctypes_test ! dll = CDLL(_ctypes_test.__file__) class CFunctions(unittest.TestCase): def test_short(self): ! dll.tf_h.restype = c_short ! self.failUnlessEqual(dll.tf_h(-42), -42) ! dll.tf_bh.restype = c_short ! self.failUnlessEqual(dll.tf_bh(0, -42), -42) def test_ushort(self): ! dll.tf_H.restype = c_ushort ! self.failUnlessEqual(dll.tf_H(42), 42) ! dll.tf_bH.restype = c_ushort ! self.failUnlessEqual(dll.tf_bH(0, 42), 42) def test_int(self): ! dll.tf_i.restype = c_int ! self.failUnlessEqual(dll.tf_i(-42), -42) ! dll.tf_bi.restype = c_int ! self.failUnlessEqual(dll.tf_bi(0, -42), -42) def test_uint(self): ! dll.tf_I.restype = c_uint ! self.failUnlessEqual(dll.tf_I(42), 42) ! dll.tf_bI.restype = c_uint ! self.failUnlessEqual(dll.tf_bI(0, 42), 42) def test_long(self): ! dll.tf_l.restype = c_long ! self.failUnlessEqual(dll.tf_l(-42), -42) ! dll.tf_bl.restype = c_long ! self.failUnlessEqual(dll.tf_bl(0, -42), -42) def test_ulong(self): ! dll.tf_L.restype = c_ulong ! self.failUnlessEqual(dll.tf_L(42), 42) ! dll.tf_bL.restype = c_ulong ! self.failUnlessEqual(dll.tf_bL(0, 42), 42) def test_longlong(self): ! dll.tf_q.restype = c_longlong ! dll.tf_q.argtypes = (c_longlong, ) ! self.failUnlessEqual(dll.tf_q(-42L), -42L) ! dll.tf_bq.restype = c_longlong ! dll.tf_bq.argtypes = (c_byte, c_longlong) ! self.failUnlessEqual(dll.tf_bq(0, -42), -42) def test_ulonglong(self): ! dll.tf_Q.restype = c_ulonglong ! dll.tf_Q.argtypes = (c_longlong, ) ! self.failUnlessEqual(dll.tf_Q(42), 42) ! dll.tf_bQ.restype = c_ulonglong ! dll.tf_bQ.argtypes = (c_byte, c_ulonglong) ! self.failUnlessEqual(dll.tf_bQ(0, 42), 42) def test_float(self): ! dll.tf_f.restype = c_float ! dll.tf_f.argtypes = (c_float,) ! self.failUnlessEqual(dll.tf_f(-42.), -42.) ! dll.tf_bf.restype = c_float ! dll.tf_bf.argtypes = (c_byte, c_float) ! self.failUnlessEqual(dll.tf_bf(0, -42.), -42.) def test_double(self): ! dll.tf_d.restype = c_double ! dll.tf_d.argtypes = (c_double,) ! self.failUnlessEqual(dll.tf_d(42), 42) ! dll.tf_bd.restype = c_double ! dll.tf_bd.argtypes = (c_byte, c_double) ! self.failUnlessEqual(dll.tf_bd(0, 42), 42) if __name__ == '__main__': --- 3,95 ---- import _ctypes_test ! ##dll = CDLL(_ctypes_test.__file__) ! ##wdll = WinDLL(_ctypes_test.__file__) class CFunctions(unittest.TestCase): + def __init__(self, *args): + unittest.TestCase.__init__(self, *args) + self.dll = CDLL(_ctypes_test.__file__) + def test_short(self): ! self.dll.tf_h.restype = c_short ! self.failUnlessEqual(self.dll.tf_h(-42), -42) ! self.dll.tf_bh.restype = c_short ! self.failUnlessEqual(self.dll.tf_bh(0, -42), -42) def test_ushort(self): ! self.dll.tf_H.restype = c_ushort ! self.failUnlessEqual(self.dll.tf_H(42), 42) ! self.dll.tf_bH.restype = c_ushort ! self.failUnlessEqual(self.dll.tf_bH(0, 42), 42) def test_int(self): ! self.dll.tf_i.restype = c_int ! self.failUnlessEqual(self.dll.tf_i(-42), -42) ! self.dll.tf_bi.restype = c_int ! self.failUnlessEqual(self.dll.tf_bi(0, -42), -42) def test_uint(self): ! self.dll.tf_I.restype = c_uint ! self.failUnlessEqual(self.dll.tf_I(42), 42) ! self.dll.tf_bI.restype = c_uint ! self.failUnlessEqual(self.dll.tf_bI(0, 42), 42) def test_long(self): ! self.dll.tf_l.restype = c_long ! self.failUnlessEqual(self.dll.tf_l(-42), -42) ! self.dll.tf_bl.restype = c_long ! self.failUnlessEqual(self.dll.tf_bl(0, -42), -42) def test_ulong(self): ! self.dll.tf_L.restype = c_ulong ! self.failUnlessEqual(self.dll.tf_L(42), 42) ! self.dll.tf_bL.restype = c_ulong ! self.failUnlessEqual(self.dll.tf_bL(0, 42), 42) def test_longlong(self): ! self.dll.tf_q.restype = c_longlong ! self.dll.tf_q.argtypes = (c_longlong, ) ! self.failUnlessEqual(self.dll.tf_q(-42L), -42L) ! self.dll.tf_bq.restype = c_longlong ! self.dll.tf_bq.argtypes = (c_byte, c_longlong) ! self.failUnlessEqual(self.dll.tf_bq(0, -42), -42) def test_ulonglong(self): ! self.dll.tf_Q.restype = c_ulonglong ! self.dll.tf_Q.argtypes = (c_longlong, ) ! self.failUnlessEqual(self.dll.tf_Q(42), 42) ! self.dll.tf_bQ.restype = c_ulonglong ! self.dll.tf_bQ.argtypes = (c_byte, c_ulonglong) ! self.failUnlessEqual(self.dll.tf_bQ(0, 42), 42) def test_float(self): ! self.dll.tf_f.restype = c_float ! self.dll.tf_f.argtypes = (c_float,) ! self.failUnlessEqual(self.dll.tf_f(-42.), -42.) ! self.dll.tf_bf.restype = c_float ! self.dll.tf_bf.argtypes = (c_byte, c_float) ! self.failUnlessEqual(self.dll.tf_bf(0, -42.), -42.) def test_double(self): ! self.dll.tf_d.restype = c_double ! self.dll.tf_d.argtypes = (c_double,) ! self.failUnlessEqual(self.dll.tf_d(42), 42) ! self.dll.tf_bd.restype = c_double ! self.dll.tf_bd.argtypes = (c_byte, c_double) ! self.failUnlessEqual(self.dll.tf_bd(0, 42), 42) ! ! class stdcall_dll(WinDLL): ! def __getattr__(self, name): ! if name[:2] == '__' and name[-2:] == '__': ! raise AttributeError, name ! func = self._StdcallFuncPtr("s_" + name, self) ! setattr(self, name, func) ! return func ! ! class stdcallCFunctions(CFunctions): ! ! def __init__(self, *args): ! unittest.TestCase.__init__(self, *args) ! self.dll = stdcall_dll(_ctypes_test.__file__) if __name__ == '__main__': |