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"

Showing with 30 additions and 40 deletions
...@@ -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) {
......
Supports Markdown
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