1 # Copyright 2017 ARM Limited, Google 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 # 15 16 import os 17 import sys 18 19 import utils_tests 20 import trappy 21 22 sys.path.append(os.path.join(utils_tests.TESTS_DIRECTORY, "..", "trappy")) 23 24 class TestFilesystem(utils_tests.SetupDirectory): 25 def __init__(self, *args, **kwargs): 26 super(TestFilesystem, self).__init__( 27 [("trace_filesystem.txt", "trace_filesystem.txt"),], 28 *args, 29 **kwargs) 30 31 def test_filesystem_ext_da_write_begin_can_be_parsed(self): 32 """TestFilesystem: test that ext4_da_write_begin events can be parsed""" 33 trace = trappy.FTrace("trace_filesystem.txt", events=['ext4_da_write_begin']) 34 df = trace.ext4_da_write_begin.data_frame 35 self.assertSetEqual(set(df.columns), 36 set(["__comm", "__cpu", "__line", "__pid", "__tgid", "dev", "inode", "pos", "len", "flags"])) 37 38 def test_filesystem_ext_da_write_end_can_be_parsed(self): 39 """TestFilesystem: test that ext4_da_write_end events can be parsed""" 40 trace = trappy.FTrace("trace_filesystem.txt", events=['ext4_da_write_end']) 41 df = trace.ext4_da_write_end.data_frame 42 self.assertSetEqual(set(df.columns), 43 set(["__comm", "__cpu", "__line", "__pid", "__tgid", "dev", "inode", "pos", "len", "copied"])) 44 45 def test_filesystem_ext_sync_file_enter_can_be_parsed(self): 46 """TestFilesystem: test that ext4_sync_file_enter events can be parsed""" 47 trace = trappy.FTrace("trace_filesystem.txt", events=['ext4_sync_file_enter']) 48 df = trace.ext4_sync_file_enter.data_frame 49 self.assertSetEqual(set(df.columns), 50 set(["__comm", "__cpu", "__line", "__pid", "__tgid", "dev", "inode", "parent", "datasync"])) 51 52 def test_filesystem_ext_sync_file_exit_can_be_parsed(self): 53 """TestFilesystem: test that ext4_sync_file_exit events can be parsed""" 54 trace = trappy.FTrace("trace_filesystem.txt", events=['ext4_sync_file_exit']) 55 df = trace.ext4_sync_file_exit.data_frame 56 self.assertSetEqual(set(df.columns), 57 set(["__comm", "__cpu", "__line", "__pid", "__tgid", "dev", "inode", "ret"])) 58