forked from w3c/exi-testsuite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprofile-README.txt
133 lines (90 loc) · 5.83 KB
/
profile-README.txt
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
EXI Interoperability Framework
------------------------------
This distribution was developed by the Efficient XML Interchange (EXI) Working Group.
It may be updated, replaced or obsoleted at any time. It is not intended as a means
to validate conformance of EXI implementations, but rather to evaluate the
clarity of the EXI Profile for limiting usage of dynamic memory Specification.
However, it may also be used to facilitate EXI implementation development.
Comments/questions should be sent to the [email protected] mailing list
(Archive is at http://lists.w3.org/Archives/Public/public-exi/).
Introduction
------------
The EXI interoperability framework is a testing framework developed by the W3C
EXI working group for the purpose of conducting interoperability assessment.
It uses XML test files designed to cover features in the EXI spec. The XML
test data files are fed to EXI implementations to generate EXI encodings.
The encodings are decoded to produce round-tripped XML files to be compared
with the original XML test files.
The EXI framework is built on top of Japex which provides basic functionality
for drawing charts, generating XML and HTML reports, etc. Japex is included
in this distribution.
Directory structure
-------------------
'candidates' directory contains sub-directories for each implementation.
The implementation files and test drivers are located in these sub-directories.
'config' directory contains the configuration files for running the tests.
You can find both drivers' configuration files and tests cases' configuration
files in this directory.
'data' directory contains the XML test data files.
'encodings' directory contains the EXI encodings generated by several
implementations using this framework. Each set of EXI encodings can be
used for running decoding tests. (Will be available soon)
'framework' directory contains the framework that is the basis for running
the tests. Each implementation extends a class in this framework to provide
a test driver component.
'japex' directory contains the Japex distribution.
Setting Up Implementations for Testing
--------------------------------------
Not all EXI implementations are included in this distribution and must be
downloaded and plugged into the framework to run the tests. To plug-in an
implementation, you need to have both an EXI implementation and its corresponding
drivers. The framework is defined to run even if all the implementations used
in the EXI WG testing are not available on your system. Instructions for
obtaining the EXI implementations used in EXI WG testing are given below.
EXIficient - The implementation and a driver is included in this distribution.
Canon's EXI Implementation - Please contact [email protected] using
"W3C EXI Profile interop framework" in the subject
line to request access to Canon's EXI implementation
and the corresponding drivers.
EXIP - Please contact [email protected] using "W3C EXI interop framework"
in the subject line for obtaining help in exercising/reproducing the
test with EXIP.
See http://www.w3.org/XML/EXI/#implementations for a current list of EXI implementations.
This distribution includes drivers for EXIficient. These drivers use the SAX
API to integrate the implementations with the framework. Writing drivers for
other Java implementations should be straightforward using the provided
drivers as templates.
To set up the implementation, it should be placed in 'candidates/<implementation>/lib/'.
You will also need to update the following configuration files to trigger the use of the
implementation:
* 'config/property/interoperability/encoding/java/drivers.xml' for encoding tests
* 'config/property/interoperability/decoding/java/drivers.xml' for decoding tests
Note that the framework distribution already contains a set of EXI encoded files
generated by EXIficient and Canon's EXI Implementation. (Will be available soon)
How to Use
----------
You must have Ant (http://ant.apache.org) to build and run the framework.
Open a command line tool and go to the root of the EXI interoperability framework folder.
To run encoding tests, type:
ant run-iot-encoding-classes-java -DtestCases=config/testCases-profile/all.xml
The last parameter config/testCases-profile/all.xml' may be replaced by any other test
configuration file. Encoding results will be put in a sub-folder of the
'reports/property/interoperability/encoding' folder.
To run decoding tests, type:
ant run-iot-decoding-classes-java -DtestCases=config/testCases-profile/all.xml -DexiDataDir=./encodings/Canon
The ' config/testCases-profile/all.xml' parameter may be replaced by any other test configuration file.
The './encodings/Canon' parameter may be replaced by any other encoding set.
Two full encoding sets are provided in the test framework within the 'encodings' folder.
Decoding results will be put in a sub-folder of the 'reports/property/interoperability/decoding'
folder.
Limitations
-----------
This release of the framework supports Java-based EXI implementations only.
This release requires JDK 1.5. It has not been tested with other Java versions.
The data-type aware method of comparing XML files (i.e., diff tool) has been maintained
to avoid false difference reports when using the included test data files. Other test
data files may trigger false difference reports.
Depending on the local installation directory, path names used in this release may trigger
path-length errors in some operating systems. Affected working group members resolved this
by using a simple work-around of setting up the testing in environment in a local directory
closer to the root.