-
Notifications
You must be signed in to change notification settings - Fork 91
Expand file tree
/
Copy pathnextest.toml
More file actions
91 lines (76 loc) · 3.61 KB
/
Copy pathnextest.toml
File metadata and controls
91 lines (76 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# NOTE: The recommended version should be in sync with the version in
# .github/buildomat/build-and-test.sh.
#
# The required version should be bumped up if we need new features, performance
# improvements or bugfixes that are present in newer versions of nextest.
nextest-version = { required = "0.9.131", recommended = "0.9.131" }
[experimental]
benchmarks = true
setup-scripts = true
[profile.default]
default-filter = 'all() - package(omicron-live-tests) - package(end-to-end-tests)'
[[profile.default.overrides]]
# These tests are quite slow and can hold up the run, so run them first.
filter = 'package(oximeter-db) and test(=client::tests::test_replicated) + test(test_action_failure_can_unwind)'
priority = 20
[[profile.default.overrides]]
filter = 'package(oximeter-db) and test(replicated) + package(omicron-clickhouse-admin)'
test-group = 'clickhouse-cluster'
# client::tests::test_replicated is part of this filter, but it's matched with
# the higher priority (20) first. The other tests in this group are run after
# that.
priority = 10
[[profile.default.overrides]]
# These tests can time out under heavy contention.
filter = 'binary_id(omicron-nexus::test_all) and test(::schema::)'
threads-required = 4
[[profile.default.scripts]]
# Exclude omicron-dev tests from crdb-seed as we explicitly want to simulate an
# environment where the seed file doesn't exist.
# Exclude omicron-live-tests because those don't need this and also don't have
# it available in the environment in which they run.
filter = '(rdeps(nexus-test-utils) + package(nexus-db-schema)) - package(omicron-dev) - package(omicron-live-tests)'
setup = 'crdb-seed'
[[profile.default.scripts]]
filter = 'package(omicron-clickhouse-admin)'
setup = 'clickhouse-cluster'
[profile.ci]
fail-fast = false
retries = 2
flaky-result = "fail"
[profile.ci.junit]
path = "junit.xml"
# Mark flaky-fail tests as passing in JUnit output since we care about that
# output for analysis, not visualization.
flaky-fail-status = "success"
[[profile.ci.overrides]]
# `omicron-test-utils` is included in this block that uses a longer-than-normal
# timeout because under some conditions it waits for CockroachDB to shut down
# gracefully. Note that `omicron-test-utils` depends on `omicron-nexus`, so this
# is redundant, but we do this for future-proofing.
filter = 'binary_id(omicron-nexus::test_all) + rdeps(omicron-test-utils)'
# As of 2023-01-08, the slowest test in test_all takes 196s on a Ryzen 7950X.
# 900s is a good upper limit that adds a comfortable buffer.
slow-timeout = { period = '60s', terminate-after = 15 }
[profile.live-tests]
default-filter = 'package(omicron-live-tests)'
[[profile.live-tests.overrides]]
filter = 'package(omicron-live-tests)'
test-group = 'live-tests'
[scripts.setup.crdb-seed]
# Use the test profile for this executable since that's how almost all
# invocations of nextest happen.
command = 'cargo run -p crdb-seed --profile test'
[scripts.setup.clickhouse-cluster]
command = 'cargo run -p clickhouse-cluster-dev'
[test-groups]
# The ClickHouse cluster tests currently rely on a hard-coded set of ports for
# the nodes in the cluster. We would like to relax this in the future, at which
# point this test-group configuration can be removed or at least loosened to
# support testing in parallel. For now, enforce strict serialization for all
# tests with `replicated` in the name.
clickhouse-cluster = { max-threads = 1 }
# While most Omicron tests operate with their own simulated control plane, the
# live-tests operate on a more realistic, shared control plane and test
# behaviors that conflict with each other. They need to be run serially.
live-tests = { max-threads = 1 }