#include <stdlib.h>
#include <itksys/SystemTools.hxx>
const int NO_OUTPUT_OPTION=-1;
+const int TEST_EXITED=1;
int getOutputOptionIndex(int argc, char** argv){
for(int i=1; i<argc; i++){
std::string s = argv[i];
}
return NO_OUTPUT_OPTION;
}
+
std::string getTmpFileName(){
- char buffer [L_tmpnam];
- char* back = tmpnam (buffer);
- if(back==NULL){
- exit(1);
+ char fileName[] = "/tmp/vvTempXXXXXX";
+
+ #ifdef _WIN32
+ errno_t err = tmpfile_s(&fileName, strlen(fileName));
+ #else
+ int err=0;
+ int fd = mkstemp(fileName);
+ if(fd==-1) err=1;
+ #endif
+ if(err){
+ std::cout<<"couldnot create file. Exiting"<<std::endl;
+ exit(TEST_EXITED);
}
- return std::string(back);
+ return std::string(fileName);
}
+
+
/**
* argv
* [1] executable
std::string outFile;
if(NO_OUTPUT_OPTION==outputOptionIndex){
outFile = getTmpFileName();
+ std::cout<<outFile<<std::endl;
cmd_line<<">"<<outFile;
}else{
//todo test this else branch
//run the command line
system(cmd_line.str().c_str());
- exit(1);
-
//files should be equal, so if this is the case return success=0
int fail = (itksys::SystemTools::FilesDiffer(outFile.c_str(), refFile))?1:0;
remove(outFile.c_str());