microsoft/openvmm

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/apply-async-process-wait-functionality

Branches

Tags

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

Clone

HTTPS

Download ZIP

.config/nextest.toml

90lines · 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.ci.overrides]]
27# use fuzzy-matching for the package() to allow out-of-tree tests to use the
28# same profile
29filter = 'package(~vmm_tests)'
30# VMM tests contain their own watchdog timer, but keep an extra long timer
31# here as a backup.
32slow-timeout = { period = "10m", terminate-after = 2 }
33
34[[profile.default.overrides]]
35filter = 'package(~vmm_tests) and test(very_heavy)'
36# Extra heavy tests have even more VPs. Internal runners fail when 32vp tests
37# are not run one at a time.
38threads-required = 32
39
40[[profile.default.overrides]]
41filter = 'package(~vmm_tests) and test(heavy) and not (test(very_heavy))'
42# Require more threads for heavy tests with more VPs to avoid unreliability
43# due to contention on the physical cores.
44threads-required = 4
45
46[[profile.default.overrides]]
47# use fuzzy-matching for the package() to allow out-of-tree tests to use the
48# same profile
49filter = 'package(~vmm_tests)'
50# Limit the amount of simultaneous tests by requiring two threads per test.
51# This is mostly to avoid running out of memory. Our test runners have 32 cores
52# and 128GB of memory, and most tests use 4GB, so total memory usage should be
53# about 4GB * (32 cores / (2 threads/test)) = 64GB < 128GB.
54# For local dev runs, you may need to manually restrict the number of
55# threads running via the -j cli arg.
56threads-required = 2
57# Use the same slow timeout as ci, but never terminate
58slow-timeout = { period = "10m" }
59
60[[profile.ci.overrides]]
61# allow loom based tests more time, as they take a while
62filter = 'test(loom)'
63slow-timeout = { period = "30s", terminate-after = 2 }
64
65# Profile for AI agent runs. Minimizes output noise: only prints slow, failing,
66# and flaky tests. Agents should use: cargo nextest run -p <pkg> --profile agent
67[profile.agent]
68# Only show slow and failing tests during the run (hide PASS lines).
69status-level = "slow"
70# Show failures and flaky tests in the final summary.
71final-status-level = "flaky"
72# Mark tests slow after 5s, kill after 30s (6 periods).
73slow-timeout = { period = "5s", terminate-after = 6 }
74# Print failure output immediately so humans watching can see it.
75failure-output = "immediate"
76# Don't fail fast--let the agent see all failures at once.
77fail-fast = false
78
79# Profile for CI runs.
80[profile.ci]
81# Set the default timeout to 1 second, with tests terminated after 10 seconds
82slow-timeout = { period = "1s", terminate-after = 10 }
83# Print out output for failing tests at the end of the run.
84failure-output = "final"
85# Do not cancel the test run on the first failure.
86fail-fast = false
87
88[profile.ci.junit]
89path = "junit.xml"
90store-success-output = "true"