home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_360 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.5 KB  |  77 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. import os
  6. import errno
  7. from ctypes import *
  8. from ctypes.util import find_library
  9. import threading
  10.  
  11. class Test(unittest.TestCase):
  12.     
  13.     def test_open(self):
  14.         libc_name = find_library('c')
  15.         if libc_name is not None:
  16.             libc = CDLL(libc_name, use_errno = True)
  17.             if os.name == 'nt':
  18.                 libc_open = libc._open
  19.             else:
  20.                 libc_open = libc.open
  21.             libc_open.argtypes = (c_char_p, c_int)
  22.             self.failUnlessEqual(libc_open('', 0), -1)
  23.             self.failUnlessEqual(get_errno(), errno.ENOENT)
  24.             self.failUnlessEqual(set_errno(32), errno.ENOENT)
  25.             self.failUnlessEqual(get_errno(), 32)
  26.             
  27.             def _worker():
  28.                 set_errno(0)
  29.                 libc = CDLL(libc_name, use_errno = False)
  30.                 if os.name == 'nt':
  31.                     libc_open = libc._open
  32.                 else:
  33.                     libc_open = libc.open
  34.                 libc_open.argtypes = (c_char_p, c_int)
  35.                 self.failUnlessEqual(libc_open('', 0), -1)
  36.                 self.failUnlessEqual(get_errno(), 0)
  37.  
  38.             t = threading.Thread(target = _worker)
  39.             t.start()
  40.             t.join()
  41.             self.failUnlessEqual(get_errno(), 32)
  42.             set_errno(0)
  43.         
  44.  
  45.     if os.name == 'nt':
  46.         
  47.         def test_GetLastError(self):
  48.             dll = WinDLL('kernel32', use_last_error = True)
  49.             GetModuleHandle = dll.GetModuleHandleA
  50.             GetModuleHandle.argtypes = [
  51.                 c_wchar_p]
  52.             self.failUnlessEqual(0, GetModuleHandle('foo'))
  53.             self.failUnlessEqual(get_last_error(), 126)
  54.             self.failUnlessEqual(set_last_error(32), 126)
  55.             self.failUnlessEqual(get_last_error(), 32)
  56.             
  57.             def _worker():
  58.                 set_last_error(0)
  59.                 dll = WinDLL('kernel32', use_last_error = False)
  60.                 GetModuleHandle = dll.GetModuleHandleW
  61.                 GetModuleHandle.argtypes = [
  62.                     c_wchar_p]
  63.                 GetModuleHandle('bar')
  64.                 self.failUnlessEqual(get_last_error(), 0)
  65.  
  66.             t = threading.Thread(target = _worker)
  67.             t.start()
  68.             t.join()
  69.             self.failUnlessEqual(get_last_error(), 32)
  70.             set_last_error(0)
  71.  
  72.     
  73.  
  74. if __name__ == '__main__':
  75.     unittest.main()
  76.  
  77.