microsoft/openvmm

Public

mirrored fromhttps://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
8d1621f1387e8a88a71bf7fdc0e5ff149750d1f1

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

.config/nextest.toml

88lines · modecode

1# Copyright (c) Microsoft Corporation.
2# Licensed under the MIT License.
3
4# IMPORTANT: nextest processes this file in linear order. The
5# first override to set any setting wins. Order any overrides
6# from most-to-least specific.
7#
8# Take the following config items by example:
9#
10# [[profile.default.overrides]] # <-- override 1
11# filter = 'package(~vmm_tests)'
12# threads-required = 3
13#
14# [[profile.default.overrides]] # <-- override 2
15# filter = 'package(~vmm_tests) and test(very_heavy)'
16# threads-required = 35
17#
18# If a test is named "my_very_heavy_test", nextest will
19# apply ***threads-required = 3***, since override 1
20# is first in the file and matches.
21#
22# See:
23# https://nexte.st/docs/configuration/per-test-overrides/#override-precedence
24# https://nexte.st/docs/configuration/?h=hierar#hierarchical-configuration
25
26[[profile.default.overrides]]
27filter = 'package(~vmm_tests) and test(very_heavy)'
28# Extra heavy tests have even more VPs. Internal runners fail when 32vp tests
29# are not run one at a time.
30threads-required = 32
31
32[[profile.default.overrides]]
33filter = 'package(~vmm_tests) and test(heavy) and not (test(very_heavy))'
34# Require more threads for heavy tests with more VPs to avoid unreliability
35# due to contention on the physical cores.
36threads-required = 4
37
38[[profile.default.overrides]]
39# use fuzzy-matching for the package() to allow out-of-tree tests to use the
40# same profile
41filter = 'package(~vmm_tests)'
42# Limit the amount of simultaneous tests by requiring two threads per test.
43# This is mostly to avoid running out of memory. Our test runners have 32 cores
44# and 128GB of memory, and most tests use 4GB, so total memory usage should be
45# about 4GB * (32 cores / (2 threads/test)) = 64GB < 128GB.
46# For local dev runs, you may need to manually restrict the number of
47# threads running via the -j cli arg.
48threads-required = 2
49
50# Profile for AI agent runs. Minimizes output noise: only prints slow, failing,
51# and flaky tests. Agents should use: cargo nextest run -p <pkg> --profile agent
52[profile.agent]
53# Only show slow and failing tests during the run (hide PASS lines).
54status-level = "slow"
55# Show failures and flaky tests in the final summary.
56final-status-level = "flaky"
57# Mark tests slow after 5s, kill after 30s (6 periods).
58slow-timeout = { period = "5s", terminate-after = 6 }
59# Print failure output immediately so humans watching can see it.
60failure-output = "immediate"
61# Don't fail fast--let the agent see all failures at once.
62fail-fast = false
63
64# Profile for CI runs.
65[profile.ci]
66# Set the default timeout to 1 second, with tests terminated after 10 seconds
67slow-timeout = { period = "1s", terminate-after = 10 }
68# Print out output for failing tests at the end of the run.
69failure-output = "final"
70# Do not cancel the test run on the first failure.
71fail-fast = false
72
73[profile.ci.junit]
74path = "junit.xml"
75store-success-output = "true"
76
77[[profile.ci.overrides]]
78# allow loom based tests more time, as they take a while
79filter = 'test(loom)'
80slow-timeout = { period = "30s", terminate-after = 2 }
81
82[[profile.ci.overrides]]
83# use fuzzy-matching for the package() to allow out-of-tree tests to use the
84# same profile
85filter = 'package(~vmm_tests)'
86# VMM tests contain their own watchdog timer, but keep an extra long timer
87# here as a backup.
88slow-timeout = { period = "10m", terminate-after = 2 }
89