summaryrefslogtreecommitdiff
path: root/TAO/tests/IDL_Inherited_Operation/README
blob: 2bde20e4f2a1dbf7f356031fb04f32b49c0dc1fa (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
/**

@page IDL Inherited Operation Test README File

  This test checks that an IDL compiler bug, fixed by
  
  Fri Mar 20 16:04:58 UTC 2009  Jeff Parsons <j.parsons@vanderbilt.edu>

  never gets re-introduced. The IDL declarations that caused the
  original bug are:
  
  - A base interface, with an operation, is declared inside 2
    nested modules.   
  - The nested modules are closed.
  - The nested modules are reopened, and forward declaration of
    the base interface appears inside.  
  -  The nested modules are closed.
  - The outer module is reopened, and a derived interface
    declaration appears inside, using the partially scoped
    name of the base interface.
    
  This type of IDL caused the base interface operation to be missing
  from the operation table in generated code for the derived
  interface. Client calls to this operation on a derived object
  would result in a BAD_OPERATION exception.
  
  The test is here instead of in the IDL_Test directory because
  the bug can be detected only at runtime, by a remote call.
  IDL_Test is designed to catch only:
  
  - Error messages incorrectly caused by legal IDL
  - Errors from incompilable generated code
  - Incorrect repository IDs, fetched by a local stub call

	To run the test use the run_test.pl script:

$ ./run_test.pl

	the script returns 0 if the test was successful.

*/