First pass of ImageWriter

Change-Id: I4f189587a2e3cc1c265200b8fa64321b299947eb
diff --git a/src/common_test.h b/src/common_test.h
index b9e7bcc..9acb06c 100644
--- a/src/common_test.h
+++ b/src/common_test.h
@@ -395,6 +395,38 @@
   return dex_file;
 }
 
+class ScratchFile {
+ public:
+  ScratchFile() {
+    std::string filename_template;
+    filename_template = getenv("ANDROID_DATA");
+    filename_template += "/TmpFile-XXXXXX";
+    filename_.reset(strdup(filename_template.c_str()));
+    CHECK(filename_ != NULL);
+    fd_ = mkstemp(filename_.get());
+    CHECK_NE(-1, fd_);
+  }
+
+  ~ScratchFile() {
+    int unlink_result = unlink(filename_.get());
+    CHECK_EQ(0, unlink_result);
+    int close_result = close(fd_);
+    CHECK_EQ(0, close_result);
+  }
+
+  const char* GetFilename() const {
+    return filename_.get();
+  }
+
+  int GetFd() const {
+    return fd_;
+  }
+
+ private:
+  scoped_ptr_malloc<char> filename_;
+  int fd_;
+};
+
 class RuntimeTest : public testing::Test {
  protected:
   virtual void SetUp() {