Commit a54ea2e0 authored by Daniel Latypov's avatar Daniel Latypov Committed by Shuah Khan

kunit: tool: misc fixes (unused vars, imports, leaked files)

Drop some variables in unit tests that were unused and/or add assertions
based on them.

For ExitStack, it was imported, but the `es` variable wasn't used so it
didn't do anything, and we were leaking the file objects.
Refactor it to just use nested `with` statements to properly close them.

And drop the direct use of .close() on file objects in the kunit tool
unit test, as these can be leaked if test assertions fail.
Signed-off-by: default avatarDaniel Latypov <dlatypov@google.com>
Reviewed-by: default avatarDavid Gow <davidgow@google.com>
Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent cd94fbc2
...@@ -18,7 +18,6 @@ from collections import namedtuple ...@@ -18,7 +18,6 @@ from collections import namedtuple
from enum import Enum, auto from enum import Enum, auto
from typing import Iterable, Sequence from typing import Iterable, Sequence
import kunit_config
import kunit_json import kunit_json
import kunit_kernel import kunit_kernel
import kunit_parser import kunit_parser
......
...@@ -14,10 +14,6 @@ import shutil ...@@ -14,10 +14,6 @@ import shutil
import signal import signal
from typing import Iterator, Optional, Tuple from typing import Iterator, Optional, Tuple
from contextlib import ExitStack
from collections import namedtuple
import kunit_config import kunit_config
import kunit_parser import kunit_parser
import qemu_config import qemu_config
...@@ -168,10 +164,10 @@ class LinuxSourceTreeOperationsUml(LinuxSourceTreeOperations): ...@@ -168,10 +164,10 @@ class LinuxSourceTreeOperationsUml(LinuxSourceTreeOperations):
process.wait() process.wait()
kunit_parser.print_with_timestamp( kunit_parser.print_with_timestamp(
'Disabling broken configs to run KUnit tests...') 'Disabling broken configs to run KUnit tests...')
with ExitStack() as es:
config = open(get_kconfig_path(build_dir), 'a') with open(get_kconfig_path(build_dir), 'a') as config:
disable = open(BROKEN_ALLCONFIG_PATH, 'r').read() with open(BROKEN_ALLCONFIG_PATH, 'r') as disable:
config.write(disable) config.write(disable.read())
kunit_parser.print_with_timestamp( kunit_parser.print_with_timestamp(
'Starting Kernel with all configs takes a few minutes...') 'Starting Kernel with all configs takes a few minutes...')
......
...@@ -185,7 +185,7 @@ class KUnitParserTest(unittest.TestCase): ...@@ -185,7 +185,7 @@ class KUnitParserTest(unittest.TestCase):
kunit_parser.extract_tap_lines(file.readlines())) kunit_parser.extract_tap_lines(file.readlines()))
print_mock.assert_any_call(StrContains('could not parse test results!')) print_mock.assert_any_call(StrContains('could not parse test results!'))
print_mock.stop() print_mock.stop()
file.close() self.assertEqual(0, len(result.suites))
def test_crashed_test(self): def test_crashed_test(self):
crashed_log = test_data_path('test_is_test_passed-crash.log') crashed_log = test_data_path('test_is_test_passed-crash.log')
...@@ -197,24 +197,22 @@ class KUnitParserTest(unittest.TestCase): ...@@ -197,24 +197,22 @@ class KUnitParserTest(unittest.TestCase):
def test_skipped_test(self): def test_skipped_test(self):
skipped_log = test_data_path('test_skip_tests.log') skipped_log = test_data_path('test_skip_tests.log')
file = open(skipped_log) with open(skipped_log) as file:
result = kunit_parser.parse_run_tests(file.readlines()) result = kunit_parser.parse_run_tests(file.readlines())
# A skipped test does not fail the whole suite. # A skipped test does not fail the whole suite.
self.assertEqual( self.assertEqual(
kunit_parser.TestStatus.SUCCESS, kunit_parser.TestStatus.SUCCESS,
result.status) result.status)
file.close()
def test_skipped_all_tests(self): def test_skipped_all_tests(self):
skipped_log = test_data_path('test_skip_all_tests.log') skipped_log = test_data_path('test_skip_all_tests.log')
file = open(skipped_log) with open(skipped_log) as file:
result = kunit_parser.parse_run_tests(file.readlines()) result = kunit_parser.parse_run_tests(file.readlines())
self.assertEqual( self.assertEqual(
kunit_parser.TestStatus.SKIPPED, kunit_parser.TestStatus.SKIPPED,
result.status) result.status)
file.close()
def test_ignores_prefix_printk_time(self): def test_ignores_prefix_printk_time(self):
...@@ -283,13 +281,13 @@ class LinuxSourceTreeTest(unittest.TestCase): ...@@ -283,13 +281,13 @@ class LinuxSourceTreeTest(unittest.TestCase):
def test_valid_kunitconfig(self): def test_valid_kunitconfig(self):
with tempfile.NamedTemporaryFile('wt') as kunitconfig: with tempfile.NamedTemporaryFile('wt') as kunitconfig:
tree = kunit_kernel.LinuxSourceTree('', kunitconfig_path=kunitconfig.name) kunit_kernel.LinuxSourceTree('', kunitconfig_path=kunitconfig.name)
def test_dir_kunitconfig(self): def test_dir_kunitconfig(self):
with tempfile.TemporaryDirectory('') as dir: with tempfile.TemporaryDirectory('') as dir:
with open(os.path.join(dir, '.kunitconfig'), 'w') as f: with open(os.path.join(dir, '.kunitconfig'), 'w'):
pass pass
tree = kunit_kernel.LinuxSourceTree('', kunitconfig_path=dir) kunit_kernel.LinuxSourceTree('', kunitconfig_path=dir)
# TODO: add more test cases. # TODO: add more test cases.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment