[Pyobjc-dev] New test in Foundation
Brought to you by:
ronaldoussoren
From: Bill B. <bb...@co...> - 2002-10-23 14:58:00
|
I added a test_paths.py suite to Foundation to test the NSPathUtilities APIs. The NSSearchPathForDirectoriesInDomains() function is causing a bus error, at the moment: class TestSearchPaths( unittest.TestCase ): def testSearchPaths( self ): self.assert_( NSSearchPathForDirectoriesInDomains( NSAllLibrariesDirectory, NSAllDomainsMask, NO ), "NSSearchPathForDirectoriesInDomains() failed to return anything." ) It appears that the auto-generated wrappers are not invoking PyArg_ParseTupleAndKeywords() correctly in that the list of variables to parse the args into are passed by value, not by reference. For example... if (PyArg_ParseTupleAndKeywords(args, kwds, "iii:NSSearchPathForDirectoriesInDomains", keywords, objc_directory, objc_domainMask, objc_expandTilde) < 0) return NULL; ... the three objc_* should all be prefixed by an &, correct? I had a look at scripts/func_* and wasn't entirely certain how to re-run the scripts once modified. Gdb session follows.... b.bum --- [bumbox:~/bbum-developer/sourceforge/pyobjc] bbum% gdb python GNU gdb 5.1-20020408 (Apple version gdb-231) (Tue Aug 13 21:37:39 GMT 2002) .... Reading symbols for shared libraries .... done (gdb) r Lib/Foundation/test/test_paths.py Starting program: /usr/bin/python Lib/Foundation/test/test_paths.py [Switching to process 17312 thread 0xb03] ... Program received signal EXC_BAD_ACCESS, Could not access memory. 0x0000796c in PyArg_VaParse () (gdb) bt #0 0x0000796c in PyArg_VaParse () #1 0x00007470 in PyArg_VaParse () #2 0x00008b60 in PyArg_ParseTupleAndKeywords () #3 0x0000872c in PyArg_ParseTupleAndKeywords () #4 0x0080f340 in objc_NSSearchPathForDirectoriesInDomains (self=0x0, args=0x9d840, kwds=0xbfffde20) at Modules/Cocoa/_Fnd_Functions.inc:980 #5 0x00045930 in PyObject_Call () #6 0x0005df64 in PyEval_GetFuncDesc () #7 0x0005b1f8 in PyEval_EvalCode () #8 0x0005c634 in PyEval_EvalCodeEx () #9 0x0005db9c in PyEval_GetFuncDesc () #10 0x0005b314 in PyEval_EvalCode () #11 0x0005c634 in PyEval_EvalCodeEx () #12 0x0006d870 in PyFunction_SetClosure () #13 0x00045930 in PyObject_Call () #14 0x00056d74 in PyMethod_New () #15 0x00045930 in PyObject_Call () #16 0x000562cc in PyInstance_New () #17 0x00045930 in PyObject_Call () #18 0x0005df64 in PyEval_GetFuncDesc () #19 0x0005b32c in PyEval_EvalCode () #20 0x0005c634 in PyEval_EvalCodeEx () #21 0x0006d870 in PyFunction_SetClosure () #22 0x00045930 in PyObject_Call () #23 0x00056d74 in PyMethod_New () #24 0x00045930 in PyObject_Call () #25 0x000562cc in PyInstance_New () #26 0x00045930 in PyObject_Call () #27 0x0005df64 in PyEval_GetFuncDesc () #28 0x0005b32c in PyEval_EvalCode () #29 0x0005c634 in PyEval_EvalCodeEx () #30 0x0006d870 in PyFunction_SetClosure () #31 0x00045930 in PyObject_Call () #32 0x00056d74 in PyMethod_New () #33 0x00045930 in PyObject_Call () #34 0x000562cc in PyInstance_New () #35 0x00045930 in PyObject_Call () #36 0x0005df64 in PyEval_GetFuncDesc () #37 0x0005b32c in PyEval_EvalCode () #38 0x0005c634 in PyEval_EvalCodeEx () #39 0x0005db9c in PyEval_GetFuncDesc () #40 0x0005b314 in PyEval_EvalCode () #41 0x0005c634 in PyEval_EvalCodeEx () #42 0x0005db9c in PyEval_GetFuncDesc () #43 0x0005b314 in PyEval_EvalCode () #44 0x0005c634 in PyEval_EvalCodeEx () #45 0x0006d870 in PyFunction_SetClosure () #46 0x00045930 in PyObject_Call () #47 0x00056d74 in PyMethod_New () #48 0x00045930 in PyObject_Call () #49 0x0005d838 in PyEval_CallObjectWithKeywords () #50 0x000527c0 in PyInstance_New () #51 0x00045930 in PyObject_Call () #52 0x0005df64 in PyEval_GetFuncDesc () #53 0x0005b32c in PyEval_EvalCode () #54 0x0005c634 in PyEval_EvalCodeEx () #55 0x00058a80 in PyEval_EvalCode () #56 0x00027e90 in PyRun_FileExFlags () #57 0x00026ef4 in PyRun_SimpleFileExFlags () #58 0x000069f0 in Py_Main () #59 0x00002970 in start () #60 0x000027f0 in start () |