tests

Clone Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- use uplevel in slot add/delete to evalute in calling namespace (for not fully qualified object names) - determine namespace in test method "?" to allow its execution in an "namespace eval" - added regression tests

  1. … 5 more files in changeset.
- extend regression test

- improved comments

- added option "objectsystems" to ::xotcl::configure to obtain the currently defined object systems - added option "baseclass" to ::xotcl::is to check, whether a class is a baseclass of an object system (root class or root meta-class of object system) - changed result of "... info methods -methodtype scripted" to return only truely scripted methods (no aliases) - some more cleanup in regression tests - first version of serializer for xotcl1 + xotcl2

  1. … 7 more files in changeset.
- modernize test a little: all local definitions of proc "?" are gone. - added interface to test: "Test parameter count SOMEVALUE" to specify conveniently e.g. the number of tests the be executed - add XOTCL_CM_NO_UNKNOWN to dispatch of defaultmethod

  1. … 2 more files in changeset.
- added option "-application" to "info callable" to omit methods from base classes - extended regression test - changed naming of methodtype "system" to "builtin" - added "info methods" to migration guide

  1. … 6 more files in changeset.
- xotcl.c: removed all names starting with "inst" (exception: instvar)

  1. … 7 more files in changeset.
- added option "arg=.." to parameter options; this argument can be passed to converter; used currently for "type=relation" to flag, that the relation type is different from the parameter name - extended "objectparameter" to handle such cases - removed relationtypes "mixin", "filter", "instfilter" and "instmixin" since not needed due to converterArg

  1. … 6 more files in changeset.
- changed resultss of "filtersearch" and "self next" to new naming Caveat: for xotcl1, there is no mapping for the names to the old style in "self next" and "self filterreg" - backwards compatible mapping of filterseach in xotcl1

  1. … 5 more files in changeset.
- added experimental flag for alias "-noleaf" to force a stack frame to be written (e.g. necessary for "next"). makes only sense for aliases to c-implemented cmds

- fix inconsistent behaviour of dotVarResolver

"o eval {set .x 1}" was setting var ".x" instead of "x"

The problem was due to a interaction between

the namespace varResolver() and the DotVarResolver()

- fix for DotCmdResolver during compilation of a proc by Tcl.

- extended regression text

- found 2 potential bugs (not fixed yet)

  1. … 8 more files in changeset.
- moved "-per-object" consequently immediately after obj in the following commands : ::xotcl::alias, ::xotcl::methodproperty, ::xotcl::setter to achiev conformance with ::xotcl::forward and ::xotcl::method

  1. … 7 more files in changeset.
- changed assertions: old (xotcl1) interface: 3 methods + 3 info methods * <object> check Options * <object> info check * <object> invar Conditions * <object> info invar * <class> instinvar Conditions * <class> info instinvar

new (xotcl2) interface: 1 cmd (similar to ::xotcl::relation)

::xotcl::assertion check|object-invar|class-invar ?arg?

- added emulation for xotcl1

- deleted namespecific C macros:

isInfoString, isInstinvarString, isInvarString, isInstprocString, isProcString

  1. … 9 more files in changeset.
- get rid of rst->deallocCalled (not needed due to reference counting on xotcl objects) - reduce verbosity

  1. … 3 more files in changeset.
- added existence test for slot extractor (needed for 8.5.8) - added refcounting CallStackDoDestroy() to ensure existance of object until end of function - make sure to call PrimitiveDestroy() before DeleteCommandFromToken(), otherwise e.g. unset traces on this object cannot be executed - regression test works again

  1. … 3 more files in changeset.
- added refounting in ObjectDispatch() to make sure, obj survives until the end of the function

  1. … 2 more files in changeset.
- handle change in tcl 8.5.8: http://tcl.cvs.sourceforge.net/viewvc/tcl/tcl/generic/tclObj.c?sortby=date&r1=1.139.2.1&r2=1.139.2.2&pathrev=core-8-5-branch in xotcl: * when e.g. the parent namespace is deleted with a "namespace delete", the change above causes, the no xotcl methods could be resolved (and called) anymore. * therefore, e.g. a "C dealloc c1" did not work, since dealloc passes c1 via tcl_obj, and the tcl_obj is as well converted to an xotcl object via Tcl_GetCommandFromObj(), which fails as well. - to bypass this problem, xotcl has now a C-function DoDealloc(), which is called, when this situation is detected. - some more cases, where xotcl could reference already freed memory were fixed (thanks to enable-symbols=mem) - as collateral damage, parts of the regression test don't work currently

  1. … 3 more files in changeset.
- removed -per-object from ::xotcl::relation - removed -per-object from methods "mixinguard" and "filterguard" - removed -per-object from methods "alias" and "method" - added "... object filterguard ..." and "... object mixinguard ..." - implemented "info method definition" with "object" modifier - extended regression test

  1. … 6 more files in changeset.
- added "<Class> object filter" and "<Class> object mixin" - use explicit "(object|class)-(mixin|filter)" relations in ::xotcl::relation - removed "-per-object" from all user-level relation commands (::xotcl::relation has still "-per-object"), but it is not needed anymore - register slots "object-mixin" and "object-filter" for conveniance to allow object-filter and object-mixins via configuration via object parameter

  1. … 4 more files in changeset.
- turned "setter" method into a command "::xotcl::setter" with the same interface like "::xotcl::alias" - removed flag -per-object from XOTclCForwardMethod - require "object" to be followed directly by either method defining command or info, etc. (use "public object method" instead of "object public method")

  1. … 6 more files in changeset.
- renamed method property "static" to "redefine-protected"

  1. … 7 more files in changeset.
- removed "-protected" and "-public" from method defining methods ("alias", "method")

  1. … 7 more files in changeset.
- Definition of method modifiers "public", "protected" and "object" - all method-creating methods ("method", "alias", "forward", "setter") return now the fully qualified method names - extending 50 regression tests fpr method modifiers - Make "unknown" for ::xotcl2::Class" to raise an error instead of warning. Otherwise, protected class-level methods would create objects with the name of protected methods. Other option: make calls to protected methods raise an error, instead of calling "unknown"

    • -0
    • +159
    ./method-modifiers.xotcl
  1. … 7 more files in changeset.
- changed in xotcl-core "method" into "object-method" and "class-method", provided scripted definition for method in xotcl2 - removed "setter" from methods in xotcl1 - defined xotcl1 methods in terms of "proc" and "instproc"

  1. … 7 more files in changeset.
- Methods defined via "method" are now per default "protected" - new switch "-public" for "method" to define public methods - new flag for "info callable": -callprotection", values "all|protected|public" - new flag for "info methods": -callprotection", values "all|protected|public" - converted part of regression test

  1. … 9 more files in changeset.
- changed "info methods" (without defined, as defined in xotcl1) into "info callable" - changed "info methods -defined" into "info methods" - replaced "procsearch <name>" by "info callable -which <name>" - added emulation for procsearch for xotcl1

  1. … 7 more files in changeset.
- removed "obj|class info alias"; obsoleted by "info method definition"

  1. … 3 more files in changeset.
- added changes for new behavior

- reseting interceptor list in interceptorslot->mixin via relation - adding rests for behavior, when setting invalid mixins

  1. … 2 more files in changeset.
- removed deprecated calls from predefined and regression test

  1. … 2 more files in changeset.
* info params removed * info instparams removed * added subcommand to "info method args <somename>": similar to "info method parameter ...", but returns only names of parameters instead of full parameter definitions

  1. … 4 more files in changeset.