- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
===========================================================================*/
-#include <cstdlib>
-#include <cstdio>
-
#include <iostream>
#include <sstream>
#include <string>
-
+#include <fstream>
+#include "gtest/gtest.h"
+#include "stdio.h"
#include <itksys/SystemTools.hxx>
-
-
-const size_t NUMTESTS=2;
-
-// test files
-const char mhd_files[NUMTESTS][128] = {
- CLITK_DATA_PATH"/4d/mhd/00.mhd",
- CLITK_DATA_PATH"/4d/mhd/bh.mhd"
-};
-
-// pre-written validation files. the idea
-// is that the output generated from the test
-// files match the verification files
-const char validation_files[NUMTESTS][128] = {
- CLITK_DATA_PATH"/tools/clitkImageInfoTestValidate3D.out",
- CLITK_DATA_PATH"/tools/clitkImageInfoTestValidate4D.out"
-};
-
-int main(int argc, char** argv)
-{
- system("pwd");
+static inline void compare(std::string mhd, std::string ref){
+ std::ostringstream cmd_line;
+ cmd_line << CLITK_TEST_TOOLS_PATH<<"clitkImageInfo " << mhd << " > clitkImageInfoTest.out";
+ system(cmd_line.str().c_str());
- bool failed = false;
- for (size_t i = 0; i < NUMTESTS; i++) {
- std::ostringstream cmd_line;
- cmd_line << "clitkImageInfo " << mhd_files[i] << " > clitkImageInfoTest.out";
-
- std::cout << "Executing " << cmd_line.str() << std::endl;
- system(cmd_line.str().c_str());
-
- // compare output with validation file
- std::cout << "Validating output against " << validation_files[i] << std::endl;
- bool differ = itksys::SystemTools::FilesDiffer("clitkImageInfoTest.out", validation_files[i]);
- if (differ)
- {
- failed = true;
- std::cout << "FAILED: Program output and reference do not match." << std::endl;
- }
- else
- {
- itksys::SystemTools::RemoveFile("clitkImageInfoTest.out");
- std::cout << "PASSED" << std::endl;
- }
- }
- return failed ? -1 : 0;
+ EXPECT_FALSE( itksys::SystemTools::FilesDiffer("clitkImageInfoTest.out", ref.c_str()) );
+ remove("clitkImageInfoTest.out");
+}
+TEST(clitkImageInfoTest, main){
+ std::string mhd1=std::string(CLITK_TEST_DATA_PATH)+"Deformation4D.mhd";
+ ASSERT_TRUE(itksys::SystemTools::FileExists(mhd1.c_str(), true));
+
+ std::string mhd2=std::string(CLITK_TEST_DATA_PATH)+"Lung3D.mhd";
+ ASSERT_TRUE(itksys::SystemTools::FileExists(mhd2.c_str(), true));
+
+ mhd1+=" "+mhd2;
+ std::string ref1=std::string(CLITK_TEST_DATA_PATH)+"clitkImageInfoTestRef.out";
+ ASSERT_TRUE(itksys::SystemTools::FileExists(ref1.c_str(), true));
+ compare(mhd1, ref1);
}
\ No newline at end of file