22.
Running tccd from the command line
This information is not applicable to Win32 systems.
Most modern UNIX systems support
inetd
so most people will build the
inetd
version of
tccd
(the Test Case Controller daemon).
However, there are some situations where it is required to run
tccd
from the command line.
If you need to do this for some reason it is best to build the
rc
version of
tccd .
Some hints about how best to do this are presented in this article.
When you run
tccd
from the command-line, it inherits all your
environment variables.
This can result in test cases being influenced by your environment in a
way that can't be repeated on someone else's system.
This can cause a lot of trouble if you develop a test suite that works
OK for you, but fails in various ways when you ship it to a customer.
In order to ensure that you don't fall in to this trap when developing a
test suite, it is necessary to start
tccd
with a known clean environment.
You can use the
env
command to do this, and put the correct invocation
in a shell script.
For example:
#!/bin/sh
exec env - PATH=$PATH TZ=$TZ . . . tccd [ options . . .]
The
-
argument to the
env
command cleans out the environment for the command
to be executed.
Then you should specify just the list of environment variables that you
actually need to run test cases.
This issue is less of a problem when starting
tccd
on the local system (system 0) because
tcc
sends all of its environment to
tccd
on system 0 when it logs on.
But it is important to run
tccd
in a known environment on remote
systems, because in this case the environment is not sent.
In the past a number of people have been caught out by not taking care
of this issue when starting
tccd
from the command-line.
If you run
tccd
as yourself, it will be unable to change its
user ID to
tet .
This results in an error message in the
/tmp/tccdlog
file.
However,
tccd
will still run (using your user ID) provided your
user ID and group ID are each >= 100.
You can use the command:
tccd -u your-login-name
if you want to avoid the error message being printed.
See also
-
"Starting
tccd ''
in the TETware Installation Guide for UNIX Operating Systems.
-
The
tccd
manual page in the TETware User Guide.
|