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