[Python-Dev] test coverage
Neal Norwitz
neal@metaslash.com
Tue, 18 Dec 2001 21:45:03 -0500
I've been doing a bunch of testing using the regression tests
and have tried to improve the test coverage. I've made some
progress. Overall, the regression tests do a pretty good job.
Below are all the functions that are not currently covered by
the regression tests in Objects/ Parser/ and Python/ (Modules/
has too many at this point). This list may not be perfect,
but should be pretty close (some tests failed: test_new,
test_funcattrs, and test_symtable).
I don't know how many of these can be reached from within
the python (interpreter), some may only be callable from C code
which embeds python.
After improving test coverage, I'll go back and run purify
to see if there are any new memory leaks.
Sorry, the list is kinda long. Let me know if there's a better way
to distribute this info.
Neal
--
Objects/abstract.c
PyObject_CallMethodObjArgs
PyObject_CallFunctionObjArgs
PyObject_Type
PyObject_Length
PyObject_AsWriteBuffer
PyNumber_InPlaceTrueDivide
PySequence_Length
PySequence_In
PySequence_InPlaceConcat
PySequence_InPlaceRepeat
PyMapping_Length
PyMapping_HasKeyString
PyMapping_HasKey
PyMapping_GetItemString
PyMapping_SetItemString
null_error
sliceobj_from_intint
objargs_mktuple
Objects/bufferobject.c
PyBuffer_FromReadWriteObject
PyBuffer_FromReadWriteMemory
PyBuffer_New
buffer_compare
buffer_getwritebuf
Objects/cellobject.c
cell_compare
cell_repr
Objects/classobject.c
instance_ass_item
PyMethod_Function
PyMethod_Self
PyMethod_Class
set_slot
set_attr_slots
set_dict
set_bases
set_name
instancemethod_hash
Objects/cobject.c
PyCObject_FromVoidPtrAndDesc
PyCObject_GetDesc
PyCObject_Import
Objects/complexobject.c
PyComplex_FromDoubles
complex_print
complex_div
Objects/descrobject.c
member_repr
getset_repr
wrapper_repr
method_get_doc
wrapper_get_doc
proxy_len
proxy_has_key
proxy_get
proxy_values
proxy_items
proxy_copy
proxy_getiter
proxy_str
proxy_traverse
wrapper_name
Objects/dictobject.c
PyDict_Values
PyDict_Items
dictiter_next
Objects/fileobject.c
PyFile_FromString
PyFile_Name
Objects/floatobject.c
PyFloat_AsString
PyFloat_AsStringEx
float_print
Objects/funcobject.c
PyFunction_GetCode
PyFunction_GetGlobals
PyFunction_GetDefaults
PyFunction_GetClosure
PyClassMethod_New
func_set_code
func_set_defaults
Objects/iterobject.c
iter_traverse
iter_next
calliter_traverse
calliter_next
Objects/listobject.c
list_print
immutable_list_op
immutable_list_ass
Objects/longobject.c
PyLong_AsVoidPtr
Objects/methodobject.c
listmethodchain
PyCFunction_GetFunction
PyCFunction_GetSelf
PyCFunction_GetFlags
meth_traverse
meth_get__self__
meth_compare
Objects/object.c
_PyObject_Dump
PyObject_Not
PyObject_Malloc
PyObject_Realloc
PyObject_Free
none_dealloc
NotImplemented_repr
Objects/rangeobject.c
range_compare
range_slice
range_tolist
range_getattr
Objects/sliceobject.c
PySlice_GetIndices
slice_compare
Objects/stringobject.c
_Py_ReleaseInternedStrings
PyString_Decode
PyString_Encode
PyString_AsEncodedString
PyString_AsDecodedString
string_getbuffer
string_buffer_getwritebuf
Objects/structseq.c
structseq_repr
structseq_concat
structseq_repeat
structseq_contains
structseq_hash
Objects/tupleobject.c
tupleprint
Objects/typeobject.c
slot_nb_coerce
type_set_module
type_subclasses
wrap_binaryfunc_r
wrap_coercefunc
wrap_ternaryfunc_r
wrap_sq_delitem
wrap_delslice
wrap_delitem
wrap_hashfunc
slot_sq_length
slot_sq_ass_item
slot_tp_iter
slot_tp_iternext
super_repr
Objects/unicodeobject.c
PyUnicodeUCS2_Replace
PyUnicodeUCS2_AsUnicode
PyUnicodeUCS2_GetSize
PyUnicodeUCS2_FromWideChar
PyUnicodeUCS2_AsWideChar
PyUnicodeUCS2_SetDefaultEncoding
PyUnicodeUCS2_Encode
PyUnicodeUCS2_AsUTF16String
PyUnicodeUCS2_AsUnicodeEscapeString
PyUnicodeUCS2_AsRawUnicodeEscapeString
PyUnicodeUCS2_AsCharmapString
PyUnicodeUCS2_Translate
PyUnicodeUCS2_Tailmatch
PyUnicodeUCS2_Find
utf8_decoding_error
utf16_decoding_error
latin1_encoding_error
charmap_encoding_error
unicode_index
unicode_rindex
unicode_buffer_getreadbuf
unicode_buffer_getwritebuf
Objects/weakrefobject.c
PyWeakref_GetObject
gc_clear
weakref_repr
proxy_print
proxy_repr
proxy_compare
proxy_nonzero
proxy_slice
proxy_ass_slice
proxy_contains
proxy_length
proxy_setitem
Parser/bitset.c
_Py_delbitset
Parser/grammar1.c
PyGrammar_LabelRepr
Parser/listnode.c
list1node
PyNode_ListTree
listnode
Parser/myreadline.c
PyOS_StdioReadline
PyOS_Readline
my_fgets
Parser/parsetok.c
PyParser_ParseString
Parser/pgen.c
dumpstate
dumpnfa
printssdfa
Parser/pgenmain.c
PySys_WriteStderr
Py_FatalError
PyOS_Readline
Parser/tokenizer.c
indenterror
Python/ceval.c
call_exc_trace
PyEval_CallObject
Py_SetRecursionLimit
Py_GetRecursionLimit
PyEval_AcquireLock
PyEval_ReleaseThread
loop_subscript
gen_traverse
gen_next
Python/codecs.c
PyCodec_StreamReader
PyCodec_StreamWriter
build_stream_codec
Python/compile.c
PyCode_Addr2Line
PyNode_CompileSymtable
code_repr
do_pad
dump
Python/errors.c
PyErr_WriteUnraisable
PyErr_BadArgument
PyErr_NoMemory
PyErr_BadInternalCall
_PyErr_BadInternalCall
Python/frozenmain.c
Py_FrozenMain
Python/getargs.c
PyArg_VaParse
Python/import.c
PyImport_ExtendInittab
PyImport_ExecCodeModule
PyImport_AppendInittab
get_frozen_object
imp_init_builtin
imp_init_frozen
imp_get_frozen_object
imp_is_builtin
imp_is_frozen
imp_load_compiled
imp_load_dynamic
imp_load_module
imp_load_package
Python/marshal.c
PyMarshal_ReadShortFromFile
PyMarshal_ReadObjectFromFile
w_more
marshal_dump
marshal_load
Python/modsupport.c
PyEval_CallFunction
_ustrlen
Python/pyfpe.c
PyFPE_dummy
Python/pystate.c
PyInterpreterState_Head
PyInterpreterState_Next
PyInterpreterState_ThreadHead
PyThreadState_Next
Python/pythonrun.c
Py_NewInterpreter
PyRun_InteractiveLoopFlags
PyRun_InteractiveOneFlags
parse_syntax_error
print_error_text
PyErr_Display
Py_FatalError
Py_SetPythonHome
Py_EndInterpreter
PyRun_AnyFile
PyRun_AnyFileEx
PyRun_AnyFileFlags
PyRun_SimpleString
PyRun_SimpleStringFlags
PyRun_SimpleFile
PyRun_SimpleFileEx
PyRun_InteractiveOne
PyRun_InteractiveLoop
PyRun_File
PyRun_FileFlags
Py_CompileString
Py_SymtableString
PyErr_Print
Py_AtExit
run_pyc_file
add_flag
Python/structmember.c
PyMember_Set
listmembers
Python/symtable.c
ste_repr
Python/sysmodule.c
mywrite
PySys_WriteStdout
PySys_WriteStderr
PySys_GetFile
PySys_AddWarnOption
sys_excepthook
sys_getdefaultencoding
sys_setdefaultencoding
sys_setcheckinterval
sys_setrecursionlimit
sys_getrecursionlimit
sys_setdlopenflags
sys_getdlopenflags
Python/thread.c
PyThread_allocate_sema
PyThread_free_sema
PyThread_down_sema
PyThread_up_sema
PyThread__exit_thread
Python/traceback.c
tb_displayline
PyTraceBack_Print
tb_clear
tb_printinternal