diff --git a/scripts/pylib/twister/twisterlib.py b/scripts/pylib/twister/twisterlib.py index 96c01ac61e9..e17f88ae2e9 100755 --- a/scripts/pylib/twister/twisterlib.py +++ b/scripts/pylib/twister/twisterlib.py @@ -7,6 +7,7 @@ import os import contextlib import string import mmap +import math import sys import re import subprocess @@ -423,7 +424,7 @@ class Handler: self.name = instance.name self.instance = instance - self.timeout = instance.testcase.timeout + self.timeout = math.ceil(instance.testcase.timeout * instance.platform.timeout_multiplier) self.sourcedir = instance.testcase.source_dir self.build_dir = instance.build_dir self.log = os.path.join(self.build_dir, "handler.log") @@ -1626,6 +1627,7 @@ class Platform: # if no RAM size is specified by the board, take a default of 128K self.ram = 128 + self.timeout_multiplier = 1.0 self.ignore_tags = [] self.only_tags = [] self.default = False @@ -1651,6 +1653,7 @@ class Platform: # if no RAM size is specified by the board, take a default of 128K self.ram = data.get("ram", 128) testing = data.get("testing", {}) + self.timeout_multiplier = testing.get("timeout_multiplier", 1.0) self.ignore_tags = testing.get("ignore_tags", []) self.only_tags = testing.get("only_tags", []) self.default = testing.get("default", False) diff --git a/scripts/schemas/twister/platform-schema.yaml b/scripts/schemas/twister/platform-schema.yaml index 2deaa8be1d2..02c68271b2b 100644 --- a/scripts/schemas/twister/platform-schema.yaml +++ b/scripts/schemas/twister/platform-schema.yaml @@ -48,6 +48,9 @@ mapping: "testing": type: map mapping: + "timeout_multiplier": + type: number + required: false "default": type: bool "only_tags":