On Wednesday 18 January 2017 12:58 PM, Thomas Monjalon wrote:
2017-01-18 06:56, Shreyansh Jain:
+/* Bus list exposed */
+extern struct rte_bus_list rte_bus_list;
I think it should be possible to write a test without the real list
of registered bus.
Yes, it is possible. I just modeled it on test_pci assuming that is a kind of
expected/standard. But, it seems probably it is not. I will change the tests.
After sending out this mail I realized the real reason for using the actual
lists. Functions like rte_eal_pci_register (for PCI) or rte_bus_register (for
Bus), use global lists for registration. Test cases calls these functions for
registering dummy device/bus.
Why access to the bus list is externally required?
I feel there is something wrong here. It should be private in PCI.
When I stated rte_eal_pci_register required global lists, I meant in
previous code base (pre bus), the pci_device_list and pci_driver_list
were public because registration function used them and test cases used
the registration function.
One way is to not worry about adding these test/dummy devices/buses to original
list as they would be unregistered anyway. But, risk is of impacting running
list assuming multiple cases need to be run from same application/binary
context.
Another way is to rewrite these functions locally in test case, but that also
means not testing these global registration/de-registration functions.
Former method would continue to have symbols exported. Later is not testing
some entry/exit functions of a sub-system.
You still interested in this change?
I would prefer you do not lose time with testing at this stage.
Ok. I will leave it as it is for now.