blob: d5e8b8070be155bccc768fbe6a6ba5b4fbf99c14 [file] [log] [blame]
#!/usr/bin/python
#
# Copyright (c) 2010 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.
"""
This testcase exercises the file system by ensuring we can create a sufficient
number of files into one directory. In this case we will create 150,000 files on
the stateful partition and 2,000 files on the /tmp partition.
"""
__author__ = ['kdlucas@chromium.org (Kelly Lucas)',
'dalecurtis@chromium.org (Dale Curtis)']
import os
import shutil
from autotest_lib.client.bin import test
from autotest_lib.client.common_lib import error
class platform_FileNum(test.test):
"""Test file number limitations per directory."""
version = 1
_TEST_PLAN = [
{'dir': '/mnt/stateful_partition', 'count': 150000},
{'dir': '/tmp', 'count': 2000}]
_TEST_TEXT = 'ChromeOS rocks with fast response and low maintenance costs!'
def create_files(self, target_dir, count):
"""Create the number of files specified by count in target_dir.
Args:
target_dir: Directory to create files in.
count: Number of files to create.
Returns:
Number of files created.
"""
create_dir = os.path.join(target_dir, 'createdir')
try:
if os.path.exists(create_dir):
shutil.rmtree(create_dir)
os.makedirs(create_dir)
for i in xrange(count):
f = open(os.path.join(create_dir, '%d.txt' % i), 'w')
f.write(self._TEST_TEXT)
f.close()
total_created = len(os.listdir(create_dir))
finally:
shutil.rmtree(create_dir)
return total_created
def run_once(self):
for item in self._TEST_PLAN:
actual_count = self.create_files(item['dir'], item['count'])
if actual_count != item['count']:
raise error.TestFail(
'File creation count in %s is incorrect! Found %d files '
'when there should have been %d!'
% (item['dir'], actual_count, item['count']))