tests

Clone Tools
  • last updated 13 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Adding some missing test on recently added introspection methods

- add editor hint

Slot trace reform: - redesign of slot interface of traces from * variables contains cmds and variable references to * slot specific methods with the same interface as slot-setters - new: * specify flag "-trace" with a list of values "get", "set", "default" * when flag is set, a trace will be registered calling methods value=get obj variable value=set obj variable value value=default obj variable on the slot (actually the first two are identical with the methods used for slot-defined accessors) - updated regression test * new flag "-notrace" for "nsf::var::set" and "nsf::var::get"

  1. … 7 more files in changeset.
- changed interface of NsfDStringEval to control behavior via bitflags (this is after all more readable than a argument list of "0" and "1"s) - added optional recursion prevention for functions called via NsfDStringEval (handling NSF_EVAL_DEBUG, NSF_EVAL_LOG, NSF_EVAL_DEPRECATED) - added regression tests for potential recursive calls

  1. … 5 more files in changeset.
- add absolute path in returned proc defintion to regression test

- replace all remaning ObjectName and ClassName with variant with trailing "_" when appropriate - allow nsf::procs with zero arguments or plain arguments (when "-debug" is used - extended regression test - bump version number to 2.1

  1. … 7 more files in changeset.
serializer: - added handling of "-debug" and "-deprecated" in serializer - allow export of nsfprocs via "exportMethods declaration" in order to keep otherwise excluded cmds in the result. this allows us to keep nsf::debug::* or nsf::deprecated definitions in the blueprint in OpenACS. - hardened serializer (use e.g. "::namespace" instead of "namespace" when there is a potential conflict with a method named "namespace", prefer nsf::directdispatch, etc.) - extended regression test

  1. … 3 more files in changeset.
- nx: added flag "-debug" and "-deprecated" to methods "method" "object method" "alias" "object alias" "forward" "object forward" such one can use e.g. /cls/ public alias -deprecated|-debug /method/ ... /cls/ public forward -deprecated|-debug /method/ ... /cls/ public method -deprecated|-debug /method/ ... /obj/ public object alias -deprecated|-debug /method/ ... /obj/ public object forward -deprecated|-debug /method/ ... /obj/ public object method -deprecated|-debug /method/ ...

- added new cmd:

nsf::method::property /obj/ ?-per-object? /method/ exists

to check, whether a method is defined for an object.

- output triggered via "-debug" is now generated via the

tcl functions "nsf::debug::call" and "nsf::debug::exit",

that can be redefined (similar to e.g. nsf::deprecated)

- cleanup of nsfProfile.c commands

- extended regression test

  1. … 12 more files in changeset.
- nx: added options "-debug" and "-deprecated" to methods "method" and "obejct method", such one can use e.g. C public method -deprecated bar {} {return 1} - extended regression test

  1. … 2 more files in changeset.
- nx: added new introspection options /cls/ info method debug /cls/ info method deprecated /obj/ info object method debug /obj/ info object method deprecated - extended regression test

  1. … 2 more files in changeset.
- handling "deprecated" and "debug" properties for nsf::proc (in "nsf::cmd::info definition /proc/" and serializer)

  1. … 3 more files in changeset.
- new introspection method: "/obj/ info baseclass" - extended regression test

  1. … 6 more files in changeset.
- new introspection methods: "/obj/ info object method callprotection /m/" "/cls/ info method callprotection /m/" - extended regression test

  1. … 2 more files in changeset.
- Fixed a bug that disallowed the combination of valuecmd and valuechangedcmd for a single property (many thanks to Zoran for pointing this out)

Removed implicit substdefault for configure parameters in nx:

- The syntax of substdefault for method parameters and configure

parameters was different. For method parameters, it was necessary to

specify :substdefault per parameter to activate it, for configure

parameter is was based in the XOTcl tradition on the content of the

default (whether it contains [...]) One problem is, that there was

no easy way to turn this feature off. If one wants to provide a

script block as a default, it was necessary to escape all square

brackets.

- Now, in nx, one has to specify :substdefault for configure

parameter explicitly as well, syntax for configure and method

parameters is the same.

- XOTcl 2.0 keeps implicit substdefaults (backward compatible)

- fix bug: never try to substdefault, when there is no default given.

  1. … 3 more files in changeset.
- whitespace change

- new command nsf::method::forward::property in analogy to nsf::method::property for reading+writing introspection of forwarders (important for serializer, when different target objects are specified, to map the per-object forwarder) - extended regression test - bumped version number of serializer to 2.1

  1. … 9 more files in changeset.
MixinregSetFromAny(): Fix crash through explicit null dereferencing when an invalid list string-rep is provided as mixinreg (CID 88777); added tests

  1. … 1 more file in changeset.
ListMethod(): Make sure that 'info method exists' returns 0 for (plain) NX objects; added some tests

  1. … 1 more file in changeset.
Silence varargs warning (-Wgnu-zero-variadic-macro-arguments) under clang --std=c99 -pedantic, tested under gcc, clang 3.6, and MSVC; added tests

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

Adding a test showing the yet to solve unknown-handling issue in info ensembles

XXX

  1. … 2 more files in changeset.
Reflect recent parameter syntax change in corresponding test

- no need to "set nodashalnum for int types" - extended regression test

  1. … 1 more file in changeset.
nsf.c: - provide error messages for ambiguous abbreviations - extend regression test (now 5460 tests)

  1. … 2 more files in changeset.
nx.tcl: pluralism reform part 3 - introduced simple plural form "mixins" and "filters" for introspection - moved differentiated interface into slot methods. the slot methods "get" stay symmetrically to "set", but additional methods "classes" or "methods" are used like "guard" to obtain partial results of the mixin and filter specs - changed info methods /cls/ info mixin classes -> /cls/ info mixins /cls/ info filter methods -> /cls/ info filters /obj/ info object mixin classes -> /obj/ info object mixins /obj/ info object filter methods -> /obj/ info object filters - dropped /cls/ info mixin guard /cls/ info filter guard /obj/ info object mixin guard /obj/ info object filter guard - added /cls/ mixin classes /cls/ filter methods /obj/ object filter methods /obj/ object mixin classes

  1. … 5 more files in changeset.
nx.tcl: - make all __* system methods in nx redefine-protected - let "nsf::configure objectsystem" return handles and protections as well

  1. … 3 more files in changeset.
nx.tcl: pluralism reform part 2 - changed methods /cls/ info subclass -> /cls/ info subclasses /cls/ info superclass -> /cls/ info superclasses /cls/ mixin ... -> /cls/ mixins /cls/ filter ... -> /cls/ filters /cls/ object mixin ... -> /cls/ object mixins /cls/ object filter ... -> /cls/ object filters - changed configure parameters /cls/ configure -mixin -> /cls/ configure -mixins /cls/ configure -filter -> /cls/ configure -filters /obj/ configure -object-mixin -> /obj/ configure -object-mixins /obj/ configure -object-filter -> /obj/ configure -object-filters - added handling for calling relationslot with unknown sub method

  1. … 17 more files in changeset.
nsf.c: - allow abbreaviated nonpos args - change name of relationslot "superclass" to "superclasses". (part of a planned change to use plural for setvalued parameters, "info superclasses" and similar changes for mixins/filters will probably follow)

  1. … 4 more files in changeset.
nsf.c: - define means to protect "undefined" internally-directly called methods __alloc and __dealloc in nx. This is achieved mostly via a an additional value in a method declaration in ::nsf::objectsystem::create. Example: -class.dealloc {__dealloc ::nsf::methods::class::dealloc 1} - extend regression test

  1. … 6 more files in changeset.