A. Known Issues

Limitations:

1. On this platform, the stack size is significantly less compared to other platforms and hence deep recursions and high memory consuming operations may cause stack overflow.

2. Calling setsockopt() on UDP sockets requires that the application is signed with NETWORKCONTROL capability.

3. The file access time and modification time are same on Symbian and the same behavior is reflected in the utime module.

4. Support for touch enabled devices is limited. Touch events other than LSK and RSK are not handled. Hence the UI handling in modules like graphics, glcanvas and appuifw will not function as expected on touch enabled devices.


Bugs:

1. Floating point formatting/parsing routines on this platform are imprecise and as a result you can't round-trip floating point numbers reliably or rely on floating point constants in Python source code to be precisely parsed into their corresponding double values.

2. The strftime() API in the OpenC library returns output parameters with junk characters when the 'Z' format specifier is used with the timezone as NULL and hence few test-cases for time and strptime modules fail.

3. The connect() API in the OpenC library raises EEXISTS instead of EISCONN, when it is called on an already connected non-blocking TCP socket.

4. Problem with decimal separator when the phone's locale uses a decimal separator other than dot ('.')

5. time.clock() does not work as expected.

6. APIs in extension modules which use callbacks does not work if invoked from a thread.

7. sensor module is not supported on S60 3rd edition FP2 and 5th edition devices.

8. For applications packaged with s60ui profile, 'Exit' key does not work as expected when raw_input is pending.

9. The document of the extension modules are not fully in line with the new code base.

10. Importing modules under application's private directory fails. A work around for this problem is packaging the modules to a directory under \data\python and include this directory path into sys.path before importing the modules. Ensymlbe's -extrasdir option can be used to place the modules under the required directory.
For example :
a)Place default.py in the directory "root\default.py"
b)Place dependent modules in "root\extras\data\python\
c)In default.py update the sys path
import sys
sys.path.append("c:\\data\\python")
d)ensymble py2sis root -extrasdir=extras
where "root" is the directory which contains default.py and "extras" directory. "extras" directory contains the required modules under the required directory tree.


Failing test cases:

Below is the summary of the standard regrtest Python module executed on this platform.


Table A.1: Failing test cases
Tests Comments
test_asynchat This test failed when tested on a 5th edition device and is under investigation. It works fine on 3rd edition and 3rd edition FP2 devices.
test_builtin test_cmp fails because of Stack Overflow
test_compiler testCompileLibrary, testLineNo fail because of Stack Overflow. Another reason for this fail is related to the zipping of all the standard Python files.
test_copy test_deepcopy_reflexive_dict, test_deepcopy_reflexive_list and test_deepcopy_reflexive_tuple fail because of Stack overflow
test_doctest Python bug (http://bugs.python.org/issue1540)
test_exceptions testInfiniteRecursions fail because of Stack Overflow
test_format This test crashes and this is related to bug # 1, as mentioned above.
test_logging This test hanged when tested on a 5th edition device and is under investigation. It works fine on 3rd edition and 3rd edition FP2 devices.
test_mailbox test_pack, test_set_item, test_update in TestMH and test_clean in TestMaildir fail. One of the reasons for these failures is the limitation # 3, as mentioned above. Further investigation is in progress.
test_marshal This fail relates to bug # 1, as mentioned above.
test_normalization testURLread fails and this relates to bug # 3, as mentioned above.
test_richcmp This fail is because of Stack overflow
test_socket testConnect fails and this relates to bug # 3, as mentioned above.
test_strptime This fail relates to bug # 2, as mentioned above.
test_time This fail relates to bug # 2, as mentioned above.
test_zipfile One of the reasons for this fail is related to the zipping of all the standard Python files and is under investigation.
test_importhooks This fails because distutils module not supported.
test_pyclbr This fail is related to the zipping of all the standard Python files.
test_repr This fail is related to the zipping of all the standard Python files.
test_urllib2 This fail is related to the zipping of all the standard Python files.


Skipped test cases:

These tests are skipped as one or more modules needed by them are not supported on this platform.


Table A.2: Skipped test cases
test_aepack test_al test_applesingle test_audioop test_bsddb test_bsddb185 test_bsddb3
test_bz2 test_cd test_cl test_cmd_line test_commands test_crypt test_ctypes
test_curses test_dbm test_distutils test_dl test_fork1 test_gdbm test_gl
test_grp test_hotshot test_imageop test_imgfile test_ioctl test_largefile test_linuxaudiodev
test_macfs test_macostools test_macpath test_mhlib test_mmap test_nis test_openpty
test_ossaudiodev test_pep277 test_plistlib test_poll test_popen test_popen2 test_pty
test_pwd test_resource test_rgbimg test_scriptpackages test_signal test_sqlite test_startfile
test_subprocess test_sunaudiodev test_sundry test_tcl test_threadsignals test_wait3 test_wait4
test_winreg test_winsound test_zipfile64        


These tests are also skipped, but are related to the zipping of all the standard Python files.


Table A.3: Skipped test cases related to zipping of standard Python files
test_email test_email_codecs test_email_renamed test_import


See About this document... for information on suggesting changes.