| 1 | = Test Screen Validation = |
| 2 | |
| 3 | |
| 4 | [[TOC(Developer/Projects/Open/TestScreenValidation, depth=2)]] |
| 5 | |
| 6 | |
| 7 | '''Mentors:''' Past, Present, and Potential Mentors |
| 8 | |
| 9 | '''Students:''' Past, Present, and Potential Students |
| 10 | |
| 11 | '''Status:''' Current status of project. For starting, it should be: Uninitiated. |
| 12 | |
| 13 | '''Introduction:''' Develop a tool to validate the correctness of test outputs. |
| 14 | |
| 15 | This is not an exhaustive list of requirements for such a tool. |
| 16 | |
| 17 | 1. Does the test output a screen? |
| 18 | 2. Can the output automatically be written to the terminal or (better yet) a text file? |
| 19 | 3. A standard way to write a verification script to specify the form of acceptable results? |
| 20 | A. a parser that can identify the correct form of output |
| 21 | (for example: The time taken to complete the task is 40.) |
| 22 | The form of the output might be specified by something like |
| 23 | grep "The time taken to complete the task is [0-9][0-9]*" test.txt |
| 24 | B. a way to parse out any run specific result |
| 25 | using the above example: The time taken to complete the task is 40. |
| 26 | The way to parse out the specific result might be specified by something like |
| 27 | cat test.txt | sed 's/^.*is\ //g' | sed 's/'\.'$//g' |
| 28 | C. a way to specify acceptable results (an acceptable range or a list of acceptable outputs) |
| 29 | using the above example: The time taken to complete the task is 40. |
| 30 | The acceptable range would be the non-negative numbers (the task might be completed before the clock is read, but there is no such thing as negative time. |
| 31 | D. some tests will not have run specific output (think "hello world".). The test verification should be able to handle that issue as well. |
| 32 | E. The person writing the verification script should only have to enter the |
| 33 | (1) whether the test outputs to the screen, if not the test should not be verified with the script, if so |
| 34 | (2) parsing logic |
| 35 | (3) (if applicable) acceptable results |
| 36 | |
| 37 | F. The tool should be written in an OS independent language (such as Python). |
| 38 | |
| 39 | G. For this tool to stay up-to-date, a hook should be added to check-submission to verify that before a test is accepted into the git repository it has an entry in the RTEMS Test Screen Validation (even if the entry indicates the test does not have a screen). |
| 40 | |
| 41 | H. Although, it might be preferable to change each test to do a return code instead. In which case, a hook should be added to check-submission to verify that before a test is accepted into the git repository it has an exit code of the correct form. |
| 42 | |
| 43 | I. The case for either method (test screen validation or exit codes) would need to be made, and accepted by the RTEMS development team. |
| 44 | |
| 45 | |
| 46 | '''Goal:''' Concise statement of the overall goal of the project. Refine this initial statement to include: project deliverables (code, docs, testing), required/suggested methodology, standards of quality, possible goal extensions beyond the main objective. |
| 47 | |
| 48 | '''Requirements:''' List the requirements and level of expertise you estimate are required by the developer tackling this project will have to have: Required level of programming language(s), specific areas of RTEMS or tools, level of familiarity with RTEMS, cross-development, GNU/Linux, etx., development/documentation/testing tools, mathematical/algorithmic background, other desirable skills. |
| 49 | |
| 50 | '''Resources:''' Current RTEMS developers, papers, etc that may help you in this project. |
| 51 | |
| 52 | '''Acknowledgements''' |
| 53 | * who helped and did work |
| 54 | |
| 55 | = Miscellaneous Sections = |
| 56 | |
| 57 | As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO. |
| 58 | |
| 59 | = References = |
| 60 | * TBD |
| 61 | |
| 62 | '''Other sections:''' If you have more to say about the project that doesn't fit in the proposed sections of this template, feel free to add other sections at will. |