X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/060d38d627bd1e51dd2b3c6e7de9af6aa7d7b6f3..0c847cae0cb8ad2c55cf9330b84b49ce9d54b4e8:/sdk/cwl/tests/test_fsaccess.py diff --git a/sdk/cwl/tests/test_fsaccess.py b/sdk/cwl/tests/test_fsaccess.py index dd53595a75..f83612a8b0 100644 --- a/sdk/cwl/tests/test_fsaccess.py +++ b/sdk/cwl/tests/test_fsaccess.py @@ -30,3 +30,79 @@ class TestFsAccess(unittest.TestCase): self.assertEqual(1, cr.call_count) c3 = cache.get("99999999999999999999999999999992+99") self.assertEqual(2, cr.call_count) + + @mock.patch("arvados.collection.CollectionReader") + def test_collection_cache_limit(self, cr): + cache = CollectionCache(mock.MagicMock(), mock.MagicMock(), 4) + cr().manifest_text.return_value = 'x' * 524289 + self.assertEqual(0, cache.total) + c1 = cache.get("99999999999999999999999999999991+524289") + self.assertIn("99999999999999999999999999999991+524289", cache.collections) + self.assertNotIn("99999999999999999999999999999992+524289", cache.collections) + self.assertEqual((524289*128)*1, cache.total) + + c2 = cache.get("99999999999999999999999999999992+524289") + self.assertIn("99999999999999999999999999999991+524289", cache.collections) + self.assertIn("99999999999999999999999999999992+524289", cache.collections) + self.assertEqual((524289*128)*2, cache.total) + + c1 = cache.get("99999999999999999999999999999991+524289") + self.assertIn("99999999999999999999999999999991+524289", cache.collections) + self.assertIn("99999999999999999999999999999992+524289", cache.collections) + self.assertEqual((524289*128)*2, cache.total) + + c3 = cache.get("99999999999999999999999999999993+524289") + self.assertIn("99999999999999999999999999999991+524289", cache.collections) + self.assertIn("99999999999999999999999999999992+524289", cache.collections) + self.assertEqual((524289*128)*3, cache.total) + + c4 = cache.get("99999999999999999999999999999994+524289") + self.assertIn("99999999999999999999999999999991+524289", cache.collections) + self.assertNotIn("99999999999999999999999999999992+524289", cache.collections) + self.assertEqual((524289*128)*3, cache.total) + + c5 = cache.get("99999999999999999999999999999995+524289") + self.assertNotIn("99999999999999999999999999999991+524289", cache.collections) + self.assertNotIn("99999999999999999999999999999992+524289", cache.collections) + self.assertEqual((524289*128)*3, cache.total) + + + @mock.patch("arvados.collection.CollectionReader") + def test_collection_cache_limit2(self, cr): + cache = CollectionCache(mock.MagicMock(), mock.MagicMock(), 4) + cr().manifest_text.return_value = 'x' * 524287 + self.assertEqual(0, cache.total) + c1 = cache.get("99999999999999999999999999999991+524287") + self.assertIn("99999999999999999999999999999991+524287", cache.collections) + self.assertNotIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*1, cache.total) + + c2 = cache.get("99999999999999999999999999999992+524287") + self.assertIn("99999999999999999999999999999991+524287", cache.collections) + self.assertIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*2, cache.total) + + c1 = cache.get("99999999999999999999999999999991+524287") + self.assertIn("99999999999999999999999999999991+524287", cache.collections) + self.assertIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*2, cache.total) + + c3 = cache.get("99999999999999999999999999999993+524287") + self.assertIn("99999999999999999999999999999991+524287", cache.collections) + self.assertIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*3, cache.total) + + c4 = cache.get("99999999999999999999999999999994+524287") + self.assertIn("99999999999999999999999999999991+524287", cache.collections) + self.assertIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*4, cache.total) + + c5 = cache.get("99999999999999999999999999999995+524287") + self.assertIn("99999999999999999999999999999991+524287", cache.collections) + self.assertNotIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*4, cache.total) + + c6 = cache.get("99999999999999999999999999999996+524287") + self.assertNotIn("99999999999999999999999999999991+524287", cache.collections) + self.assertNotIn("99999999999999999999999999999992+524287", cache.collections) + self.assertEqual((524287*128)*4, cache.total)