]> Creatis software - gdcm.git/blob - Testing/TestValidate.cxx
Make sure gdcm with NOPRIV doesn't break
[gdcm.git] / Testing / TestValidate.cxx
1 /*=========================================================================
2                                                                                 
3   Program:   gdcm
4   Module:    $RCSfile: TestValidate.cxx,v $
5   Language:  C++
6   Date:      $Date: 2007/06/21 14:59:06 $
7   Version:   $Revision: 1.11 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*/
18 #include "gdcmFile.h"
19 #include "gdcmValidator.h"
20
21 #include "gdcmGlobal.h"
22 #include "gdcmDictSet.h"
23
24 //Generated file:
25 #include "gdcmDataImages.h"
26
27 int Validate(std::string const &filename);
28
29 int Validate(std::string const &filename)
30 {
31    GDCM_NAME_SPACE::File *input =  GDCM_NAME_SPACE::File::New( );
32    input->SetFileName(filename);
33    input->Load();
34    GDCM_NAME_SPACE::Validator *v = GDCM_NAME_SPACE::Validator::New();
35    v->SetInput( input );
36    input->Delete();
37    v->Delete();
38    return 1; // allways true (we don't want to break the test suite)
39
40
41
42 int TestValidate(int argc, char *argv[])
43 {
44    if ( argc == 2 )
45    {
46       // The test is specified a specific filename, use it instead of looping
47       // over all images
48       const std::string input = argv[1];
49       return Validate( input );
50    }
51    else if ( argc > 2 || argc == 2 )
52    {
53       std::cout << "   Usage: " << argv[0]
54                 << " (no arguments needed)." << std::endl;
55       std::cout << "or   Usage: " << argv[0]
56                 << " filename.dcm " << std::endl;
57       return 1;
58    }
59    
60    int i =0;
61    int retVal = 0;  //by default : *no* error
62    while( gdcmDataImages[i] != 0 )
63    {
64       std::string filename = GDCM_DATA_ROOT;
65       filename += "/";  //doh!
66       filename += gdcmDataImages[i];
67       std::cout << filename << std::endl;
68       if( Validate( filename ) != 0 )
69       {
70          retVal++;
71       }
72
73       i++;
74    }
75    retVal = 0; // Never break test suite
76    return retVal;
77 }
78