init: Add tests and document the new fnmatch behavior in ExternalFirmwareHandler.
Bug: N/A Test: atest CtsInitTestCases Change-Id: I232db8416318ba31ea3f78cc07f235d9a47efac4
This commit is contained in:
parent
22fdd0ae13
commit
19872d0156
2 changed files with 21 additions and 0 deletions
|
@ -130,6 +130,10 @@ For example
|
|||
Will launch `/vendor/bin/led_coeffs.bin` as the system user instead of serving the default firmware
|
||||
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
|
||||
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
|
||||
|
|
|
@ -103,6 +103,23 @@ int HandleBadPath(int argc, char** argv) {
|
|||
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 android
|
||||
|
||||
|
|
Loading…
Reference in a new issue