summaryrefslogtreecommitdiff
path: root/TAO/tests/IDL_Test/README
blob: ec8321dd999c4e0239e8b2878754e98289cd8d85 (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
This test is a collection of IDL files that once caused IDL compiler
or C++ compiler errors, plus a dummy main.cpp for the build. There is
no execution check in this test, the only outcome of interest being
the build. The examples in the IDL files come from many sources - some
are made from scratch, some are adapted from other tests, and some are
adapted from examples sent in by ACE and/or TAO users. To all of these
last, many thanks for your help in digging out these bugs!

Each IDL file contains examples that are related, either by the IDL
type involved or by the context in which the error occurs. As new bugs
are uncovered and fixed, new examples will be added to the suite, to
ensure that the bugs do not recur.

The -GA option has been added to the IDL compiler command line. This
option generates the implementations of type codes and Any
insertion/extraction operators in a separate file with the
extension *A.cpp. These files have been added to the build, to make
sure that the option functions correctly for all the IDL types
found in this test. If the client or server does not use type codes
or Anys, these files may be left out of the compilation. This
feature is tested in TAO_ROOT/tests/Hello.

The IDL compiler command line options -GC -GH and -Gd have also been added.
They switch on generation, respectively, of extra code for Asynchronous
Method Invocation (AMI), Asynchronous Method Handling (AMH) and direct
collocation of invocations (bypassing the POA and using a simple C++
method call). By adding these options we can test for correct code
generation for every IDL interface found in this test.

To build the test files, type 'make' at the command line. The TAO IDL
compiler will open each IDL file in the directory and generate code
that will then be compiled by the C++ compiler on your platform.

To run the test, type 'main' at the command line. The generation of
correct IOR prefixes in pragma.idl is checked in the body of main().
The rest of the .idl files need only to build cleanly. To test the
client/server functionality of the various IDL types and operations,
see the test suite in ACE_wrappers/TAO/tests/Param_Test.

There are a few negative tests (e.g. invalid_scoping, keyword_case_diff,
exception_misuse) where it shall be verified that tao_idl exits with
an error status. The main.cpp program cannot be used for them because
it only handles positive tests. To this end, run the script run_test.pl.