/* * TODO: Parse configuration file. */ struct ft_series *fts_load(char *filename) { if (filename) printf("Using static tests. Ignoring config file %s\n", filename); test_series.sets = test_sets; test_series.nsets = sizeof(test_sets) / sizeof(test_sets[0]); for (fts_start(&test_series, 0); !fts_end(&test_series, 0); fts_next(&test_series)) test_series.test_count++; fts_start(&test_series, 0); printf("Test configurations loaded: %d\n", test_series.test_count); return &test_series; }
static int ft_fw_client(void) { struct fi_info *hints, *info; int ret; hints = fi_allocinfo(); if (!hints) return -FI_ENOMEM; for (fts_start(series, test_start_index); !fts_end(series, test_end_index); fts_next(series)) { fts_cur_info(series, &test_info); ft_fw_convert_info(hints, &test_info); printf("Starting test %d / %d\n", test_info.test_index, series->test_count); ret = fi_getinfo(FT_FIVERSION, ft_strptr(test_info.node), ft_strptr(test_info.service), 0, hints, &info); if (ret) { FT_PRINTERR("fi_getinfo", ret); } else { ret = ft_fw_process_list(hints, info); fi_freeinfo(info); } if (ret) { fprintf(stderr, "Node: %s\nService: %s\n", test_info.node, test_info.service); fprintf(stderr, "%s\n", fi_tostr(hints, FI_TYPE_INFO)); } printf("Ending test %d / %d, result: %s\n", test_info.test_index, series->test_count, fi_strerror(-ret)); results[ft_fw_result_index(-ret)]++; } fi_freeinfo(hints); return 0; }