1cef7893435aa41160dd1255c43cb8498279738ccChris Craik#!/usr/bin/env python 2cef7893435aa41160dd1255c43cb8498279738ccChris Craik# Copyright 2016 The Chromium Authors. All rights reserved. 3cef7893435aa41160dd1255c43cb8498279738ccChris Craik# Use of this source code is governed by a BSD-style license that can be 4cef7893435aa41160dd1255c43cb8498279738ccChris Craik# found in the LICENSE file. 5cef7893435aa41160dd1255c43cb8498279738ccChris Craikimport logging 6cef7893435aa41160dd1255c43cb8498279738ccChris Craikimport os 7cef7893435aa41160dd1255c43cb8498279738ccChris Craikimport sys 8cef7893435aa41160dd1255c43cb8498279738ccChris Craikimport tempfile 9cef7893435aa41160dd1255c43cb8498279738ccChris Craikimport unittest 10cef7893435aa41160dd1255c43cb8498279738ccChris Craik 11cef7893435aa41160dd1255c43cb8498279738ccChris Craikfrom log import * 12cef7893435aa41160dd1255c43cb8498279738ccChris Craikfrom parsed_trace_events import * 13cef7893435aa41160dd1255c43cb8498279738ccChris Craik 14cef7893435aa41160dd1255c43cb8498279738ccChris Craik 15cef7893435aa41160dd1255c43cb8498279738ccChris Craikclass LogIOTest(unittest.TestCase): 16cef7893435aa41160dd1255c43cb8498279738ccChris Craik def test_enable_with_file(self): 17cef7893435aa41160dd1255c43cb8498279738ccChris Craik file = tempfile.NamedTemporaryFile() 18cef7893435aa41160dd1255c43cb8498279738ccChris Craik trace_enable(open(file.name, 'w+')) 19cef7893435aa41160dd1255c43cb8498279738ccChris Craik trace_disable() 20cef7893435aa41160dd1255c43cb8498279738ccChris Craik e = ParsedTraceEvents(trace_filename = file.name) 21cef7893435aa41160dd1255c43cb8498279738ccChris Craik file.close() 22cef7893435aa41160dd1255c43cb8498279738ccChris Craik self.assertTrue(len(e) > 0) 23cef7893435aa41160dd1255c43cb8498279738ccChris Craik 24cef7893435aa41160dd1255c43cb8498279738ccChris Craik def test_enable_with_filename(self): 25cef7893435aa41160dd1255c43cb8498279738ccChris Craik file = tempfile.NamedTemporaryFile() 26cef7893435aa41160dd1255c43cb8498279738ccChris Craik trace_enable(file.name) 27cef7893435aa41160dd1255c43cb8498279738ccChris Craik trace_disable() 28cef7893435aa41160dd1255c43cb8498279738ccChris Craik e = ParsedTraceEvents(trace_filename = file.name) 29cef7893435aa41160dd1255c43cb8498279738ccChris Craik file.close() 30cef7893435aa41160dd1255c43cb8498279738ccChris Craik self.assertTrue(len(e) > 0) 31cef7893435aa41160dd1255c43cb8498279738ccChris Craik 32cef7893435aa41160dd1255c43cb8498279738ccChris Craik def test_enable_with_implicit_filename(self): 33cef7893435aa41160dd1255c43cb8498279738ccChris Craik expected_filename = "%s.json" % sys.argv[0] 34cef7893435aa41160dd1255c43cb8498279738ccChris Craik def do_work(): 35cef7893435aa41160dd1255c43cb8498279738ccChris Craik file = tempfile.NamedTemporaryFile() 36cef7893435aa41160dd1255c43cb8498279738ccChris Craik trace_enable() 37cef7893435aa41160dd1255c43cb8498279738ccChris Craik trace_disable() 38cef7893435aa41160dd1255c43cb8498279738ccChris Craik e = ParsedTraceEvents(trace_filename = expected_filename) 39cef7893435aa41160dd1255c43cb8498279738ccChris Craik file.close() 40cef7893435aa41160dd1255c43cb8498279738ccChris Craik self.assertTrue(len(e) > 0) 41cef7893435aa41160dd1255c43cb8498279738ccChris Craik try: 42cef7893435aa41160dd1255c43cb8498279738ccChris Craik do_work() 43cef7893435aa41160dd1255c43cb8498279738ccChris Craik finally: 44cef7893435aa41160dd1255c43cb8498279738ccChris Craik if os.path.exists(expected_filename): 45cef7893435aa41160dd1255c43cb8498279738ccChris Craik os.unlink(expected_filename) 46cef7893435aa41160dd1255c43cb8498279738ccChris Craik 47cef7893435aa41160dd1255c43cb8498279738ccChris Craikif __name__ == '__main__': 48cef7893435aa41160dd1255c43cb8498279738ccChris Craik logging.getLogger().setLevel(logging.DEBUG) 49cef7893435aa41160dd1255c43cb8498279738ccChris Craik unittest.main(verbosity=2) 50cef7893435aa41160dd1255c43cb8498279738ccChris Craik 51