Commit 94fbfb9f authored by Deb Mukherjee's avatar Deb Mukherjee Committed by Gerrit Code Review
Browse files

Merge "Rework y4mwrite test to pass google3 tests"

parents f55f68c1 a4635138
...@@ -53,55 +53,33 @@ static FILE *OpenTestDataFile(const std::string& file_name) { ...@@ -53,55 +53,33 @@ static FILE *OpenTestDataFile(const std::string& file_name) {
return fopen(path_to_source.c_str(), "rb"); return fopen(path_to_source.c_str(), "rb");
} }
static FILE *OpenTestOutFile(const std::string& file_name) { static FILE *GetTempOutFile(std::string *file_name) {
const std::string path_to_source = GetDataPath() + "/" + file_name; file_name->clear();
return fopen(path_to_source.c_str(), "wb");
}
static std::string GetTempOutFilename() {
std::string basename;
#if defined(_WIN32) #if defined(_WIN32)
char fname[MAX_PATH]; char fname[MAX_PATH];
// Assume for now that the filename generated is unique per process char tmppath[MAX_PATH];
const UINT ret = GetTempFileNameA( if (GetTempPathA(MAX_PATH, tmppath)) {
GetDataPath().c_str(), "lvx", 0, fname); // Assume for now that the filename generated is unique per process
if (ret != 0) { if (GetTempFileNameA(tmppath, "lvx", 0, fname)) {
const char *slash = strrchr(fname, '\\'); file_name->assign(fname);
if (slash == NULL) slash = strrchr(fname, '/'); return fopen(fname, "wb+");
if (slash == NULL) }
basename.assign(fname);
else
basename.assign(slash + 1);
} else {
basename.clear();
} }
return NULL;
#else #else
char fname[256]; return tmpfile();
const std::string templ = GetDataPath() + "/libvpx_test_XXXXXX";
strncpy(fname, templ.c_str(), templ.size());
fname[templ.size()] = '\0';
const int fd = mkstemp(fname);
if (fd != -1) {
close(fd);
basename.assign(strrchr(fname, '/') + 1);
} else {
basename.clear();
}
#endif #endif
return basename;
} }
class TempOutFile { class TempOutFile {
public: public:
TempOutFile() { TempOutFile() {
file_name_ = GetTempOutFilename(); file_ = GetTempOutFile(&file_name_);
file_ = OpenTestOutFile(file_name_);
} }
~TempOutFile() { ~TempOutFile() {
CloseFile(); CloseFile();
if (!file_name_.empty()) { if (!file_name_.empty()) {
const std::string path_to_source = GetDataPath() + "/" + file_name_; EXPECT_EQ(0, remove(file_name_.c_str()));
EXPECT_EQ(0, remove(path_to_source.c_str()));
} }
} }
FILE *file() { FILE *file() {
...@@ -110,14 +88,19 @@ class TempOutFile { ...@@ -110,14 +88,19 @@ class TempOutFile {
const std::string& file_name() { const std::string& file_name() {
return file_name_; return file_name_;
} }
protected:
void CloseFile() { void CloseFile() {
if (file_) { if (file_) {
fclose(file_); // Close if file pointer is associated with an open file
#if defined(_WIN32)
if (file_->_ptr != NULL) fclose(file_);
#else
if (fileno(file_) != -1) fclose(file_);
#endif
file_ = NULL; file_ = NULL;
} }
} }
protected:
FILE *file_; FILE *file_;
std::string file_name_; std::string file_name_;
}; };
......
...@@ -145,6 +145,14 @@ class Y4mVideoWriteTest ...@@ -145,6 +145,14 @@ class Y4mVideoWriteTest
delete tmpfile_; delete tmpfile_;
} }
virtual void ReplaceInputFile(FILE *input_file) {
CloseSource();
frame_ = 0;
input_file_ = input_file;
rewind(input_file_);
ReadSourceToStart();
}
// Writes out a y4m file and then reads it back // Writes out a y4m file and then reads it back
void WriteY4mAndReadBack() { void WriteY4mAndReadBack() {
ASSERT_TRUE(input_file_ != NULL); ASSERT_TRUE(input_file_ != NULL);
...@@ -163,8 +171,7 @@ class Y4mVideoWriteTest ...@@ -163,8 +171,7 @@ class Y4mVideoWriteTest
write_image_file(img(), tmpfile_->file()); write_image_file(img(), tmpfile_->file());
Next(); Next();
} }
tmpfile_->CloseFile(); ReplaceInputFile(tmpfile_->file());
Y4mVideoSourceTest::Init(tmpfile_->file_name(), limit_);
} }
virtual void Init(const std::string &file_name, int limit) { virtual void Init(const std::string &file_name, int limit) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment