X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/95d0775bf6fa098871961fadb30aa4b052c6aa61..04704ea80b294655fe14d0c8cddf4ec1a6b21b4d:/services/fuse/tests/test_command_args.py diff --git a/services/fuse/tests/test_command_args.py b/services/fuse/tests/test_command_args.py index 600bb0fe22..b08ab19335 100644 --- a/services/fuse/tests/test_command_args.py +++ b/services/fuse/tests/test_command_args.py @@ -20,6 +20,7 @@ from . import run_test_server import sys import tempfile import unittest +import resource def noexit(func): """If argparse or arvados_fuse tries to exit, fail the test instead""" @@ -261,6 +262,50 @@ class MountArgsTest(unittest.TestCase): '--foreground', self.mntdir]) arvados_fuse.command.Mount(args) + @noexit + @mock.patch('resource.setrlimit') + @mock.patch('resource.getrlimit') + def test_default_file_cache(self, getrlimit, setrlimit): + args = arvados_fuse.command.ArgumentParser().parse_args([ + '--foreground', self.mntdir]) + self.assertEqual(args.mode, None) + getrlimit.return_value = (1024, 1048576) + self.mnt = arvados_fuse.command.Mount(args) + setrlimit.assert_called_with(resource.RLIMIT_NOFILE, (10240, 1048576)) + + @noexit + @mock.patch('resource.setrlimit') + @mock.patch('resource.getrlimit') + def test_small_file_cache(self, getrlimit, setrlimit): + args = arvados_fuse.command.ArgumentParser().parse_args([ + '--foreground', '--file-cache=256000000', self.mntdir]) + self.assertEqual(args.mode, None) + getrlimit.return_value = (1024, 1048576) + self.mnt = arvados_fuse.command.Mount(args) + setrlimit.assert_not_called() + + @noexit + @mock.patch('resource.setrlimit') + @mock.patch('resource.getrlimit') + def test_large_file_cache(self, getrlimit, setrlimit): + args = arvados_fuse.command.ArgumentParser().parse_args([ + '--foreground', '--file-cache=256000000000', self.mntdir]) + self.assertEqual(args.mode, None) + getrlimit.return_value = (1024, 1048576) + self.mnt = arvados_fuse.command.Mount(args) + setrlimit.assert_called_with(resource.RLIMIT_NOFILE, (30517, 1048576)) + + @noexit + @mock.patch('resource.setrlimit') + @mock.patch('resource.getrlimit') + def test_file_cache_hard_limit(self, getrlimit, setrlimit): + args = arvados_fuse.command.ArgumentParser().parse_args([ + '--foreground', '--file-cache=256000000000', self.mntdir]) + self.assertEqual(args.mode, None) + getrlimit.return_value = (1024, 2048) + self.mnt = arvados_fuse.command.Mount(args) + setrlimit.assert_called_with(resource.RLIMIT_NOFILE, (2048, 2048)) + class MountErrorTest(unittest.TestCase): def setUp(self): self.mntdir = tempfile.mkdtemp()