apiriadmin / APIRI

APIRI Repository
GNU Lesser General Public License v2.1
4 stars 11 forks source link

Querying for FIO devices requires the device to have already been registered for and enabled #50

Open collumb-siemens opened 7 years ago

collumb-siemens commented 7 years ago

Expected behavior and actual behavior.

From the standard, it does not seem like you should need to register the device already and enabled it just to query whether it is there. But that is definitely the case in the current implementation. There is already a "TBD" comment in fioman_query_fiod to do it in the future.

Since the only argument to query is an fio_app_handle and then port information it doesn't make sense that you have to register and get a fio_dev_handle.

The current behavior also seems to directly contradict the requirement APIR3.1.2.[22].

If the API does not have the communications port open at the time of the query and it is necessary for the API to open the communications port to determine the Field I/O Device, the API shall close the communications port after the query is completed.

Steps to reproduce the problem.

Write a test app to query all devices just to see what fio types are out there. You will not be able to without first registering and enabling them first.

Specifications (e.g. version of the project, Linux version, and hardware specifications).

Using latest revision in master branch.

gallagjm commented 7 years ago

Thanks for reporting this. In the APIVS project, the fio_query_fiod() functionality was tested in test case APIRI.TCS.3010. I am not sure how that could pass, but I do see from the source code that the function is incomplete. Also, there does not seem to be a test case specifically covering APIR3.1.2[22].