Message ID | 20150204024625.GB7731@macpro.local (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Tue, Feb 3, 2015 at 6:46 PM, Luc Van Oostenryck <luc.vanoostenryck@gmail.com> wrote: > > These input files, instead of being stored in real files and thus polluting/confusing > the test framework are now placed in a serie of sections inside an unique test file. > These sections are delimited by new tags: input-file-1-start / input-file-1-end, / input-file-2-start/ ... Sorry for the late review. Can I summarize the polluting/confusing problem as: If there is more than one C file was used in one test case, and test suit wll invoke each of the C file as a separate test case, not a good thing. I think merging it into one test file then split them by the test suit is too complicated. It is actually easier to maintain them as separate files. I think the simpler way would be just teach the test suit, some file was mean to be part of a separate test case. Just don't invoke it as stand alone test. We can add some rules like, embed a tag or simply reflect that in the file name. It will be a smaller change to the test suit as well. Thanks Chris -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/test-suite b/Documentation/test-suite index 6c4f24f6..e2ce7003 100644 --- a/Documentation/test-suite +++ b/Documentation/test-suite @@ -32,6 +32,10 @@ check-output-start / check-output-end (optional) check-known-to-fail (optional) Mark the test as being known to fail. +input-file-1-start / input-file-1-end, / input-file-2-start/ ... (optional) + The input files of check-command lies between those two tags. + It's only needed when a test requires several files. + Using test-suite ~~~~~~~~~~~~~~~~ @@ -58,6 +62,9 @@ name: cmd: check-command value. If no cmd is provided, it defaults to "sparse $file". + If the "input-file-1-start/..." tags are used those files are to be + referenced with "$file1", ... and the command need to be something like: + "sparse $file1 $file2" The output of the test-suite format command can be redirected into the test case to create a test-suite formated file. diff --git a/validation/.gitignore b/validation/.gitignore index 77276ba4..2a5f114b 100644 --- a/validation/.gitignore +++ b/validation/.gitignore @@ -2,3 +2,4 @@ *.diff *.got *.expected +*.input[1-9] diff --git a/validation/preprocessor/counter3.c b/validation/preprocessor/counter3.c index 1449b2d1..76635e82 100644 --- a/validation/preprocessor/counter3.c +++ b/validation/preprocessor/counter3.c @@ -1,13 +1,20 @@ +/* input-file-1-start */ +__COUNTER__ +__COUNTER__ +/* input-file-1-end */ + +/* input-file-2-start */ +__COUNTER__ +/* input-file-2-end */ + /* * check-name: __COUNTER__ #3 - * check-command: sparse -Ipreprocessor -E preprocessor/counter1.c preprocessor/counter2.c + * check-command: sparse -E $file1 $file2 * * check-output-start 0 1 -"preprocessor/counter2.c" 0 -"preprocessor/counter2.h" 1 -"preprocessor/counter2.c" 2 +0 * check-output-end */ diff --git a/validation/test-suite b/validation/test-suite index df5a7c60..97d4dd40 100755 --- a/validation/test-suite +++ b/validation/test-suite @@ -102,6 +102,15 @@ do_test() fi test_name=$last_result + # grab the input sections + input_nr=1 + while grep -q "input-file-$input_nr-start" "$file"; do + sed -n "/input-file-$input_nr-start/,/input-file-$input_nr-end/p" "$file" \ + | grep -v input-file > "$file".input$input_nr + eval "file$input_nr=$file.input$input_nr" + input_nr=$(($input_nr + 1)) + done + # does the test provide a specific command ? cmd=`eval echo $default_path/$default_cmd` get_value "check-command" $file
These input files, instead of being stored in real files and thus polluting/confusing the test framework are now placed in a serie of sections inside an unique test file. These sections are delimited by new tags: input-file-1-start / input-file-1-end, / input-file-2-start/ ... Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> Inspired-by: Josh Triplett <josh@joshtriplett.org> --- Documentation/test-suite | 7 +++++++ validation/.gitignore | 1 + validation/preprocessor/counter3.c | 15 +++++++++++---- validation/test-suite | 9 +++++++++ 4 files changed, 28 insertions(+), 4 deletions(-)