summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/doctools2toc/parse.test
blob: 2cf22f956202a0fafd16983d648580a2a763e0e8 (plain)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# -*- tcl -*-
# doctoc_parse.test:  tests for the doctools::toc::parse package.
#
# Copyright (c) 2009 by Andreas Kupries <andreas_kupries@users.sourceforge.net>
# All rights reserved.
#
# RCS: @(#) $Id: parse.test,v 1.1 2009/04/18 21:14:19 andreas_kupries Exp $

# -------------------------------------------------------------------------

source [file join \
	[file dirname [file dirname [file join [pwd] [info script]]]] \
	devtools testutilities.tcl]

testsNeedTcl     8.4
testsNeedTcltest 2.0

support {
    useAccel [useTcllibC] struct/tree.tcl  struct::tree
    TestAccelInit                          struct::tree

    useAccel [useTcllibC] struct/stack.tcl struct::stack
    TestAccelInit                          struct::stack

    useAccel [useTcllibC] struct/sets.tcl  struct::set
    TestAccelInit                          struct::set

    use      struct/list.tcl               struct::list
    use      snit/snit.tcl                 snit
    use      fileutil/fileutil.tcl         fileutil
    use      log/logger.tcl                logger
    use      treeql/treeql.tcl             treeql

    use      doctools2base/tcl_parse.tcl  doctools::tcl::parse
    use      doctools2base/msgcat.tcl     doctools::msgcat
    useLocal msgcat_c.tcl                 doctools::msgcat::toc::c
    useLocal structure.tcl                doctools::toc::structure

    msgcat::mclocale C
}
testing {
    useLocal parse.tcl doctools::toc::parse
}

# -------------------------------------------------------------------------

# General set of error cases regarding the number of arguments.

test doctools-toc-parse-1.0 {parse file, wrong#args} -body {
    doctools::toc::parse file
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_typemethodfile type path"}

test doctools-toc-parse-1.1 {parse file, wrong#args} -body {
    doctools::toc::parse file P XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_typemethodfile type path"}

test doctools-toc-parse-2.0 {parse text, wrong#args} -body {
    doctools::toc::parse text
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_typemethodtext type text ?path?"}

test doctools-toc-parse-2.1 {parse text, wrong#args} -body {
    doctools::toc::parse text T P XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_typemethodtext type text ?path?"}

test doctools-toc-parse-3.0 {vars, wrong#args} -body {
    doctools::toc::parse vars XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_typemethodvars type"}

test doctools-toc-parse-4.0 {var, bogus submethod} -body {
    doctools::toc::parse var bogus
} -returnCodes error -result {"::doctools::toc::parse var bogus" is not defined}

test doctools-toc-parse-5.0 {var set, wrong#args} -body {
    doctools::toc::parse var set
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodvar_set type name value"}

test doctools-toc-parse-5.1 {var set, wrong#args} -body {
    doctools::toc::parse var set N
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodvar_set type name value"}

test doctools-toc-parse-5.2 {var set, wrong#args} -body {
    doctools::toc::parse var set N V XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodvar_set type name value"}

test doctools-toc-parse-6.0 {var load, wrong#args} -body {
    doctools::toc::parse var load
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodvar_load type dict"}

test doctools-toc-parse-6.1 {var load, wrong#args} -body {
    doctools::toc::parse var load D XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodvar_load type dict"}

# var unset - 0+ arguments, no checking possible.

test doctools-toc-parse-7.0 {includes, wrong#args} -body {
    doctools::toc::parse includes XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_typemethodincludes type"}

test doctools-toc-parse-8.0 {include, bogus submethod} -body {
    doctools::toc::parse include bogus
} -returnCodes error -result {"::doctools::toc::parse include bogus" is not defined}

test doctools-toc-parse-9.0 {include set, wrong#args} -body {
    doctools::toc::parse include set
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_set type paths"}

test doctools-toc-parse-9.1 {include set, wrong#args} -body {
    doctools::toc::parse include set P XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_set type paths"}

test doctools-toc-parse-10.0 {include add, wrong#args} -body {
    doctools::toc::parse include add
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_add type path"}

test doctools-toc-parse-10.1 {include add, wrong#args} -body {
    doctools::toc::parse include add P XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_add type path"}

test doctools-toc-parse-11.0 {include remove, wrong#args} -body {
    doctools::toc::parse include remove
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_remove type path"}

test doctools-toc-parse-11.1 {include remove, wrong#args} -body {
    doctools::toc::parse include remove P XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_remove type path"}

test doctools-toc-parse-12.0 {include clear, wrong#args} -body {
    doctools::toc::parse include clear XXX
} -returnCodes error -result {wrong # args: should be "::doctools::toc::parse::Snit_htypemethodinclude_clear type"}

# toc_parse tests, numbering starts at 20
# -------------------------------------------------------------------------

array_unset env LANG*
array_unset env LC_*
set env(LANG) C ; # Usually default if nothing is set, OS X requires this.

# -------------------------------------------------------------------------

TestAccelDo struct::stack stkimpl {
    TestAccelDo struct::set setimpl {
	TestAccelDo struct::tree impl {
	    source [localPath tests/parse]
	}
    }
}

#----------------------------------------------------------------------
TestAccelExit struct::tree
TestAccelExit struct::set
TestAccelExit struct::stack
testsuiteCleanup
return