From cf7969886b99c16a6755f8c9c6ff2e8336705974 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 25 Feb 2013 14:54:14 +0000 Subject: 3605719,3605720 Test independence. Thanks Rolf Ade for patches. --- ChangeLog | 5 +++++ tests/assocd.test | 22 ++++++++++++++-------- tests/basic.test | 14 ++++++++++++-- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index e2c7910..c1b3640 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-02-25 Don Porter + + * tests/assocd.test: [Bugs 3605719,3605720] Test independence. + * tests/basic.test: Thanks Rolf Ade for patches. + 2013-02-22 Don Porter * generic/tclCompile.c: Shift more burden of smart cleanup onto the diff --git a/tests/assocd.test b/tests/assocd.test index f07d466..46a813a 100644 --- a/tests/assocd.test +++ b/tests/assocd.test @@ -31,15 +31,21 @@ test assocd-1.4 {testing setting assoc data} testsetassocdata { testsetassocdata abc "abc d e f" } "" -test assocd-2.1 {testing getting assoc data} testgetassocdata { - testgetassocdata a -} 2 -test assocd-2.2 {testing getting assoc data} testgetassocdata { - testgetassocdata 123 -} 456 -test assocd-2.3 {testing getting assoc data} testgetassocdata { +test assocd-2.1 {testing getting assoc data} -setup { + testsetassocdata a 2 +} -constraints {testgetassocdata} -body { + testgetassocdata a +} -result 2 +test assocd-2.2 {testing getting assoc data} -setup { + testsetassocdata 123 456 +} -constraints {testgetassocdata} -body { + testgetassocdata 123 +} -result 456 +test assocd-2.3 {testing getting assoc data} -setup { + testsetassocdata abc "abc d e f" +} -constraints {testgetassocdata} -body { testgetassocdata abc -} {abc d e f} +} -result "abc d e f" test assocd-2.4 {testing getting assoc data} testgetassocdata { testgetassocdata xxx } "" diff --git a/tests/basic.test b/tests/basic.test index 0bad4ed..91e4d6c 100644 --- a/tests/basic.test +++ b/tests/basic.test @@ -264,14 +264,24 @@ test basic-18.4 {TclRenameCommand, bad new name} { } rename test_ns_basic::p :::george::martha } {} -test basic-18.5 {TclRenameCommand, new name must not already exist} { +test basic-18.5 {TclRenameCommand, new name must not already exist} -setup { + if {![llength [info commands :::george::martha]]} { + catch {namespace delete {*}[namespace children :: test_ns_*]} + namespace eval test_ns_basic { + proc p {} { + return "p in [namespace current]" + } + } + rename test_ns_basic::p :::george::martha + } +} -body { namespace eval test_ns_basic { proc q {} { return 42 } } list [catch {rename test_ns_basic::q :::george::martha} msg] $msg -} {1 {can't rename to ":::george::martha": command already exists}} +} -result {1 {can't rename to ":::george::martha": command already exists}} test basic-18.6 {TclRenameCommand, check for command shadowing by newly renamed cmd} { catch {namespace delete {*}[namespace children :: test_ns_*]} catch {rename p ""} -- cgit v0.12 From 113655197374d84515e37514a5caefeb9b5bc341 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 25 Feb 2013 15:37:41 +0000 Subject: ArraySearch struct used only locally. Remove from tclInt.h. --- generic/tclInt.h | 24 ------------------------ generic/tclVar.c | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/generic/tclInt.h b/generic/tclInt.h index d5a479b..50280cc 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -481,30 +481,6 @@ typedef struct ActiveVarTrace { } ActiveVarTrace; /* - * The following structure describes an enumerative search in progress on an - * array variable; this are invoked with options to the "array" command. - */ - -typedef struct ArraySearch { - int id; /* Integer id used to distinguish among - * multiple concurrent searches for the same - * array. */ - struct Var *varPtr; /* Pointer to array variable that's being - * searched. */ - Tcl_HashSearch search; /* Info kept by the hash module about progress - * through the array. */ - Tcl_HashEntry *nextEntry; /* Non-null means this is the next element to - * be enumerated (it's leftover from the - * Tcl_FirstHashEntry call or from an "array - * anymore" command). NULL means must call - * Tcl_NextHashEntry to get value to - * return. */ - struct ArraySearch *nextPtr;/* Next in list of all active searches for - * this variable, or NULL if this is the last - * one. */ -} ArraySearch; - -/* * The structure below defines a variable, which associates a string name with * a Tcl_Obj value. These structures are kept in procedure call frames (for * local variables recognized by the compiler) or in the heap (for global diff --git a/generic/tclVar.c b/generic/tclVar.c index d000296..f4f83a4 100644 --- a/generic/tclVar.c +++ b/generic/tclVar.c @@ -142,6 +142,30 @@ static const char *isArrayElement = #define HasLocalVars(framePtr) ((framePtr)->isProcCallFrame & FRAME_IS_PROC) /* + * The following structure describes an enumerative search in progress on an + * array variable; this are invoked with options to the "array" command. + */ + +typedef struct ArraySearch { + int id; /* Integer id used to distinguish among + * multiple concurrent searches for the same + * array. */ + struct Var *varPtr; /* Pointer to array variable that's being + * searched. */ + Tcl_HashSearch search; /* Info kept by the hash module about progress + * through the array. */ + Tcl_HashEntry *nextEntry; /* Non-null means this is the next element to + * be enumerated (it's leftover from the + * Tcl_FirstHashEntry call or from an "array + * anymore" command). NULL means must call + * Tcl_NextHashEntry to get value to + * return. */ + struct ArraySearch *nextPtr;/* Next in list of all active searches for + * this variable, or NULL if this is the last + * one. */ +} ArraySearch; + +/* * Forward references to functions defined later in this file: */ -- cgit v0.12 From ca06debb81543b49b3c148090507068a21d6e6be Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 25 Feb 2013 15:57:07 +0000 Subject: Remove unused struct InterpList. --- generic/tclInt.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/generic/tclInt.h b/generic/tclInt.h index 50280cc..1162638 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -1940,17 +1940,6 @@ typedef struct Interp { *((iPtr)->asyncReadyPtr) /* - * General list of interpreters. Doubly linked for easier removal of items - * deep in the list. - */ - -typedef struct InterpList { - Interp *interpPtr; - struct InterpList *prevPtr; - struct InterpList *nextPtr; -} InterpList; - -/* * Macros for splicing into and out of doubly linked lists. They assume * existence of struct items 'prevPtr' and 'nextPtr'. * -- cgit v0.12