1 Admin_Client is a class containing several functions which test
2 the methods in various IFR object classes. Since automatic
3 administration of the TAO Interface Repository has not yet been
4 implemented, each of these functions creates, queries, modifies,
5 moves, and finally destroys several IFR objects, none of which
6 are related to anything found in an actual IDL file.
8 Not every type of IFR object is represented by an Admin_Client
9 function (the name of which gives a hint about what type of
10 IFR object it tests). There are two reasons for this - the
11 first being that there will almost certainly be more tests
12 added later, and the second being that many of the functions
13 test more than one IFR object type. For example, interface_test()
14 tests not only the functionality of InterfaceDef, but also that
15 of AttributeDef and OperationDef, since these IFR objects are
16 created only by an InterfaceDef. In a similar way, alias_test()
17 tests WstringDef and SequenceDef in addition to AliasDef, and
18 StringDef and PrimitiveDef members are created and tested in
19 struct_test(), union_test() and exception_test().
21 To build this test, the TAO library, the TypeCodeFactory
22 library, the Interface Repository (the last two found in
23 TAO/orbsvcs/IFR_Service), and these test files must all be built.
24 In addition, the Interface Repository requires the TAO_Svc_Utils
25 library in TAO/orbsvcs/orbsvcs.
27 To run this test, either use the Perl script run_test.pl, or
30 start the Interface Repository by typing
32 ..\..\..\IFR_Service\IFR_Service
34 in one window, then (in another window)
36 IFR_Test -ORBInitRef InterfaceRepository=file://if_repo.ior
39 in this directory, type
41 ../../../IFR_Service/IFR_Service &
45 ./IFR_Test -ORBInitRef InterfaceRepository=file://if_repo.ior
49 You may use IP multicast discovery by starting the server with "-m 1"
50 and use the default multicast address for the InterfaceRepository.
52 ../../../IFR_Service/IFR_Service -m 1
58 You may add any of the options below to the IFR_Test command line. Both the
59 Perl script and the test executable have the same command line options.
62 -d Outputs the results of queries along with a string
63 explaining the sequence of calls and/or accesses
64 leading to each result. There is also informative
65 output when an IFR object is modified or moved.
66 Default output is the test name only.
68 -t (followed by test name - see below). This will
69 execute only the selected test. Default is to
70 execute all test functions.
85 -i (followed by number of iterations). This will
86 cause each test function (or the selected one)
87 to be executed <n> times. A useful selection
88 here is -i 2. At the end of each test function,
89 all IFR objects created in that function are
90 destroyed. If the destroy() function does not
91 work properly, then the second execution will
92 raise a BAD_PARAM exception when the test
93 attempts to create the undestroyed object.
95 ACE_ASSERT is used to check each result, so an incorrect result
96 will cause test execution to halt immediately. If a test function
97 is halted for this or any other reason, it is likely that the
98 destroy() call(s) at the end of the function were not exectuted.
99 Before running the test again, the Interface Repository process
100 should be stopped and restarted to avoid a BAD_PARAM exception.
102 The IFR server is started in this test with locking enabled. Even
103 though the test itself is single-threaded, using this option will
104 ensure that future modifications to IFR code don't cause deadlocks.
106 More information about the Interface Repository can be found in
107 TAO/docs/releasenotes.index.html.
109 -Jeff Parsons <parsons@cs.wustl.edu>