From d2b3547254f52d18a65e62fc1133e5de25016601 Mon Sep 17 00:00:00 2001
From: Tsuda Kageyu <tsuda.kageyu@gmail.com>
Date: Thu, 27 Oct 2016 15:15:22 +0900
Subject: [PATCH] Add a test for File::truncate().

---
 tests/test_file.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tests/test_file.cpp b/tests/test_file.cpp
index f00a3115..9aae07fe 100644
--- a/tests/test_file.cpp
+++ b/tests/test_file.cpp
@@ -45,6 +45,7 @@ class TestFile : public CppUnit::TestFixture
   CPPUNIT_TEST(testFindInSmallFile);
   CPPUNIT_TEST(testRFindInSmallFile);
   CPPUNIT_TEST(testSeek);
+  CPPUNIT_TEST(testTruncate);
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -129,6 +130,24 @@ public:
     CPPUNIT_ASSERT_EQUAL((long)4428, f.tell());
   }
 
+  void testTruncate()
+  {
+    ScopedFileCopy copy("empty", ".ogg");
+    std::string name = copy.fileName();
+
+    {
+      PlainFile f(name.c_str());
+      CPPUNIT_ASSERT_EQUAL(4328L, f.length());
+
+      f.truncate(2000);
+      CPPUNIT_ASSERT_EQUAL(2000L, f.length());
+    }
+    {
+      PlainFile f(name.c_str());
+      CPPUNIT_ASSERT_EQUAL(2000L, f.length());
+    }
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(TestFile);
-- 
2.40.0