OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [itcl/] [itcl/] [tests/] [interp.test] - Blame information for rev 1773

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
#
2
# Tests for using [incr Tcl] in slave interpreters
3
# ----------------------------------------------------------------------
4
#   AUTHOR:  Michael J. McLennan
5
#            Bell Labs Innovations for Lucent Technologies
6
#            mmclennan@lucent.com
7
#            http://www.tcltk.com/itcl
8
#
9
#      RCS:  $Id: interp.test,v 1.1.1.1 2002-01-16 10:24:47 markom Exp $
10
# ----------------------------------------------------------------------
11
#            Copyright (c) 1993-1998  Lucent Technologies, Inc.
12
# ======================================================================
13
# See the file "license.terms" for information on usage and
14
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
15
 
16
if {[string compare test [info procs test]] == 1} then {source defs}
17
 
18
# ----------------------------------------------------------------------
19
#  Make sure that slave interpreters can be created and loaded
20
#  with [incr Tcl]...
21
# ----------------------------------------------------------------------
22
test interp-1.1 {create a slave interp with [incr Tcl]} {
23
    interp create slave
24
    load "" Itcl slave
25
    list [slave eval "namespace children :: itcl"] [interp delete slave]
26
} {::itcl {}}
27
 
28
test interp-1.2 {create a safe slave interp with [incr Tcl]} {
29
    interp create -safe slave
30
    load "" Itcl slave
31
    list [slave eval "namespace children :: itcl"] [interp delete slave]
32
} {::itcl {}}
33
 
34
test interp-1.3 {errors are okay when slave interp is deleted} {
35
    interp create slave
36
    load "" Itcl slave
37
    slave eval {
38
        itcl::class Troublemaker {
39
            destructor { error "cannot delete this object" }
40
        }
41
        itcl::class Foo {
42
            variable obj ""
43
            constructor {} {
44
                set obj [Troublemaker #auto]
45
            }
46
            destructor {
47
                delete object $obj
48
            }
49
        }
50
        Foo f
51
    }
52
    interp delete slave
53
} {}
54
 
55
test interp-1.4 {one namespace can cause another to be destroyed} {
56
    interp create slave
57
    load "" Itcl slave
58
    slave eval {
59
        namespace eval group {
60
            itcl::class base1 {}
61
            itcl::class base2 {}
62
        }
63
        itcl::class TroubleMaker {
64
            inherit group::base1 group::base2
65
        }
66
    }
67
    interp delete slave
68
} {}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.