diff --git a/Cargo.lock b/Cargo.lock index 15828ca56..0ec112c23 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -162,7 +162,7 @@ dependencies = [ "omicron-workspace-hack", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -209,7 +209,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -231,18 +231,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -520,11 +520,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.9" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -584,7 +584,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -673,7 +673,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -958,7 +958,7 @@ dependencies = [ "slog-dtrace", "slog-term", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-rustls 0.24.1", "toml 0.8.23", @@ -1077,7 +1077,7 @@ checksum = "a78e2436bc785be168ec3641025f713acc89b541ab41c318d7a1cfb4a4c2c50e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1101,7 +1101,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1112,7 +1112,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1147,7 +1147,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1183,7 +1183,7 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1204,7 +1204,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1214,7 +1214,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1227,7 +1227,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1259,16 +1259,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - [[package]] name = "dirs-sys" version = "0.3.7" @@ -1280,17 +1270,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -1299,7 +1278,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1332,7 +1311,7 @@ dependencies = [ "libdlpi-sys 0.1.0 (git+https://github.com/oxidecomputer/dlpi-sys)", "num_enum 0.7.3", "pretty-hex 0.4.1", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] @@ -1368,9 +1347,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dropshot" -version = "0.16.2" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e8fed669e35e757646ad10f97c4d26dd22cce3da689b307954f7000d2719d0" +checksum = "7cd9bdeafc752f117ed20e659b9763695ae5900adf3a32e93f9f6f4052fd5d66" dependencies = [ "async-stream", "async-trait", @@ -1387,7 +1366,7 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "indexmap 2.9.0", + "indexmap 2.11.4", "multer", "openapiv3", "paste", @@ -1407,10 +1386,10 @@ dependencies = [ "slog-bunyan", "slog-json", "slog-term", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-rustls 0.25.0", - "toml 0.8.23", + "toml 0.9.7", "usdt 0.5.0", "uuid", "version_check", @@ -1419,9 +1398,9 @@ dependencies = [ [[package]] name = "dropshot_endpoint" -version = "0.16.2" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acebb687581abdeaa2c89fa448818a5f803b0e68e5d7e7a1cf585a8f3c5c57ac" +checksum = "89d09440e73a9dcf8a0f7fbd6ab889a7751d59f0fe76e5082a0a6d5623ec6da3" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1429,7 +1408,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_tokenstream 0.2.2", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1502,7 +1481,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1710,7 +1689,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1727,9 +1706,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1802,7 +1781,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1974,7 +1953,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.9.0", + "indexmap 2.11.4", "slab", "tokio", "tokio-util", @@ -2201,13 +2180,14 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", @@ -2215,6 +2195,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2272,7 +2253,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.5.10", "system-configuration", "tokio", "tower-service", @@ -2418,7 +2399,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -2535,13 +2516,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", "hashbrown 0.15.2", "serde", + "serde_core", ] [[package]] @@ -2567,7 +2549,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -2628,12 +2610,6 @@ dependencies = [ "serde", ] -[[package]] -name = "inventory" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" - [[package]] name = "io-uring" version = "0.7.8" @@ -2651,7 +2627,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg", @@ -2748,10 +2724,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2761,7 +2738,7 @@ version = "0.1.0" source = "git+https://github.com/oxidecomputer/opte?rev=cd9aa6467c5e62c6d97f6aafa2150d6930e3a0fa#cd9aa6467c5e62c6d97f6aafa2150d6930e3a0fa" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -2788,9 +2765,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.176" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" [[package]] name = "libdlpi-sys" @@ -2846,10 +2823,10 @@ dependencies = [ "oxnet", "rand 0.9.2", "rusty-doors", - "socket2", - "thiserror 2.0.12", + "socket2 0.5.10", + "thiserror 2.0.16", "tracing", - "winnow 0.7.12", + "winnow 0.7.13", ] [[package]] @@ -2905,6 +2882,26 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +[[package]] +name = "linkme" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b1703c00b2a6a70738920544aa51652532cacddfec2e162d2e29eae01e665c" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d55ca5d5a14363da83bf3c33874b8feaa34653e760d5216d7ef9829c88001a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -3080,7 +3077,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3358,7 +3355,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3442,7 +3439,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3612,11 +3609,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openapiv3" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc02deea53ffe807708244e5914f6b099ad7015a207ee24317c22112e17d9c5c" +checksum = "5c8d427828b22ae1fff2833a03d8486c2c881367f1c336349f307f321e7f4d05" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.4", "serde", "serde_json", ] @@ -3644,7 +3641,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3708,7 +3705,7 @@ dependencies = [ "oxide-vpc", "postcard", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -3786,7 +3783,7 @@ dependencies = [ "oximeter-timeseries-macro", "oximeter-types", "prettyplease", - "syn 2.0.101", + "syn 2.0.106", "toml 0.8.23", "uuid", ] @@ -3817,7 +3814,7 @@ dependencies = [ "omicron-workspace-hack", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3859,7 +3856,7 @@ dependencies = [ "schemars", "serde", "slog-error-chain", - "syn 2.0.101", + "syn 2.0.106", "toml 0.8.23", ] @@ -3873,7 +3870,7 @@ dependencies = [ "oximeter-types", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4005,7 +4002,7 @@ dependencies = [ "regex", "regex-syntax 0.8.5", "structmeta", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4033,9 +4030,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" @@ -4068,7 +4065,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4089,7 +4086,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.9.0", + "indexmap 2.11.4", "serde", "serde_derive", ] @@ -4101,7 +4098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset 0.5.7", - "indexmap 2.9.0", + "indexmap 2.11.4", ] [[package]] @@ -4172,7 +4169,7 @@ version = "0.1.0" dependencies = [ "anyhow", "futures", - "inventory", + "linkme", "phd-framework", "phd-testcase-macros", "thiserror 1.0.64", @@ -4182,6 +4179,7 @@ dependencies = [ name = "phd-testcase-macros" version = "0.1.0" dependencies = [ + "heck 0.5.0", "proc-macro-error", "proc-macro2", "quote", @@ -4201,6 +4199,7 @@ dependencies = [ "futures", "http", "itertools 0.13.0", + "linkme", "omicron-common", "oximeter", "oximeter-producer", @@ -4264,7 +4263,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4408,7 +4407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" dependencies = [ "proc-macro2", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4540,7 +4539,7 @@ checksum = "d85934a440963a69f9f04f48507ff6e7aa2952a5b2d8f96cc37fa3dd5c270f66" dependencies = [ "heck 0.5.0", "http", - "indexmap 2.9.0", + "indexmap 2.11.4", "openapiv3", "proc-macro2", "quote", @@ -4548,7 +4547,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "syn 2.0.101", + "syn 2.0.106", "thiserror 1.0.64", "typify 0.2.0", "unicode-ident", @@ -4562,7 +4561,7 @@ checksum = "37adc80a94c9cae890e82deeeecc9d8f2a5cb153256caaf1bf0f03611e537214" dependencies = [ "heck 0.5.0", "http", - "indexmap 2.9.0", + "indexmap 2.11.4", "openapiv3", "proc-macro2", "quote", @@ -4570,8 +4569,8 @@ dependencies = [ "schemars", "serde", "serde_json", - "syn 2.0.101", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", "typify 0.3.0", "unicode-ident", ] @@ -4584,7 +4583,7 @@ checksum = "b17e5363daa50bf1cccfade6b0fb970d2278758fd5cfa9ab69f25028e4b1afa3" dependencies = [ "heck 0.5.0", "http", - "indexmap 2.9.0", + "indexmap 2.11.4", "openapiv3", "proc-macro2", "quote", @@ -4592,8 +4591,8 @@ dependencies = [ "schemars", "serde", "serde_json", - "syn 2.0.101", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", "typify 0.4.1", "unicode-ident", ] @@ -4613,7 +4612,7 @@ dependencies = [ "serde_json", "serde_tokenstream 0.2.2", "serde_yaml", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4631,7 +4630,7 @@ dependencies = [ "serde_json", "serde_tokenstream 0.2.2", "serde_yaml", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4649,7 +4648,7 @@ dependencies = [ "serde_json", "serde_tokenstream 0.2.2", "serde_yaml", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5005,7 +5004,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls 0.23.10", - "socket2", + "socket2 0.5.10", "thiserror 1.0.64", "tokio", "tracing", @@ -5036,7 +5035,7 @@ checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" dependencies = [ "libc", "once_cell", - "socket2", + "socket2 0.5.10", "tracing", "windows-sys 0.59.0", ] @@ -5570,7 +5569,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5596,7 +5595,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5667,10 +5666,11 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ + "serde_core", "serde_derive", ] @@ -5692,15 +5692,24 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5711,7 +5720,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5725,14 +5734,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -5753,7 +5763,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5765,6 +5775,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_test" version = "1.0.176" @@ -5794,7 +5813,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5819,7 +5838,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", + "indexmap 2.11.4", "serde", "serde_derive", "serde_json", @@ -5836,7 +5855,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5845,7 +5864,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.4", "itoa", "ryu", "serde", @@ -6044,7 +6063,7 @@ source = "git+https://github.com/oxidecomputer/slog-error-chain?branch=main#15f6 dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6083,10 +6102,11 @@ dependencies = [ [[package]] name = "slog-term" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e022d0b998abfe5c3782c1f03551a596269450ccd677ea51c56f8b214610e8" +checksum = "5cb1fc680b38eed6fad4c02b3871c09d2c81db8c96aa4e9c0a34904c830f09b5" dependencies = [ + "chrono", "is-terminal", "slog", "term", @@ -6133,6 +6153,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "softnpu" version = "0.2.0" @@ -6205,7 +6235,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6216,7 +6246,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6247,7 +6277,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6260,7 +6290,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6273,7 +6303,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6320,9 +6350,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -6358,7 +6388,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6428,13 +6458,11 @@ dependencies = [ [[package]] name = "term" -version = "0.7.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +checksum = "2111ef44dae28680ae9752bb89409e7310ca33a8c621ebe7b106cf5c928b3ac0" dependencies = [ - "dirs-next", - "rustversion", - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -6525,7 +6553,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6539,11 +6567,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] @@ -6554,18 +6582,18 @@ checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6648,9 +6676,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.46.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -6661,9 +6689,9 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6672,7 +6700,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5eb4bcf85c373ff09a8beb87a477c2df185cd8842a770386a88bc3ff7ac5abb" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "usdt 0.5.0", ] @@ -6685,7 +6713,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6774,8 +6802,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_edit 0.19.15", ] @@ -6786,11 +6814,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" +dependencies = [ + "indexmap 2.11.4", + "serde_core", + "serde_spanned 1.0.2", + "toml_datetime 0.7.2", + "toml_parser", + "toml_writer", + "winnow 0.7.13", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -6800,16 +6843,25 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.4", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "winnow 0.5.40", ] @@ -6819,12 +6871,21 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.4", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.12", + "winnow 0.7.13", +] + +[[package]] +name = "toml_parser" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +dependencies = [ + "winnow 0.7.13", ] [[package]] @@ -6833,6 +6894,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" + [[package]] name = "topological-sort" version = "0.2.2" @@ -6877,7 +6944,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6968,7 +7035,7 @@ dependencies = [ "serde_human_bytes", "strum 0.26.3", "test-strategy", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -7056,7 +7123,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "syn 2.0.101", + "syn 2.0.106", "thiserror 1.0.64", "unicode-ident", ] @@ -7076,8 +7143,8 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "syn 2.0.101", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", "unicode-ident", ] @@ -7096,8 +7163,8 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "syn 2.0.101", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", "unicode-ident", ] @@ -7114,7 +7181,7 @@ dependencies = [ "serde", "serde_json", "serde_tokenstream 0.2.2", - "syn 2.0.101", + "syn 2.0.106", "typify-impl 0.2.0", ] @@ -7131,7 +7198,7 @@ dependencies = [ "serde", "serde_json", "serde_tokenstream 0.2.2", - "syn 2.0.101", + "syn 2.0.106", "typify-impl 0.3.0", ] @@ -7148,7 +7215,7 @@ dependencies = [ "serde", "serde_json", "serde_tokenstream 0.2.2", - "syn 2.0.101", + "syn 2.0.106", "typify-impl 0.4.1", ] @@ -7223,7 +7290,7 @@ dependencies = [ "either", "futures", "indent_write", - "indexmap 2.9.0", + "indexmap 2.11.4", "libsw", "linear-map", "omicron-workspace-hack", @@ -7304,7 +7371,7 @@ dependencies = [ "proc-macro2", "quote", "serde_tokenstream 0.2.2", - "syn 2.0.101", + "syn 2.0.106", "usdt-impl 0.5.0", ] @@ -7342,7 +7409,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.101", + "syn 2.0.106", "thiserror 1.0.64", "thread-id", "version_check", @@ -7372,7 +7439,7 @@ dependencies = [ "proc-macro2", "quote", "serde_tokenstream 0.2.2", - "syn 2.0.101", + "syn 2.0.106", "usdt-impl 0.5.0", ] @@ -7402,12 +7469,14 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.16.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.2", + "js-sys", "serde", + "wasm-bindgen", ] [[package]] @@ -7554,26 +7623,28 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -7591,9 +7662,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7601,22 +7672,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" @@ -8000,9 +8074,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -8095,7 +8169,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "synstructure 0.13.1", ] @@ -8157,7 +8231,7 @@ checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -8168,7 +8242,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -8179,7 +8253,7 @@ checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -8199,7 +8273,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "synstructure 0.13.1", ] @@ -8228,7 +8302,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 83fa25e81..7427e1716 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,7 +112,7 @@ clap = "4.2" const_format = "0.2" crossbeam-channel = "0.5" ctrlc = "3.2" -dropshot = "0.16.2" +dropshot = "0.16.4" erased-serde = "0.4" errno = "0.2.8" escargot = "0.5.8" @@ -121,10 +121,11 @@ fatfs = "0.3.6" futures = "0.3" futures-util = "0.3.21" flate2 = "1.0.28" +heck = "0.5.0" hex = "0.4.3" http = "1.1.0" hyper = "1.0" -inventory = "0.3.0" +linkme = "0.3.33" itertools = "0.13.0" kstat-rs = "0.2.4" lazy_static = "1.4" diff --git a/bin/propolis-server/src/lib/migrate/memx.rs b/bin/propolis-server/src/lib/migrate/memx.rs index bc157c679..6ee24b174 100644 --- a/bin/propolis-server/src/lib/migrate/memx.rs +++ b/bin/propolis-server/src/lib/migrate/memx.rs @@ -28,7 +28,7 @@ use crate::migrate::codec; // Validates the parameters from a fetch, offer, or xfer. pub(crate) fn validate_bitmap(start: u64, end: u64, bits: &[u8]) -> bool { - if start % 4096 != 0 || end % 4096 != 0 { + if !start.is_multiple_of(4096) || !end.is_multiple_of(4096) { return false; } if end <= start { diff --git a/lib/propolis/src/hw/nvme/cmds.rs b/lib/propolis/src/hw/nvme/cmds.rs index c6b554696..604ad4ced 100644 --- a/lib/propolis/src/hw/nvme/cmds.rs +++ b/lib/propolis/src/hw/nvme/cmds.rs @@ -942,7 +942,7 @@ impl Iterator for PrpIter<'_> { match self.get_next() { Ok(res) => Some(res), Err(e) => { - probes::nvme_prp_error!(|| (e)); + probes::nvme_prp_error!(|| e); self.error = Some(e); None } diff --git a/lib/propolis/src/hw/nvme/mod.rs b/lib/propolis/src/hw/nvme/mod.rs index 4de24f798..ef21266a2 100644 --- a/lib/propolis/src/hw/nvme/mod.rs +++ b/lib/propolis/src/hw/nvme/mod.rs @@ -766,7 +766,7 @@ impl PciNvme { CtrlrReg::DoorBellAdminSQ => { // 32-bit register but ignore reserved top 16-bits let val = wo.read_u32() as u16; - probes::nvme_doorbell_admin_sq!(|| (val)); + probes::nvme_doorbell_admin_sq!(|| val); let state = self.state.lock().unwrap(); if !state.ctrl.cc.enabled() { @@ -788,7 +788,7 @@ impl PciNvme { CtrlrReg::DoorBellAdminCQ => { // 32-bit register but ignore reserved top 16-bits let val = wo.read_u32() as u16; - probes::nvme_doorbell_admin_cq!(|| (val)); + probes::nvme_doorbell_admin_cq!(|| val); let state = self.state.lock().unwrap(); if !state.ctrl.cc.enabled() { diff --git a/lib/propolis/src/hw/virtio/block.rs b/lib/propolis/src/hw/virtio/block.rs index 0979acc49..e2d36944d 100644 --- a/lib/propolis/src/hw/virtio/block.rs +++ b/lib/propolis/src/hw/virtio/block.rs @@ -166,7 +166,7 @@ impl PciVirtioBlock { } } VIRTIO_BLK_T_FLUSH => { - probes::vioblk_flush_enqueue!(|| (rid)); + probes::vioblk_flush_enqueue!(|| rid); Ok(self.block_tracking.track( block::Request::new_flush(), CompletionPayload { rid, chain }, diff --git a/lib/propolis/src/vcpu.rs b/lib/propolis/src/vcpu.rs index bfc024533..1c149e2f6 100644 --- a/lib/propolis/src/vcpu.rs +++ b/lib/propolis/src/vcpu.rs @@ -374,7 +374,7 @@ impl Vcpu { // that can be done. } } - probes::vm_entry!(|| (self.id as u32)); + probes::vm_entry!(|| self.id as u32); let _res = unsafe { self.hdl.ioctl(bhyve_api::VM_RUN, &mut entry)? }; probes::vm_exit!(|| (self.id as u32, exit.rip, exit.exitcode as u32)); diff --git a/phd-tests/framework/src/disk/crucible.rs b/phd-tests/framework/src/disk/crucible.rs index 92e373847..475289bde 100644 --- a/phd-tests/framework/src/disk/crucible.rs +++ b/phd-tests/framework/src/disk/crucible.rs @@ -219,7 +219,7 @@ impl Inner { const GIBIBYTE: u64 = 1 << 30; assert!(EXTENT_SIZE > block_size.bytes()); - assert!(EXTENT_SIZE % block_size.bytes() == 0); + assert!(EXTENT_SIZE.is_multiple_of(block_size.bytes())); let disk_size_gib = match read_only_parent { // If there's a read-only parent, ensure the disk is large enough to diff --git a/phd-tests/testcase/Cargo.toml b/phd-tests/testcase/Cargo.toml index 891e3b1ec..1cd1a558c 100644 --- a/phd-tests/testcase/Cargo.toml +++ b/phd-tests/testcase/Cargo.toml @@ -9,7 +9,7 @@ doctest = false [dependencies] futures.workspace = true -inventory.workspace = true +linkme.workspace = true thiserror.workspace = true phd-framework.workspace = true phd-testcase-macros.workspace = true diff --git a/phd-tests/testcase/src/lib.rs b/phd-tests/testcase/src/lib.rs index 05879f97c..befe35820 100644 --- a/phd-tests/testcase/src/lib.rs +++ b/phd-tests/testcase/src/lib.rs @@ -3,7 +3,6 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. pub use anyhow::{Context, Result}; -pub use inventory::submit as inventory_submit; pub use phd_framework; pub use phd_testcase_macros::*; use thiserror::Error; @@ -80,10 +79,11 @@ impl TestCase { } } -inventory::collect!(TestCase); +#[linkme::distributed_slice] +pub static TEST_CASES: [TestCase]; pub fn all_test_cases() -> impl Iterator { - inventory::iter::.into_iter() + TEST_CASES.into_iter() } /// Returns an iterator over the subset of tests for which (a) the fully @@ -93,7 +93,7 @@ pub fn filtered_test_cases<'rule>( must_include: &'rule [String], must_exclude: &'rule [String], ) -> impl Iterator + 'rule { - inventory::iter::.into_iter().filter(|tc| { + TEST_CASES.into_iter().filter(|tc| { must_include.iter().all(|inc| tc.fully_qualified_name().contains(inc)) && must_exclude .iter() diff --git a/phd-tests/testcase_macro/Cargo.toml b/phd-tests/testcase_macro/Cargo.toml index debe9d754..a4fca5557 100644 --- a/phd-tests/testcase_macro/Cargo.toml +++ b/phd-tests/testcase_macro/Cargo.toml @@ -9,6 +9,7 @@ test = false doctest = false [dependencies] +heck.workspace = true proc-macro2.workspace = true proc-macro-error.workspace = true quote.workspace = true diff --git a/phd-tests/testcase_macro/src/lib.rs b/phd-tests/testcase_macro/src/lib.rs index 5a60cae10..8f0a35764 100644 --- a/phd-tests/testcase_macro/src/lib.rs +++ b/phd-tests/testcase_macro/src/lib.rs @@ -2,9 +2,10 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. +use heck::ToShoutySnakeCase; use proc_macro::TokenStream; use proc_macro_error::{abort, proc_macro_error}; -use quote::quote; +use quote::{format_ident, quote}; use syn::{parse_macro_input, spanned::Spanned, ItemFn}; /// The macro for labeling PHD testcases. @@ -24,14 +25,14 @@ pub fn phd_testcase(_attrib: TokenStream, input: TokenStream) -> TokenStream { // itself regardless of where it's located. let fn_ident = item_fn.sig.ident.clone(); let fn_name = fn_ident.to_string(); + let static_ident = format_ident!("{}", fn_name.to_shouty_snake_case()); let submit: proc_macro2::TokenStream = quote! { - phd_testcase::inventory_submit! { - phd_testcase::TestCase::new( - module_path!(), - #fn_name, - phd_testcase::TestFunction { f: |ctx| Box::pin(#fn_ident(ctx)) } - ) - } + #[linkme::distributed_slice(phd_testcase::TEST_CASES)] + static #static_ident: phd_testcase::TestCase = phd_testcase::TestCase::new( + module_path!(), + #fn_name, + phd_testcase::TestFunction { f: |ctx| Box::pin(#fn_ident(ctx)) } + ); }; if item_fn.sig.asyncness.is_none() { diff --git a/phd-tests/tests/Cargo.toml b/phd-tests/tests/Cargo.toml index 9ee1accb3..3b0dc3ba9 100644 --- a/phd-tests/tests/Cargo.toml +++ b/phd-tests/tests/Cargo.toml @@ -17,6 +17,7 @@ dropshot.workspace = true futures.workspace = true http.workspace = true itertools.workspace = true +linkme.workspace = true omicron-common.workspace = true oximeter-producer.workspace = true oximeter.workspace = true diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 4c7677cfe..43010dda7 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -2,5 +2,5 @@ # We choose a specific toolchain (rather than "stable") for repeatability. The # intent is to keep this up-to-date with recently-released stable Rust. -channel = "1.88.0" +channel = "1.90.0" profile = "default"