summaryrefslogtreecommitdiff
path: root/payload_generator/blob_file_writer_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'payload_generator/blob_file_writer_unittest.cc')
-rw-r--r--payload_generator/blob_file_writer_unittest.cc47
1 files changed, 47 insertions, 0 deletions
diff --git a/payload_generator/blob_file_writer_unittest.cc b/payload_generator/blob_file_writer_unittest.cc
new file mode 100644
index 00000000..c845f971
--- /dev/null
+++ b/payload_generator/blob_file_writer_unittest.cc
@@ -0,0 +1,47 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "update_engine/payload_generator/blob_file_writer.h"
+
+#include <string>
+
+#include <gtest/gtest.h>
+
+#include "update_engine/test_utils.h"
+#include "update_engine/utils.h"
+
+using chromeos_update_engine::test_utils::FillWithData;
+using std::string;
+
+namespace chromeos_update_engine {
+
+class BlobFileWriterTest : public ::testing::Test {};
+
+TEST(BlobFileWriterTest, SimpleTest) {
+ string blob_path;
+ int blob_fd;
+ EXPECT_TRUE(utils::MakeTempFile("BlobFileWriterTest.XXXXXX",
+ &blob_path,
+ &blob_fd));
+ off_t blob_file_size = 0;
+ BlobFileWriter blob_file(blob_fd, &blob_file_size);
+
+ off_t blob_size = 1024;
+ chromeos::Blob blob(blob_size);
+ FillWithData(&blob);
+ EXPECT_EQ(0, blob_file.StoreBlob(blob));
+ EXPECT_EQ(blob_size, blob_file.StoreBlob(blob));
+
+ chromeos::Blob stored_blob(blob_size);
+ ssize_t bytes_read;
+ ASSERT_TRUE(utils::PReadAll(blob_fd,
+ stored_blob.data(),
+ blob_size,
+ 0,
+ &bytes_read));
+ EXPECT_EQ(bytes_read, blob_size);
+ EXPECT_EQ(blob, stored_blob);
+}
+
+} // namespace chromeos_update_engine