Merge "init: Add tests and document the new fnmatch behavior in ExternalFirmwareHandler."
This commit is contained in:
commit
6939583deb
|
@ -130,6 +130,10 @@ For example
|
||||||
Will launch `/vendor/bin/led_coeffs.bin` as the system user instead of serving the default firmware
|
Will launch `/vendor/bin/led_coeffs.bin` as the system user instead of serving the default firmware
|
||||||
for `/devices/leds/red/firmware/coeffs.bin`.
|
for `/devices/leds/red/firmware/coeffs.bin`.
|
||||||
|
|
||||||
|
The `devpath` argument may include asterisks (`*`) to match multiple paths. For example, the string
|
||||||
|
`/dev/*/red` will match `/dev/leds/red` as well as `/dev/lights/red`. The pattern matching follows
|
||||||
|
the rules of the fnmatch() function.
|
||||||
|
|
||||||
Ueventd will provide the uevent `DEVPATH` and `FIRMWARE` to this external program on the environment
|
Ueventd will provide the uevent `DEVPATH` and `FIRMWARE` to this external program on the environment
|
||||||
via environment variables with the same names. Ueventd will use the string written to stdout as the
|
via environment variables with the same names. Ueventd will use the string written to stdout as the
|
||||||
new name of the firmware to load. It will still look for the new firmware in the list of firmware
|
new name of the firmware to load. It will still look for the new firmware in the list of firmware
|
||||||
|
|
|
@ -103,6 +103,23 @@ int HandleBadPath(int argc, char** argv) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(firmware_handler, Matching) {
|
||||||
|
ExternalFirmwareHandler h("/dev/path/a.bin", getuid(), "/test");
|
||||||
|
ASSERT_TRUE(h.match("/dev/path/a.bin"));
|
||||||
|
ASSERT_FALSE(h.match("/dev/path/a.bi"));
|
||||||
|
|
||||||
|
h = ExternalFirmwareHandler("/dev/path/a.*", getuid(), "/test");
|
||||||
|
ASSERT_TRUE(h.match("/dev/path/a.bin"));
|
||||||
|
ASSERT_TRUE(h.match("/dev/path/a.bix"));
|
||||||
|
ASSERT_FALSE(h.match("/dev/path/b.bin"));
|
||||||
|
|
||||||
|
h = ExternalFirmwareHandler("/dev/*/a.bin", getuid(), "/test");
|
||||||
|
ASSERT_TRUE(h.match("/dev/path/a.bin"));
|
||||||
|
ASSERT_TRUE(h.match("/dev/other/a.bin"));
|
||||||
|
ASSERT_FALSE(h.match("/dev/other/c.bin"));
|
||||||
|
ASSERT_FALSE(h.match("/dev/path/b.bin"));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace init
|
} // namespace init
|
||||||
} // namespace android
|
} // namespace android
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue