only:explicit error if attempting to write unknown smart pin

This commit is contained in:
Andrey 2023-12-25 17:40:18 -05:00
parent 3b5438fa0b
commit ab6011aa8b
2 changed files with 9 additions and 6 deletions

View File

@ -275,7 +275,8 @@ int gpiochips_writePad(brain_pin_e pin, int value) {
gpiochip *chip = gpiochip_find(pin);
if (!chip) {
criticalError("gpiochip not found %x", pin);
// todo: make readPad fail in a similar way?
criticalError("gpiochip not found for pin %d", pin);
return -108;
}

View File

@ -104,15 +104,17 @@ TEST(gpioext, testGpioExt) {
EXPECT_EQ(0x02, io_state);
/* try to access failed chip */
EXPECT_FALSE(gpiochips_writePad((Gpio)(chip3_base + 0), 0) >= 0);
EXPECT_FALSE(gpiochips_writePad((Gpio)(chip3_base + 1), 1) >= 0);
EXPECT_ANY_THROW(gpiochips_writePad((Gpio)(chip3_base + 0), 0));
EXPECT_ANY_THROW(gpiochips_writePad((Gpio)(chip3_base + 1), 1));
EXPECT_EQ(0, calls_to_failed_chip);
// todo: make readPad fail in a similar way?
/* read/write outside range */
EXPECT_TRUE(gpiochips_readPad((Gpio)(chip1_base - 1)) < 0);
EXPECT_TRUE(gpiochips_writePad((Gpio)(chip1_base - 1), 1) < 0);
EXPECT_ANY_THROW(gpiochips_writePad((Gpio)(chip1_base - 1), 1));
EXPECT_TRUE(gpiochips_readPad((Gpio)(chip3_base + 16)) < 0);
EXPECT_TRUE(gpiochips_writePad((Gpio)(chip3_base + 16), 1) < 0);
EXPECT_TRUE(gpiochips_readPad((Gpio)(chip3_base + 16)) < 0);
EXPECT_ANY_THROW(gpiochips_writePad((Gpio)(chip3_base + 16), 1));
}