xref: /aosp_15_r20/external/toolchain-utils/cros_utils/timeline_test.py (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li#!/usr/bin/env python3
2*760c253cSXin Li# -*- coding: utf-8 -*-
3*760c253cSXin Li# Copyright 2019 The ChromiumOS Authors
4*760c253cSXin Li# Use of this source code is governed by a BSD-style license that can be
5*760c253cSXin Li# found in the LICENSE file.
6*760c253cSXin Li
7*760c253cSXin Li"""Tests for time_line.py."""
8*760c253cSXin Li
9*760c253cSXin Li
10*760c253cSXin Li__author__ = "[email protected] (Yunlian Jiang)"
11*760c253cSXin Li
12*760c253cSXin Liimport time
13*760c253cSXin Liimport unittest
14*760c253cSXin Li
15*760c253cSXin Lifrom cros_utils import timeline
16*760c253cSXin Li
17*760c253cSXin Li
18*760c253cSXin Liclass TimeLineTest(unittest.TestCase):
19*760c253cSXin Li    """Tests for the Timeline class."""
20*760c253cSXin Li
21*760c253cSXin Li    def testRecord(self):
22*760c253cSXin Li        tl = timeline.Timeline()
23*760c253cSXin Li        tl.Record("A")
24*760c253cSXin Li        t = time.time()
25*760c253cSXin Li        t1 = tl.events[0].timestamp
26*760c253cSXin Li        self.assertEqual(int(t1 - t), 0)
27*760c253cSXin Li        self.assertRaises(AssertionError, tl.Record, "A")
28*760c253cSXin Li
29*760c253cSXin Li    def testGetEvents(self):
30*760c253cSXin Li        tl = timeline.Timeline()
31*760c253cSXin Li        tl.Record("A")
32*760c253cSXin Li        e = tl.GetEvents()
33*760c253cSXin Li        self.assertEqual(e, ["A"])
34*760c253cSXin Li        tl.Record("B")
35*760c253cSXin Li        e = tl.GetEvents()
36*760c253cSXin Li        self.assertEqual(e, ["A", "B"])
37*760c253cSXin Li
38*760c253cSXin Li    def testGetEventTime(self):
39*760c253cSXin Li        tl = timeline.Timeline()
40*760c253cSXin Li        tl.Record("A")
41*760c253cSXin Li        t = time.time()
42*760c253cSXin Li        t1 = tl.GetEventTime("A")
43*760c253cSXin Li        self.assertEqual(int(t1 - t), 0)
44*760c253cSXin Li        self.assertRaises(IndexError, tl.GetEventTime, "B")
45*760c253cSXin Li
46*760c253cSXin Li    def testGetLastEventTime(self):
47*760c253cSXin Li        tl = timeline.Timeline()
48*760c253cSXin Li        self.assertRaises(IndexError, tl.GetLastEventTime)
49*760c253cSXin Li        tl.Record("A")
50*760c253cSXin Li        t = time.time()
51*760c253cSXin Li        t1 = tl.GetLastEventTime()
52*760c253cSXin Li        self.assertEqual(int(t1 - t), 0)
53*760c253cSXin Li        time.sleep(2)
54*760c253cSXin Li        tl.Record("B")
55*760c253cSXin Li        t = time.time()
56*760c253cSXin Li        t1 = tl.GetLastEventTime()
57*760c253cSXin Li        self.assertEqual(int(t1 - t), 0)
58*760c253cSXin Li
59*760c253cSXin Li
60*760c253cSXin Liif __name__ == "__main__":
61*760c253cSXin Li    unittest.main()
62