summaryrefslogtreecommitdiff
path: root/zephyr/zmake/tests/test_zmake.py
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/zmake/tests/test_zmake.py')
-rw-r--r--zephyr/zmake/tests/test_zmake.py107
1 files changed, 0 insertions, 107 deletions
diff --git a/zephyr/zmake/tests/test_zmake.py b/zephyr/zmake/tests/test_zmake.py
deleted file mode 100644
index acd9409585..0000000000
--- a/zephyr/zmake/tests/test_zmake.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 2021 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Do a run of 'zmake build' and check the output"""
-
-import logging
-import os
-import pathlib
-import tempfile
-import unittest.mock as mock
-from unittest.mock import patch
-from testfixtures import LogCapture
-
-import zmake.jobserver
-import zmake.project
-import zmake.zmake as zm
-
-OUR_PATH = os.path.dirname(os.path.realpath(__file__))
-
-
-class FakeProject:
- """A fake project which requests two builds and does no packing"""
- # pylint: disable=too-few-public-methods
- def __init__(self):
- self.packer = mock.Mock()
- self.packer.pack_firmware = mock.Mock(return_value=[])
-
- @staticmethod
- def iter_builds():
- """Yield the two builds that zmake normally does"""
- yield 'build-ro', None
- yield 'build-rw', None
-
-
-class FakeJobserver(zmake.jobserver.GNUMakeJobServer):
- """A fake jobserver which just runs 'cat' on the provided files"""
-
- def __init__(self, fnames):
- """Start up a jobserver with two jobs
-
- Args:
- fnames: List of the two filenames to supply, one for each job
- """
- super().__init__()
- self.jobserver = zmake.jobserver.GNUMakeJobServer(jobs=2)
- self.fnames = fnames
-
- def get_job(self):
- """Fake implementation of get_job(), which returns a real JobHandle()"""
- return zmake.jobserver.JobHandle(mock.Mock())
-
- # pylint: disable=arguments-differ
- def popen(self, _cmd, *args, **kwargs):
- """Ignores the provided command and just runs 'cat' instead"""
- new_cmd = ['cat', self.fnames.pop()]
- return self.jobserver.popen(new_cmd, *args, **kwargs)
-
-
-def do_test_with_log_level(log_level):
- """Test filtering using a particular log level
-
- Args:
- log_level: Level to use
-
- Returns:
- tuple:
- - List of log strings obtained from the run
- - Temporary directory used for build
- """
- fnames = [os.path.join(OUR_PATH, 'files', f)
- for f in ['sample_ro.txt', 'sample_rw.txt']]
- zmk = zm.Zmake(jobserver=FakeJobserver(fnames))
-
- with LogCapture(level=log_level) as cap:
- with tempfile.TemporaryDirectory() as tmpname:
- with patch.object(zmake.project, 'Project',
- return_value=FakeProject()):
- zmk.build(pathlib.Path(tmpname))
- recs = [rec.getMessage() for rec in cap.records]
- return recs, tmpname
-
-
-def test_filter_normal():
- """Test filtering of a normal build (with no errors)"""
- recs, _ = do_test_with_log_level(logging.ERROR)
- assert not recs
-
-
-def test_filter_info():
- """Test what appears on the INFO level"""
- recs, tmpname = do_test_with_log_level(logging.INFO)
- # This produces an easy-to-read diff if there is a difference
- assert set(recs) == {
- 'Building %s:build-ro: /usr/bin/ninja -C %s/build-build-ro' %
- (tmpname, tmpname),
- 'Building %s:build-rw: /usr/bin/ninja -C %s/build-build-rw' %
- (tmpname, tmpname),
- 'Building /tmp/z/vol:ro: /usr/bin/ninja -C /tmp/z/vol/build-ro',
- 'Building /tmp/z/vol:rw: /usr/bin/ninja -C /tmp/z/vol/build-rw',
- 'FLASH: 241868 B 512 KB 46.13%',
- 'IDT_LIST: 0 GB 2 KB 0.00%',
- 'Memory region Used Size Region Size %age Used',
- 'Running /usr/bin/ninja -C /tmp/z/vol/build-ro',
- 'Running /usr/bin/ninja -C /tmp/z/vol/build-rw',
- 'SRAM: 48632 B 62 KB 76.60%',
- }