Test several valid cases */
| 138 | |
| 139 | /* Test several valid cases */ |
| 140 | static int |
| 141 | test_valid_devargs(void) |
| 142 | { |
| 143 | static const struct devargs_case list[] = { |
| 144 | /* Global devargs syntax: */ |
| 145 | { "bus=pci", |
| 146 | 1, 0, 0, "pci", NULL, NULL}, |
| 147 | { "class=eth", |
| 148 | 0, 1, 0, NULL, NULL, "eth" }, |
| 149 | { "bus=pci,addr=1:2.3/class=eth/driver=abc,k0=v0", |
| 150 | 2, 1, 2, "pci", "0000:01:02.3", "eth" }, |
| 151 | { "bus=vdev,name=/dev/file/name/class=eth", |
| 152 | 2, 1, 0, "vdev", "/dev/file/name", "eth" }, |
| 153 | { "bus=vdev,name=/class/bus/path/class=eth", |
| 154 | 2, 1, 0, "vdev", "/class/bus/path", "eth" }, |
| 155 | { "bus=vdev,name=///dblslsh/class=eth", |
| 156 | 2, 1, 0, "vdev", "///dblslsh", "eth" }, |
| 157 | /* Legacy devargs syntax: */ |
| 158 | { "1:2.3", 0, 0, 0, |
| 159 | "pci", "1:2.3", NULL }, |
| 160 | { "pci:1:2.3,k0=v0", |
| 161 | 0, 0, 1, "pci", "1:2.3", NULL }, |
| 162 | }; |
| 163 | static const struct devargs_case legacy_ring_list[] = { |
| 164 | { "net_ring0", |
| 165 | 0, 0, 0, "vdev", "net_ring0", NULL }, |
| 166 | { "net_ring0,iface=test,path=/class/bus/,queues=1", |
| 167 | 0, 0, 3, "vdev", "net_ring0", NULL }, |
| 168 | }; |
| 169 | struct rte_bus *vdev_bus = rte_bus_find_by_name("vdev"); |
| 170 | int ret; |
| 171 | |
| 172 | ret = test_valid_devargs_cases(list, RTE_DIM(list)); |
| 173 | if (vdev_bus != NULL && vdev_bus->parse("net_ring0", NULL) == 0) |
| 174 | /* Ring vdev driver enabled. */ |
| 175 | ret |= test_valid_devargs_cases(legacy_ring_list, |
| 176 | RTE_DIM(legacy_ring_list)); |
| 177 | return ret; |
| 178 | } |
| 179 | |
| 180 | /* Test several invalid cases */ |
| 181 | static int |
no test coverage detected