This directory contains JSON schema for communications between parts of Data Drive Test (DDT). This defines the form of the .json files that store information using the JSON schema approach.
References:
In this directory, there is a subdirectory for each test type,
e.g. collation_short. In each, there are files describing legal JSON forms
for:
- generated test data. The file is named test_schema.json.
- output from test execution. This file is always called
result_schema.json - output from the verifier. This describes the output of the verification step. It will be added in the future.
Definition of test data requires that no specified properties exist in the testing schema. To check this, use this specification for each set of properties:
"additionalProperties": false
When a new type of test is added, do these steps:
-
Define the format of the test data .json produced by
testgen/testdata_gen.pyastest_schema.json. Make sure that all properties are specified, including defining the possible type(s) of each. Add explicit enumerations for limitied sets of values. -
Add the directory to this folder with the test type as the folder name. E.g., for new test "test_feature", create the test_feature directory here.
-
Include the file describing the generated test data as
test_schema.jsonin that directory. -
Add the new test type to
schema_files.py. -
Run
check_schema.pyin this folder to verify that the schema is syntactically correct. Don't proceed until this run is clean for all schemas. -
After generating the test data, run the script
check_generated_data.pyin this folder for all the icu versions. Make sure that all data files pass with the test schema. -
When a text executor is implemented for the new type of test, add a file
result_schema.jsonunder the test_type file in this schema folder. It should describe all possible outputs from running tests on the various platforms. -
When new tests have been executed, run
check_test_output.pyin this folder. Fix any unexpected or undefined fields. Resolve any reports of unexepected data types.