55# improvements or bugfixes that are present in newer versions of nextest.
66nextest-version = { required = " 0.9.131" , recommended = " 0.9.131" }
77
8- experimental = [" benchmarks" , " setup-scripts" ]
8+ [experimental ]
9+ benchmarks = true
10+ setup-scripts = true
11+
12+ [profile .default ]
13+ default-filter = " all() - package(omicron-live-tests) - package(end-to-end-tests)"
14+
15+ [[profile .default .overrides ]]
16+ # These tests are quite slow and can hold up the run, so run them first.
17+ filter = " package(oximeter-db) and test(=client::tests::test_replicated) + test(test_action_failure_can_unwind)"
18+ priority = 20
19+
20+ [[profile .default .overrides ]]
21+ filter = " package(oximeter-db) and test(replicated) + package(omicron-clickhouse-admin)"
22+ test-group = " clickhouse-cluster"
23+ # client::tests::test_replicated is part of this filter, but it's matched with
24+ # the higher priority (20) first. The other tests in this group are run after
25+ # that.
26+ priority = 10
27+
28+ [[profile .default .overrides ]]
29+ # These tests can time out under heavy contention.
30+ filter = " binary_id(omicron-nexus::test_all) and test(::schema::)"
31+ threads-required = 4
932
1033[[profile .default .scripts ]]
1134# Exclude omicron-dev tests from crdb-seed as we explicitly want to simulate an
1235# environment where the seed file doesn't exist.
1336# Exclude omicron-live-tests because those don't need this and also don't have
1437# it available in the environment in which they run.
15- filter = ' (rdeps(nexus-test-utils) + package(nexus-db-schema)) - package(omicron-dev) - package(omicron-live-tests)'
16- setup = ' crdb-seed'
38+ filter = " (rdeps(nexus-test-utils) + package(nexus-db-schema)) - package(omicron-dev) - package(omicron-live-tests)"
39+ setup = " crdb-seed"
40+
41+ [[profile .default .scripts ]]
42+ filter = " package(omicron-clickhouse-admin)"
43+ setup = " clickhouse-cluster"
1744
1845[profile .ci ]
1946fail-fast = false
@@ -26,17 +53,30 @@ path = "junit.xml"
2653# output for analysis, not visualization.
2754flaky-fail-status = " success"
2855
56+ [[profile .ci .overrides ]]
57+ # `omicron-test-utils` is included in this block that uses a longer-than-normal
58+ # timeout because under some conditions it waits for CockroachDB to shut down
59+ # gracefully. Note that `omicron-test-utils` depends on `omicron-nexus`, so this
60+ # is redundant, but we do this for future-proofing.
61+ filter = " binary_id(omicron-nexus::test_all) + rdeps(omicron-test-utils)"
62+ # As of 2023-01-08, the slowest test in test_all takes 196s on a Ryzen 7950X.
63+ # 900s is a good upper limit that adds a comfortable buffer.
64+ slow-timeout = { period = " 60s" , terminate-after = 15 }
65+
66+ [profile .live-tests ]
67+ default-filter = " package(omicron-live-tests)"
68+
69+ [[profile .live-tests .overrides ]]
70+ filter = " package(omicron-live-tests)"
71+ test-group = " live-tests"
72+
2973[scripts .setup .crdb-seed ]
3074# Use the test profile for this executable since that's how almost all
3175# invocations of nextest happen.
32- command = ' cargo run -p crdb-seed --profile test'
33-
34- [[profile .default .scripts ]]
35- filter = ' package(omicron-clickhouse-admin)'
36- setup = ' clickhouse-cluster'
76+ command = " cargo run -p crdb-seed --profile test"
3777
3878[scripts .setup .clickhouse-cluster ]
39- command = ' cargo run -p clickhouse-cluster-dev'
79+ command = " cargo run -p clickhouse-cluster-dev"
4080
4181[test-groups ]
4282# The ClickHouse cluster tests currently rely on a hard-coded set of ports for
@@ -49,41 +89,3 @@ clickhouse-cluster = { max-threads = 1 }
4989# live-tests operate on a more realistic, shared control plane and test
5090# behaviors that conflict with each other. They need to be run serially.
5191live-tests = { max-threads = 1 }
52-
53- [profile .default ]
54- default-filter = ' all() - package(omicron-live-tests) - package(end-to-end-tests)'
55-
56- [[profile .default .overrides ]]
57- # These tests are quite slow and can hold up the run, so run them first.
58- filter = ' package(oximeter-db) and test(=client::tests::test_replicated) + test(test_action_failure_can_unwind)'
59- priority = 20
60-
61- [[profile .default .overrides ]]
62- filter = ' package(oximeter-db) and test(replicated) + package(omicron-clickhouse-admin)'
63- test-group = ' clickhouse-cluster'
64- # client::tests::test_replicated is part of this filter, but it's matched with
65- # the higher priority (20) first. The other tests in this group are run after
66- # that.
67- priority = 10
68-
69- [[profile .default .overrides ]]
70- # These tests can time out under heavy contention.
71- filter = ' binary_id(omicron-nexus::test_all) and test(::schema::)'
72- threads-required = 4
73-
74- [[profile .ci .overrides ]]
75- # `omicron-test-utils` is included in this block that uses a longer-than-normal
76- # timeout because under some conditions it waits for CockroachDB to shut down
77- # gracefully. Note that `omicron-test-utils` depends on `omicron-nexus`, so this
78- # is redundant, but we do this for future-proofing.
79- filter = ' binary_id(omicron-nexus::test_all) + rdeps(omicron-test-utils)'
80- # As of 2023-01-08, the slowest test in test_all takes 196s on a Ryzen 7950X.
81- # 900s is a good upper limit that adds a comfortable buffer.
82- slow-timeout = { period = ' 60s' , terminate-after = 15 }
83-
84- [profile .live-tests ]
85- default-filter = ' package(omicron-live-tests)'
86-
87- [[profile .live-tests .overrides ]]
88- filter = ' package(omicron-live-tests)'
89- test-group = ' live-tests'
0 commit comments