v8/tools/testrunner/testproc/util_unittest.py
Ng Zhi An 6f296e0b54 [Py3] Get tools/testrunner/testproc closer to Py3
This modernizes python code without breaking Py2 compat.

Ran with command:

futurize --stage1 -w tools/testrunner/testpro

Manual fixup to util_unittest to modify import paths and change to
absolute imports.

Bug: v8:9871
Change-Id: I2ac29622aff5daebc9dc42145c1d96dff8258546
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2252549
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68492}
2020-06-23 18:55:05 +00:00

71 lines
1.9 KiB
Python

#!/usr/bin/env python
# Copyright 2020 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import absolute_import
import os
import sys
import unittest
TOOLS_PATH = os.path.dirname(os.path.dirname(os.path.dirname(
os.path.abspath(__file__))))
sys.path.append(TOOLS_PATH)
from testrunner.testproc.util import FixedSizeTopList
class TestOrderedFixedSizeList(unittest.TestCase):
def test_empty(self):
ofsl = FixedSizeTopList(3)
self.assertEqual(ofsl.as_list(), [])
def test_12(self):
ofsl = FixedSizeTopList(3)
ofsl.add(1)
ofsl.add(2)
self.assertEqual(ofsl.as_list(), [2,1])
def test_4321(self):
ofsl = FixedSizeTopList(3)
ofsl.add(4)
ofsl.add(3)
ofsl.add(2)
ofsl.add(1)
data = ofsl.as_list()
self.assertEqual(data, [4,3,2])
def test_544321(self):
ofsl = FixedSizeTopList(4)
ofsl.add(5)
ofsl.add(4)
ofsl.add(4)
ofsl.add(3)
ofsl.add(2)
ofsl.add(1)
data = ofsl.as_list()
self.assertEqual(data, [5, 4, 4, 3])
def test_withkey(self):
ofsl = FixedSizeTopList(3,key=lambda x: x['val'])
ofsl.add({'val':4, 'something': 'four'})
ofsl.add({'val':3, 'something': 'three'})
ofsl.add({'val':-1, 'something': 'minusone'})
ofsl.add({'val':5, 'something': 'five'})
ofsl.add({'val':0, 'something': 'zero'})
data = [e['something'] for e in ofsl.as_list()]
self.assertEqual(data, ['five', 'four', 'three'])
def test_withkeyclash(self):
# Test that a key clash does not throw exeption
ofsl = FixedSizeTopList(2,key=lambda x: x['val'])
ofsl.add({'val':2, 'something': 'two'})
ofsl.add({'val':2, 'something': 'two'})
ofsl.add({'val':0, 'something': 'zero'})
data = [e['something'] for e in ofsl.as_list()]
self.assertEqual(data, ['two', 'two'])
if __name__ == '__main__':
unittest.main()