build-i2c: Cover generate_sensors in i2c-codegen snapshots - #2655
Conversation
This covers the codegen output, as well as the returned `I2cSensorsDescription`.
generate_sensors in i2c-codegen snapshotsgenerate_sensors in i2c-codegen snapshots
| }: [ | ||
| 33, | ||
| ], | ||
| DeviceNameKey { |
There was a problem hiding this comment.
Huh, is this just #2637? We can now kind of see every case where by_name has more than one value as a
MultiMap
Not quite: that issue is for multiple sensors of the same type (i.e. InputCurrent, Temperature, etc) having the same name. It is normal and expected for multiple sensors of different types to have the same name; this is, for example, how basically every PMBus rail will end up looking. You'll see InputCurrent, OutputCurrent, InputVoltage, OutputVoltage, etc sensors for V50_PSU0 and that's expected. The thing we want to prevent is a situation where there are two InputCurrent sensors named V50_PSU0 (or similar).
Unfortunately, this output doesn't actually let us check for that, since it's just the sensor IDs for that device name key, not any other details of the sensors. I think eventually replacing the MultiMaps of keys to usize with the Arc<DeviceSensor>s that include the ID but also all the other stuff about that sensor would let us check for it here, but that'll make the snapshot even huger.
Also, I would really rather that case emit a build error and fail loudly than have to read the golden file to figure out if I got anything wrong, ideally.
There was a problem hiding this comment.
I experimented with added the check as a warning, as seen here: #2634 (comment).
I do think we should fail loudly, but I would prefer to do that as a follow-on to this PR instead of bundling it here. I agree "look at the snapshot" is not a good workflow, but faithfully catching the defect is easier to see now. The current snapshot code makes this very easy to see:
by_name:
...
- DeviceNameKey { device: "mwocp68", name: "psu0mcu", kind: Temperature } :: [0, 1, 2]
- DeviceNameKey { device: "mwocp68", name: "psu0mcu", kind: Speed } :: [11, 12]
- DeviceNameKey { device: "mwocp68", name: "psu1mcu", kind: Temperature } :: [13, 14, 15]
- DeviceNameKey { device: "mwocp68", name: "psu1mcu", kind: Speed } :: [24, 25]
- DeviceNameKey { device: "mwocp68", name: "psu2mcu", kind: Temperature } :: [26, 27, 28]
- DeviceNameKey { device: "mwocp68", name: "psu2mcu", kind: Speed } :: [37, 38]
- DeviceNameKey { device: "mwocp68", name: "psu3mcu", kind: Temperature } :: [39, 40, 41]
- DeviceNameKey { device: "mwocp68", name: "psu3mcu", kind: Speed } :: [50, 51]
- DeviceNameKey { device: "mwocp68", name: "psu4mcu", kind: Temperature } :: [52, 53, 54]
- DeviceNameKey { device: "mwocp68", name: "psu4mcu", kind: Speed } :: [63, 64]
- DeviceNameKey { device: "mwocp68", name: "psu5mcu", kind: Temperature } :: [65, 66, 67]
- DeviceNameKey { device: "mwocp68", name: "psu5mcu", kind: Speed } :: [76, 77]
There was a problem hiding this comment.
I didn't include the warning in this PR, I think it ends up being too noisy to be acceptable for now:
[Running 'cargo xtask dist app/psc/rev-c-dev.toml']
Compiling build-i2c v0.1.0 (/Users/james/oxide/hubris/build/i2c)
Compiling xtask v1.0.0 (/Users/james/oxide/hubris/build/xtask)
Finished `dev` profile [optimized + debuginfo] target(s) in 1.75s
Running `target/debug/xtask dist app/psc/rev-c-dev.toml`
building crate task-jefe
Finished `release` profile [optimized + debuginfo] target(s) in 0.12s
target/thumbv7em-none-eabihf/release/task-jefe -> target/psc-c-dev/dist/jefe.elf
building crate drv-stm32xx-sys
Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
target/thumbv7em-none-eabihf/release/drv-stm32xx-sys -> target/psc-c-dev/dist/sys.elf
building crate drv-stm32h7-rng
Finished `release` profile [optimized + debuginfo] target(s) in 0.12s
target/thumbv7em-none-eabihf/release/drv-stm32h7-rng -> target/psc-c-dev/dist/rng_driver.elf
building crate drv-stm32xx-i2c-server
Compiling build-i2c v0.1.0 (/Users/james/oxide/hubris/build/i2c)
Compiling drv-stm32xx-i2c-server v0.1.0 (/Users/james/oxide/hubris/drv/stm32xx-i2c-server)
Finished `release` profile [optimized + debuginfo] target(s) in 1.51s
target/thumbv7em-none-eabihf/release/drv-stm32xx-i2c-server -> target/psc-c-dev/dist/i2c_driver.elf
building crate task-packrat
Finished `release` profile [optimized + debuginfo] target(s) in 0.12s
target/thumbv7em-none-eabihf/release/task-packrat -> target/psc-c-dev/dist/packrat.elf
building crate drv-psc-seq-server
Compiling build-i2c v0.1.0 (/Users/james/oxide/hubris/build/i2c)
Compiling task-sensor-api v0.1.0 (/Users/james/oxide/hubris/task/sensor-api)
Compiling drv-local-vpd v0.1.0 (/Users/james/oxide/hubris/drv/local-vpd)
Compiling drv-psc-seq-server v0.1.0 (/Users/james/oxide/hubris/drv/psc-seq-server)
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Compiling task-power-api v0.1.0 (/Users/james/oxide/hubris/task/power-api)
Compiling drv-i2c-devices v0.1.0 (/Users/james/oxide/hubris/drv/i2c-devices)
Compiling drv-oxide-vpd v0.1.0 (/Users/james/oxide/hubris/drv/oxide-vpd)
Compiling ereports v0.1.0 (/Users/james/oxide/hubris/lib/ereports)
Compiling drv-packrat-vpd-loader v0.1.0 (/Users/james/oxide/hubris/drv/packrat-vpd-loader)
Finished `release` profile [optimized + debuginfo] target(s) in 3.67s
target/thumbv7em-none-eabihf/release/drv-psc-seq-server -> target/psc-c-dev/dist/sequencer.elf
building crate stm32h7-update-server
Finished `release` profile [optimized + debuginfo] target(s) in 0.12s
target/thumbv7em-none-eabihf/release/stm32h7-update-server -> target/psc-c-dev/dist/update_server.elf
building crate task-hiffy
Compiling task-hiffy v0.1.0 (/Users/james/oxide/hubris/task/hiffy)
Finished `release` profile [optimized + debuginfo] target(s) in 0.74s
target/thumbv7em-none-eabihf/release/task-hiffy -> target/psc-c-dev/dist/hiffy.elf
building crate task-validate
Compiling build-i2c v0.1.0 (/Users/james/oxide/hubris/build/i2c)
Compiling task-sensor-api v0.1.0 (/Users/james/oxide/hubris/task/sensor-api)
Compiling task-validate-api v0.1.0 (/Users/james/oxide/hubris/task/validate-api)
Compiling task-validate v0.1.0 (/Users/james/oxide/hubris/task/validate)
warning: task-validate-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Compiling task-power-api v0.1.0 (/Users/james/oxide/hubris/task/power-api)
Compiling drv-i2c-devices v0.1.0 (/Users/james/oxide/hubris/drv/i2c-devices)
Finished `release` profile [optimized + debuginfo] target(s) in 3.42s
target/thumbv7em-none-eabihf/release/task-validate -> target/psc-c-dev/dist/validate.elf
building crate task-net
Finished `release` profile [optimized + debuginfo] target(s) in 0.13s
target/thumbv7em-none-eabihf/release/task-net -> target/psc-c-dev/dist/net.elf
building crate drv-stm32h7-spi-server
Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
target/thumbv7em-none-eabihf/release/drv-stm32h7-spi-server -> target/psc-c-dev/dist/spi2_driver.elf
building crate task-control-plane-agent
Compiling task-validate-api v0.1.0 (/Users/james/oxide/hubris/task/validate-api)
Compiling task-control-plane-agent v0.1.0 (/Users/james/oxide/hubris/task/control-plane-agent)
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Compiling task-sensor-api v0.1.0 (/Users/james/oxide/hubris/task/sensor-api)
Compiling task-power-api v0.1.0 (/Users/james/oxide/hubris/task/power-api)
Compiling drv-i2c-devices v0.1.0 (/Users/james/oxide/hubris/drv/i2c-devices)
warning: task-validate-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
warning: task-control-plane-agent@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Finished `release` profile [optimized + debuginfo] target(s) in 4.18s
target/thumbv7em-none-eabihf/release/task-control-plane-agent -> target/psc-c-dev/dist/control_plane_agent.elf
building crate drv-stm32h7-sprot-server
Finished `release` profile [optimized + debuginfo] target(s) in 0.13s
target/thumbv7em-none-eabihf/release/drv-stm32h7-sprot-server -> target/psc-c-dev/dist/sprot.elf
building crate task-udpecho
Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
target/thumbv7em-none-eabihf/release/task-udpecho -> target/psc-c-dev/dist/udpecho.elf
building crate task-udpbroadcast
Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
target/thumbv7em-none-eabihf/release/task-udpbroadcast -> target/psc-c-dev/dist/udpbroadcast.elf
building crate drv-eeprom
Compiling drv-eeprom v0.1.0 (/Users/james/oxide/hubris/drv/eeprom)
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Compiling task-sensor-api v0.1.0 (/Users/james/oxide/hubris/task/sensor-api)
Compiling task-power-api v0.1.0 (/Users/james/oxide/hubris/task/power-api)
Compiling drv-i2c-devices v0.1.0 (/Users/james/oxide/hubris/drv/i2c-devices)
Finished `release` profile [optimized + debuginfo] target(s) in 1.70s
target/thumbv7em-none-eabihf/release/drv-eeprom -> target/psc-c-dev/dist/eeprom.elf
building crate task-vpd
Compiling task-vpd v0.1.0 (/Users/james/oxide/hubris/task/vpd)
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Finished `release` profile [optimized + debuginfo] target(s) in 1.30s
target/thumbv7em-none-eabihf/release/task-vpd -> target/psc-c-dev/dist/vpd.elf
building crate drv-user-leds
Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
target/thumbv7em-none-eabihf/release/drv-user-leds -> target/psc-c-dev/dist/user_leds.elf
building crate task-power
Compiling build-i2c v0.1.0 (/Users/james/oxide/hubris/build/i2c)
Compiling task-sensor-api v0.1.0 (/Users/james/oxide/hubris/task/sensor-api)
Compiling task-power v0.1.0 (/Users/james/oxide/hubris/task/power)
warning: task-power@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Compiling task-power-api v0.1.0 (/Users/james/oxide/hubris/task/power-api)
Compiling drv-i2c-devices v0.1.0 (/Users/james/oxide/hubris/drv/i2c-devices)
Finished `release` profile [optimized + debuginfo] target(s) in 3.62s
target/thumbv7em-none-eabihf/release/task-power -> target/psc-c-dev/dist/power.elf
building crate task-sensor
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Compiling task-sensor v0.1.0 (/Users/james/oxide/hubris/task/sensor)
Finished `release` profile [optimized + debuginfo] target(s) in 0.41s
target/thumbv7em-none-eabihf/release/task-sensor -> target/psc-c-dev/dist/sensor.elf
building crate task-sensor-polling
Compiling task-sensor-polling v0.1.0 (/Users/james/oxide/hubris/task/sensor-polling)
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
warning: task-sensor-polling@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Finished `release` profile [optimized + debuginfo] target(s) in 1.19s
target/thumbv7em-none-eabihf/release/task-sensor-polling -> target/psc-c-dev/dist/sensor_polling.elf
building crate drv-psc-psu-update
Compiling drv-psc-psu-update v0.1.0 (/Users/james/oxide/hubris/drv/psc-psu-update)
warning: task-sensor-api@0.1.0: The following sensors are duplicated with the same name. This is likely an error. See https://github.com/oxidecomputer/hubris/issues/2634 for details: (mwocp68:psu0mcu:TEMPERATURE): 3 instances, (mwocp68:psu0mcu:SPEED): 2 instances, (mwocp68:psu1mcu:TEMPERATURE): 3 instances, (mwocp68:psu1mcu:SPEED): 2 instances, (mwocp68:psu2mcu:TEMPERATURE): 3 instances, (mwocp68:psu2mcu:SPEED): 2 instances, (mwocp68:psu3mcu:TEMPERATURE): 3 instances, (mwocp68:psu3mcu:SPEED): 2 instances, (mwocp68:psu4mcu:TEMPERATURE): 3 instances, (mwocp68:psu4mcu:SPEED): 2 instances, (mwocp68:psu5mcu:TEMPERATURE): 3 instances, (mwocp68:psu5mcu:SPEED): 2 instances,
Finished `release` profile [optimized + debuginfo] target(s) in 1.19s
target/thumbv7em-none-eabihf/release/drv-psc-psu-update -> target/psc-c-dev/dist/psu_update.elf
building crate task-dump-agent
Finished `release` profile [optimized + debuginfo] target(s) in 0.12s
target/thumbv7em-none-eabihf/release/task-dump-agent -> target/psc-c-dev/dist/dump_agent.elf
building crate task-snitch
Finished `release` profile [optimized + debuginfo] target(s) in 0.10s
target/thumbv7em-none-eabihf/release/task-snitch -> target/psc-c-dev/dist/snitch.elf
building crate task-idle
Finished `release` profile [optimized + debuginfo] target(s) in 0.09s
target/thumbv7em-none-eabihf/release/task-idle -> target/psc-c-dev/dist/idle.elf
building crate task-udprpc
Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
target/thumbv7em-none-eabihf/release/task-udprpc -> target/psc-c-dev/dist/udprpc.elf
building crate task-framulator
warning: task-framulator v0.1.0 (/Users/james/oxide/hubris/task/framulator) ignoring invalid dependency `drv-stm32h7-spi-server` which is missing a lib target
Finished `release` profile [optimized + debuginfo] target(s) in 0.10s
We could potentially move the detection to task-sensor-polling so it only fires once instead of on every invocation of the build-i2c sensor disposition.
There was a problem hiding this comment.
I experimented with added the check as a warning, as seen here: #2634 (comment).
I do think we should fail loudly, but I would prefer to do that as a follow-on to this PR instead of bundling it here. I agree "look at the snapshot" is not a good workflow, but faithfully catching the defect is easier to see now. The current snapshot code makes this very easy to see:
Yeah, I agree with that; mostly, I was just trying to suggest that I don't think this totally fixes #2637 yet.
|
Ah, right, these are hash maps. Cool. I'll fix that. |
|
Is adding |

This covers the codegen output, as well as the returned
I2cSensorsDescription.#2645 added name mapping, but did not add snapshot coverage for the new functionality, and for some reason I didn't add a test case for
generate_sensorsin #2648.This closes the gap, and gives us even more snapshot output to love.