From da067e462c3464ce55caae7042f8d6b3a5fd15a5 Mon Sep 17 00:00:00 2001
From: Steven Murray <Steven.Murray@cern.ch>
Date: Fri, 13 Sep 2019 19:45:59 +0200
Subject: [PATCH] Added python unit-test
 test_run_only_once_one_fs_one_subdir_one_file_free_space_absolutely_old_file

---
 python/eosfstgcd/test_ctafstgcd.py | 51 ++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/python/eosfstgcd/test_ctafstgcd.py b/python/eosfstgcd/test_ctafstgcd.py
index 74061baa60..5dd063af12 100755
--- a/python/eosfstgcd/test_ctafstgcd.py
+++ b/python/eosfstgcd/test_ctafstgcd.py
@@ -570,6 +570,57 @@ class GcTestCase(unittest.TestCase):
     self.assertEqual(1, eos.nbstagerrm)
     self.assertEqual(1, eos.nbattrset)
 
+  def test_run_only_once_one_fs_one_subdir_one_file_free_space_absolutely_old_file(self):
+    mockfile = MockTreeNode("90abcdef")
+    mocksubdir = MockTreeNode("12345678", [mockfile])
+    mockfs = MockTreeNode("filesystem1", [mocksubdir])
+    mocktree = MockTreeNode("/", [mockfs])
+    filesizeandctime = ctafstgcd.FileSizeAndCtime()
+    filesizeandctime.sizebytes = 1000
+    filesizeandctime.ctime = time.time() - self.config.absolutemaxagesecs - 1
+    disk = MockDisk(mocktree, self.freebytes, filesizeandctime)
+
+    filesystem1 = {
+      "path" : "/filesystem1",
+      "host" : self.fqdn
+    }
+    filesystems = [filesystem1]
+    eos = MockEos(filesystems)
+
+    self.assertEqual(0, disk.nblistdir)
+    self.assertEqual(0, disk.nbisdir)
+    self.assertEqual(0, disk.nbisfile)
+    self.assertEqual(0, disk.nbgetfreebytes)
+    self.assertEqual(0, disk.nbgetfilesizeandctime)
+    self.assertEqual(0, eos.nbfsls)
+    self.assertEqual(0, eos.nbstagerrm)
+    self.assertEqual(0, eos.nbattrset)
+
+    self.config.minfreebytes = self.freebytes + 1
+
+    gc = ctafstgcd.Gc(self.log, self.fqdn, disk, eos, self.config)
+
+    self.assertEqual(0, disk.nblistdir)
+    self.assertEqual(0, disk.nbisdir)
+    self.assertEqual(0, disk.nbisfile)
+    self.assertEqual(0, disk.nbgetfreebytes)
+    self.assertEqual(0, disk.nbgetfilesizeandctime)
+    self.assertEqual(0, eos.nbfsls)
+    self.assertEqual(0, eos.nbstagerrm)
+    self.assertEqual(0, eos.nbattrset)
+
+    runonlyonce = True
+    gc.run(runonlyonce)
+
+    self.assertEqual(2, disk.nblistdir)
+    self.assertEqual(1, disk.nbisdir)
+    self.assertEqual(1, disk.nbisfile)
+    self.assertEqual(1, disk.nbgetfreebytes) # file
+    self.assertEqual(1, disk.nbgetfilesizeandctime)
+    self.assertEqual(1, eos.nbfsls)
+    self.assertEqual(1, eos.nbstagerrm)
+    self.assertEqual(1, eos.nbattrset)
+
   def test_run_only_once_one_fs_one_subdir_one_file_free_space_old_file(self):
     mockfile = MockTreeNode("90abcdef")
     mocksubdir = MockTreeNode("12345678", [mockfile])
-- 
GitLab