File: tcl.t

package info (click to toggle)
libtkx-perl 1.09-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 220 kB
  • ctags: 46
  • sloc: perl: 1,270; makefile: 9
file content (41 lines) | stat: -rw-r--r-- 937 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!perl -w

use strict;
use Test qw(plan ok);

plan tests => 18;

use Tkx qw(expr list lindex error);

ok(expr("2 + 2"), 4);
ok(expr("2", "+", "2"), 4);

my $list = Tkx::eval("list 2 [list 3 4] 5");
ok($list, "2 {3 4} 5");
ok(ref($list), "Tcl::List");
ok($list->[0], 2);
ok($list->[1][0], 3);
ok(j(@$list), "2:3 4:5");

ok(list(2, Tkx::SplitList(list(3, 4)), 5), "2 3 4 5");
ok(list(2, scalar(list(3, 4)), 5), "2 {3 4} 5");
ok(j(Tkx::SplitList(list(2, scalar(list(3, 4)), 5))), "2:3 4:5");
ok(lindex([0..9, [], "}"], 5), 5);
ok(lindex([0..9], "end"), 9);

my @list = Tkx::SplitList("a b");
ok(@list, 2);
ok($list[0], "a");
ok($list[1], "b");

eval { $list = Tkx::SplitList("a b") };
ok($@ && $@ =~ /^Tkx::SplitList needs list context/);

eval { @list = Tkx::SplitList("a {") };
#print "# '$@'\n";
ok($@ && $@ =~ /valid Tcl list/);

eval { error("Foo") };
ok($@, "Foo at @{[__FILE__]} line @{[__LINE__ - 1]}.\n");

sub j { join(":", @_) }