Add a test case for cam_get_device with sa(4) devices
sa(4) has some unique behavior that is special-cased in cam_get_device. The existing tests don't provide coverage for this special case. Reviewed by: ken MFC after: 3 weeks Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D13185
This commit is contained in:
parent
b0f662fed3
commit
512bd18da5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=326101
@ -129,6 +129,33 @@ ATF_TC_BODY(cam_get_device_positive_test, tc)
|
||||
ATF_REQUIRE(parsed_unit == expected_unit);
|
||||
}
|
||||
|
||||
/*
|
||||
* sa(4) uniquely creates nsa and esa device nodes for non-rewind operations
|
||||
* and eject-on-close operations. cam_get_device must special case these nodes
|
||||
* to always return the base device.
|
||||
*/
|
||||
ATF_TC_WITHOUT_HEAD(cam_get_device_sa_test);
|
||||
ATF_TC_BODY(cam_get_device_sa_test, tc)
|
||||
{
|
||||
char parsed_dev_name[DEV_IDLEN + 1];
|
||||
int parsed_unit;
|
||||
|
||||
ATF_REQUIRE_MSG(cam_get_device("nsa99", parsed_dev_name,
|
||||
nitems(parsed_dev_name), &parsed_unit) == 0,
|
||||
"cam_get_device failed");
|
||||
ATF_REQUIRE_STREQ(parsed_dev_name, "sa");
|
||||
ATF_REQUIRE(parsed_unit == 99);
|
||||
|
||||
strcpy(parsed_dev_name, "");
|
||||
parsed_unit = -1;
|
||||
|
||||
ATF_REQUIRE_MSG(cam_get_device("esa99", parsed_dev_name,
|
||||
nitems(parsed_dev_name), &parsed_unit) == 0,
|
||||
"cam_get_device failed");
|
||||
ATF_REQUIRE_STREQ(parsed_dev_name, "sa");
|
||||
ATF_REQUIRE(parsed_unit == 99);
|
||||
}
|
||||
|
||||
ATF_TC(cam_open_device_negative_test_O_RDONLY);
|
||||
ATF_TC_HEAD(cam_open_device_negative_test_O_RDONLY, tc)
|
||||
{
|
||||
@ -282,6 +309,7 @@ ATF_TP_ADD_TCS(tp)
|
||||
ATF_TP_ADD_TC(tp, cam_get_device_negative_test_nul_path);
|
||||
ATF_TP_ADD_TC(tp, cam_get_device_negative_test_root);
|
||||
ATF_TP_ADD_TC(tp, cam_get_device_positive_test);
|
||||
ATF_TP_ADD_TC(tp, cam_get_device_sa_test);
|
||||
ATF_TP_ADD_TC(tp, cam_open_device_negative_test_O_RDONLY);
|
||||
ATF_TP_ADD_TC(tp, cam_open_device_negative_test_nonexistent);
|
||||
ATF_TP_ADD_TC(tp, cam_open_device_negative_test_unprivileged);
|
||||
|
Loading…
Reference in New Issue
Block a user