-
Notifications
You must be signed in to change notification settings - Fork 0
/
README_TESTS
43 lines (31 loc) · 1.59 KB
/
README_TESTS
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
Overview
========
Tests are implemented using JUnit. There are classic unit tests that are
located in the ch.usi.dag.disl.test.junit package and complex tests in the
ch.usi.dag.disl.test.suite package that invoke all parts of the framework
(client, server, ...) and verify computed results.
All tests are executed by running
$ ant test
To use the tests for debuging purposes during development, a single test suite
(for example, "after") can be executed by running
$ ant test -Dtest.name=after
Properties passed to Ant on the command line starting with "-Ddisl.",
"-Ddislserver.", and "-Ddislreserver." are passed to the test. For example,
to save the outputs produced by the test suites, use
-Ddisl.test.verbose=true
When built with "ant prepare-test" tests can be also run directly. They are
packed in the "build-test" directory.
Implementation
==============
Implementation is a bit tricky in few aspects.
Firstly, building of suite test apps and instrumentations is handled by a
scripted target that lists all directories in a "ch.usi.dag.disl.test.suite"
package, and produces "app" and "inst" jars for each suite.
Secondly, when running the instances of client and server using Process API,
never forget to clear environment variables as inherited classpath could cause
serious trouble.
The manifest file in the instrumentation jars for each suite will contain an
attribute, DiSL-Classes, listing binary names of classes that are used for
snippet expansion. The comma-separated list of classes is generated
automatically by the build system based on snippet-related annotations used in
the instrumentation classes.