-
Notifications
You must be signed in to change notification settings - Fork 33
PluginRequirements
Each plugin which is intended to be included in the CrypTool2 release setup, MUST fulfill the following requirements:
- The plugin is running stable (no uncaught exceptions, no known defects, no ongoing development which changes the publicly visible behaviour)
- A project template (.cwm) is delivered and runs without errors
- An XML documentation is provided
- All text strings shown to the user are internationalized, a German and an English localization is provided
- The plugin has been tested succesfully
The template must be playable without entering any information. This means, the settings and input fields are predefined with some reasonable example values. A description must be either provided as embedded text or as XML help and must contain the following information:
-
Short Introduction
- In this part you should describe in general what can be seen in the sample, i.e. what it does.
-
Inputs
- What are the inputs to this sample (e.g. plaintext, key etc.), which part should the user change to see a difference
- Are there some restrictions on the input, e.g. only letters allowed or exactly 16 characters/bytes needed.
-
Execution
- Explain in a step-by-step manner what actions are being executed in the sample
- Which plugins are being used and if not intutively clear, why
- Later when it will be possible to mark different areas with colors, also describe what in those areas is happening
-
Output/Result
- What is the result of this sample
- What should be noted/learned by this sample?
Each plugin should provide one unit test. The minimum requirement for this test case is the following: for a given input/output pair the plugin algorithm shall be fed with the input values and the output values shall be checked whether they have been calculated correctly. The source of the input/output values shall be provided as text comment.
More sophisticated tests (multiple test cases, exhaustive data input, high coverage tests, gui tests) are nice-to-have, but not mandatory.
The test case shall use the same mechanism as the other existing test cases (see project DevTestMethods).