1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23
24
25WINDOWS ONLY, no other platforms
26
27
28
29
30This test checks if the cli assemblies and their policy files are installed in the
31GAC and if the policy files are correct. The office must be installed with complete
32system integration. That is, one does not use setup /a for starting the
33installation.
34
35In OOo 3.0 there was a breanking change so that the test created for previous
36version do not work anymore. To use these old tests one needs to install a
37version of OOo less than v 3.0. Then one needs to check out the cli_ure module
38for that version. The tests are contained in cli_ure/qa/versioning.
39
40In the sub directory version_libs are libraries which are linked with (referencing)
41cli_cppuhelper
42cli_basetypes
43cli_ure
44cli_uretypes
45cli_oootypes
46
47They are named version_3_0_0 etc, where the name indicates the version of the
48office for which they were initially build. If there are only the assemblies
49for example OOo2.0.2 installed and a client was build with the assemblies from
50OOo2 then the policy assemblies must make the correct redirection.
51
52When calling dmake then the executable runtest.exe and version_current.dll are
53build. When runtest runs then it loads all dlls, which names start with
54"version", from the same directory and tries to run a particular test code
55which is only available in the version_xxx.dll s. The code in the
56version_xxx.dlls uses the cli default bootstrap mechanism to find the office
57installation and start the office. When running runtest in a build environment
58then it may use the wrong libraries for bootstrapping in which case the test
59fails. Then one has to set PATH which must point to the program directory of
60the office installation. For example:
61
62set PATH=d:\office\program
63
64runtest stops when a test failed to run. It writes error information to the
65console which shows which version_xxx.dll failed to run and if this was due to
66a referenced assembly that could not be loaded. This would be the case if such
67an assembly or the policy assembly is not properly installed or the redirection
68in the policy assembly is wrong.
69
70The version_current.dll references the assemblies in the current build
71environment. version_current.dll is also executed when runtest is started.
72
73To run the whole test one can either
741. start testools/wntmsci11.pro/bin/runtests.exe in a console where no
75environment is set.
762. Call dmake run in testools/qa/cliversions
77
78For a limited test one can call in this directory
79dmake run office=d:\office
80There must not be an office installed in the system (the assemblies from the GAC
81would then be used). Only the test with the version_current.dll will succeed
82because there are no policy files installed. This test requires that all
83assemblies are copied next to runtests.exe - the makefile will do that.
84
85The parameter office must be a system path to the office installation
86directory. The java code calls runtest and also sets PATH so that the test
87works in the build environment. It also sets UNO_PATH so that the office will be
88found. If the test says that it failed, then one should run runtest directly
89because it puts out more information.
90
91
92
93Creating a new version_xxx.dll
94==============================
95When a version of our assemblies changes then one should provide a new version dll which test exactly the assemblies with the changed version. This is easily done:
961. set the build environment in which the new versions are effectiv.
972  call: dmake name=version_xxx.dll
983. copy the new version dll from the output tree into qa/versioning/version_libs
994. commit the new version.dll using the -kb switch (only when creating the new file : cvs new -kb version_3_1_0.dll)
100
101