1#!/usr/bin/env python3 2# Copyright (c) 2024 Intel Corporation 3# 4# SPDX-License-Identifier: Apache-2.0 5""" 6Blackbox tests for twister's command line functions related to test filtering. 7""" 8 9from unittest import mock 10import os 11import pytest 12import sys 13import re 14 15# pylint: disable=no-name-in-module 16from conftest import TEST_DATA, suite_filename_mock 17from twisterlib.testplan import TestPlan 18from twisterlib.twister_main import main as twister_main 19 20 21class TestDevice: 22 23 @pytest.mark.parametrize( 24 'seed', 25 [1234, 4321, 1324], 26 ) 27 @mock.patch.object(TestPlan, 'TESTSUITE_FILENAME', suite_filename_mock) 28 def test_seed(self, capfd, out_path, seed): 29 test_platforms = ['native_sim'] 30 path = os.path.join(TEST_DATA, 'tests', 'seed_native_sim') 31 32 args = [ 33 '--no-detailed-test-id', '--outdir', out_path, '-i', '-T', path, '-vv', 34 '--seed', f'{seed}', 35 *[val for pair in zip(['-p'] * len(test_platforms), test_platforms) for val in pair] 36 ] 37 38 return_value = twister_main(args) 39 40 out, err = capfd.readouterr() 41 sys.stdout.write(out) 42 sys.stderr.write(err) 43 44 assert return_value == 1 45 46 expected_line = r'seed_native_sim.dummy\s+FAILED rc=1 \(native (\d+\.\d+)s/seed: {} <host>\)'.format(seed) 47 assert re.search(expected_line, err), f'Regex not found: r"{expected_line}"' 48