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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
|
Release Notice
BlueGnu Testing Framework
Version 2.0.3
Jan-Willem Neurdenburg
jotOmega dsc
56 Brigham Hill Road
Grafton MA 01519-1135
neurdenburgj@acm.org
Tel: (508) 839-0276
Fax: (508) 839-7267
September 19, 1999
1 Introduction
BlueGnu is a framework for testing other programs. It has been
created to be compatible with DejaGnu. Its purpose is to provide
a single front end for all tests. Beyond this, BlueGnu offers
several advantages for testing:
* The flexibility and consistency of the BlueGnu framework
makes it easy to write tests for any program, with the
exception of GUI applications.
* BlueGnu provides a layer of abstraction, which makes all
tests (if correctly written) portable to any host or target
where a program must be tested.
* BlueGnu is written in [incr Tcl], which in turn is based on
Tcl (Tool Command Language). The framework comprises two
parts:
1
1. the testing framework,
2. the test-suites or test-sets themselves.
* BlueGnu will work with any Tcl based interpreter as long as
[incr Tcl] has been included. You can include 'expect',
'Tk', and/or other extensions.
* Includes DejaGnu release 1.6
2 Requirements
The following modules should have been installed, before you can
install and/or use BlueGnu:
* Tcl release 8.0 or higher,
* incr Tcl release 3.0 or higher.
Any other extensions that is compatible with Tcl release 8.0
can be used as well.
3 Structure and Contents of the Release
The root directory of the release contains the README files
with installation instructions and the files needed to build and
install this product. It also contains the executable scripts of
the BlueGnu testing framework.
The top-level directories are listed below:
lib: the packages and procedures that make the BlueGnu and
DejaGnu testing framework. This also includes the default
target definition files.
testsets: the BlueGnu test-suites and test examples. It contains
the following subdirectories.
BlueGnu: test scripts to test the testing framework itself.
examples: test suite and test script examples.
config, lib, tools: currently empty, but can be used for
test-set dependent configuration files, library files,
and tools.
config: currently empty.
2
doc: the DejaGnu texinfo source and the documentation in
'info', 'dvi', 'ps', and 'pdf' representation, respectively
dejagnu.info*, dejagnu.dvi, dejagnu.ps, and dejagnu.pdf. A
DejaGnu man page is also available.
It also contains the TeX version (README.tex) of this
document as well as the 'dvi', 'ps' 'html', and
'pdf' representation, respectively notice.dvi, notice.ps,
notice.html, and notice.pdf.
testsuite: contains a mixture of DejaGnu and BlueGnu test
scripts.
contrib: contains examples how DejaGnu is used at Cygnus.
example: contains a full DejaGnu test framework example for
testing the program 'calc' which is also included.
4 Installation and use under Unix
Before you can install and use BlueGnu you need to have installed
the following three packages:
* Tcl version 8.0.3
* Tk version 8.0.3
* incr Tcl version 3.0.1
The source for these packages should all be located in one
directory. The subdirectory in the directory should be:
* tcl8.0.3
* tk8.0.3
* itcl3.0.1
The following examples use the command `./configure --
prefix=/tools/...`. This will install all packages in a
directory ``/tools''. When you omit the ``--prefix''-switch then
the installation default will be the directory ``/usr/local''.
4.1 Installation of needed Packages
When you have not installed Tcl and the other needed
extensions, then you need to retrieve the sources from
``www.tcltk.com/itcl''. You need to `gunzip` the files and do a
`tar xf` of all these packages in one directory, let's call this
directory ``TclTk''.
From the directory ``TclTk'', you should do the following to
install the packages:
3
% cd tcl8.0.3/unix
% ./configure --prefix=/tools/tcl8.0.3 --enable-gcc --enable-
shared
% make
% mkdir /tools/tcl8.0.3
% make install
% cd ../../tk8.0.3/unix
% ./configure --prefix=/tools/tk8.0.3 --enable-gcc --enable-
shared
% make
% mkdir /tools/tk8.0.3
% make install
% cd ../../itcl3.0.1
% ./configure --prefix=/tools/itcl3.0.1 --enable-gcc --enable-
shared
% make
% mkdir /tools/itcl3.0.1
% make install
4.2 Installing BlueGnu
You can now `gunzip` and `tar xf` the BlueGnu version 2.0.3
in the directory ``TckTk''. This will create the directory
``bluegnu2.0.3''. Now do the following:
% cd bluegnu2.0.3
% ./configure --prefix=/tools/bluegnu2.0.3
% make
% mkdir /tools/bluegnu2.0.3
% make install
This will install BlueGnu in the directories:
* /tools/bluegnu2.0.3/bin
* /tools/bluegnu2.0.3/lib/bluegnu
* /tools/bluegnu2.0.3/info
* /tools/bluegnu2.0.3/man
4.3 Using BlueGnu
When you have installed [incr Tcl] and BlueGnu and you have the
respective ``bin'' directories in your PATH variable, then you
can start running some tests. You can go into the BlueGnu
source directory ``bluegnu2.0.3/testsets/examples'' and run the
following:
4
% bluegnu versionTcl.itcl
% bluegnu ts_001
% bluegnu ts_002
% bluegnu ts_003
The above test result should all be PASS. The following test
will give a result UNKNOWN, because no pass/fail instruction have
been given.
% bluegnu tc001
The last test you can run will fail in its simple form:
% bluegnu tc002
But will pass if you execute the test as follows:
% bluegnu tc002[English]
This is because the test scripts need a test case identifier
to find the correct benchmark code.
5 Changes
5.1 Version 2.0.3
This being the first public release it is not to useful to
list all the changes. BlueGnu has been modeled after DejaGnu
and is a complete new implementation which has been tested
thoroughly. When documentation is being written more changes
will be made. An example of some of these changes as a result of
this documentation effort can be found in the test-suites ts_001,
ts_002, and ts_003. The first two are not as easy to write as
the third. The test suite ts_001 is a script implementation of
the command line:
% cd bluegnu2.0.3/testsets
% bluegnu examples/tc002[English=B] \
> "examples/tc002[Dutch=B]={MSG=Hallo Wereld}"
This may be useful for simple tests but when you want to
write more complex test-suite scripts you would like some more
flexibility, so two procedures were introduced, which are shown
in test-suite ts_002. This makes writing rather complex so
the procedures have become part of the procedures 'appendQueue',
'prependQueue', and 'runtest'. The resulting script is shown in
test-suit ts_003.
Changes like this will be made in the future!
5
6 Future Enhancements
The following enhancements are being planned:
* Target code will be made into a class with methods
'start', 'load', 'exit', and 'version'. Instead of the
current '<target>_start', '<target>_load', '<target>_exit',
and '<target>_version', which have been taken from DejaGnu.
* Procedures will be created that make it easy to test WEB
application from the framework.
* Other enhancements will be made depending on the use of the
framework in testing different applications.
6
|