Test case to validate update a list of metrics */
| 144 | |
| 145 | /* Test case to validate update a list of metrics */ |
| 146 | static int |
| 147 | test_metrics_update_values(void) |
| 148 | { |
| 149 | int err = 0; |
| 150 | const uint64_t value[REG_METRIC_COUNT] = {1, 2, 3, 4, 5, 6}; |
| 151 | |
| 152 | /* Successful Test: update metrics with first set */ |
| 153 | err = rte_metrics_update_values(RTE_METRICS_GLOBAL, 0, |
| 154 | &value[0], 1); |
| 155 | TEST_ASSERT(err >= 0, "%s, %d", __func__, __LINE__); |
| 156 | |
| 157 | /* Successful Test: update metrics with second set */ |
| 158 | err = rte_metrics_update_values(RTE_METRICS_GLOBAL, 1, |
| 159 | &value[1], 1); |
| 160 | TEST_ASSERT(err >= 0, "%s, %d", __func__, __LINE__); |
| 161 | |
| 162 | /* Successful Test: update metrics with third set */ |
| 163 | err = rte_metrics_update_values(RTE_METRICS_GLOBAL, 2, |
| 164 | &value[2], 4); |
| 165 | TEST_ASSERT(err >= 0, "%s, %d", __func__, __LINE__); |
| 166 | |
| 167 | /* Failed Test: Invalid count size */ |
| 168 | err = rte_metrics_update_values(RTE_METRICS_GLOBAL, |
| 169 | KEY, &value[0], RTE_DIM(value)); |
| 170 | TEST_ASSERT(err < 0, "%s, %d", __func__, __LINE__); |
| 171 | |
| 172 | /* Failed Test: Invalid port_id(lower value) and valid data */ |
| 173 | err = rte_metrics_update_values(-2, KEY, &value[0], RTE_DIM(value)); |
| 174 | TEST_ASSERT(err == -EINVAL, "%s, %d", __func__, __LINE__); |
| 175 | |
| 176 | /* Failed Test: Invalid port_id(higher value) and valid data */ |
| 177 | err = rte_metrics_update_values(39, 1, &value[0], RTE_DIM(value)); |
| 178 | TEST_ASSERT(err == -EINVAL, "%s, %d", __func__, __LINE__); |
| 179 | |
| 180 | /* Failed Test: Invalid array */ |
| 181 | err = rte_metrics_update_values(RTE_METRICS_GLOBAL, |
| 182 | KEY, NULL, RTE_DIM(value)); |
| 183 | TEST_ASSERT(err == -EINVAL, "%s, %d", __func__, __LINE__); |
| 184 | |
| 185 | return TEST_SUCCESS; |
| 186 | } |
| 187 | |
| 188 | /* Test to validate get metric name-key lookup table */ |
| 189 | static int |
nothing calls this directly
no test coverage detected