|
|
@@ -691,7 +691,7 @@ void perm_count(
|
|
|
|
|
|
// operations we can do
|
|
|
static void summary(void) {
|
|
|
- printf("%-36s %7s %7s %7s %11s\n",
|
|
|
+ printf("%-23s %7s %7s %7s %11s\n",
|
|
|
"", "flags", "suites", "cases", "perms");
|
|
|
size_t suites = 0;
|
|
|
size_t cases = 0;
|
|
|
@@ -735,7 +735,7 @@ static void summary(void) {
|
|
|
sprintf(flag_buf, "%s%s",
|
|
|
(flags & TEST_REENTRANT) ? "r" : "",
|
|
|
(!flags) ? "-" : "");
|
|
|
- printf("%-36s %7s %7zu %7zu %11s\n",
|
|
|
+ printf("%-23s %7s %7zu %7zu %11s\n",
|
|
|
"TOTAL",
|
|
|
flag_buf,
|
|
|
suites,
|
|
|
@@ -744,8 +744,18 @@ static void summary(void) {
|
|
|
}
|
|
|
|
|
|
static void list_suites(void) {
|
|
|
- printf("%-36s %7s %7s %11s\n", "suite", "flags", "cases", "perms");
|
|
|
+ // at least size so that names fit
|
|
|
+ unsigned name_width = 23;
|
|
|
+ for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
+ size_t len = strlen(test_suites[i].name);
|
|
|
+ if (len > name_width) {
|
|
|
+ name_width = len;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ name_width = 4*((name_width+1+4-1)/4)-1;
|
|
|
|
|
|
+ printf("%-*s %7s %7s %11s\n",
|
|
|
+ name_width, "suite", "flags", "cases", "perms");
|
|
|
for (size_t t = 0; t < test_id_count; t++) {
|
|
|
for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
test_define_suite(&test_suites[i]);
|
|
|
@@ -786,7 +796,8 @@ static void list_suites(void) {
|
|
|
sprintf(flag_buf, "%s%s",
|
|
|
(test_suites[i].flags & TEST_REENTRANT) ? "r" : "",
|
|
|
(!test_suites[i].flags) ? "-" : "");
|
|
|
- printf("%-36s %7s %7zu %11s\n",
|
|
|
+ printf("%-*s %7s %7zu %11s\n",
|
|
|
+ name_width,
|
|
|
test_suites[i].name,
|
|
|
flag_buf,
|
|
|
cases,
|
|
|
@@ -796,8 +807,19 @@ static void list_suites(void) {
|
|
|
}
|
|
|
|
|
|
static void list_cases(void) {
|
|
|
- printf("%-36s %7s %11s\n", "case", "flags", "perms");
|
|
|
+ // at least size so that names fit
|
|
|
+ unsigned name_width = 23;
|
|
|
+ for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
+ for (size_t j = 0; j < test_suites[i].case_count; j++) {
|
|
|
+ size_t len = strlen(test_suites[i].cases[j].name);
|
|
|
+ if (len > name_width) {
|
|
|
+ name_width = len;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ name_width = 4*((name_width+1+4-1)/4)-1;
|
|
|
|
|
|
+ printf("%-*s %7s %11s\n", name_width, "case", "flags", "perms");
|
|
|
for (size_t t = 0; t < test_id_count; t++) {
|
|
|
for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
test_define_suite(&test_suites[i]);
|
|
|
@@ -831,7 +853,8 @@ static void list_cases(void) {
|
|
|
? "r" : "",
|
|
|
(!test_suites[i].cases[j].flags)
|
|
|
? "-" : "");
|
|
|
- printf("%-36s %7s %11s\n",
|
|
|
+ printf("%-*s %7s %11s\n",
|
|
|
+ name_width,
|
|
|
test_suites[i].cases[j].name,
|
|
|
flag_buf,
|
|
|
perm_buf);
|
|
|
@@ -841,8 +864,17 @@ static void list_cases(void) {
|
|
|
}
|
|
|
|
|
|
static void list_suite_paths(void) {
|
|
|
- printf("%-36s %s\n", "suite", "path");
|
|
|
+ // at least size so that names fit
|
|
|
+ unsigned name_width = 23;
|
|
|
+ for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
+ size_t len = strlen(test_suites[i].name);
|
|
|
+ if (len > name_width) {
|
|
|
+ name_width = len;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ name_width = 4*((name_width+1+4-1)/4)-1;
|
|
|
|
|
|
+ printf("%-*s %s\n", name_width, "suite", "path");
|
|
|
for (size_t t = 0; t < test_id_count; t++) {
|
|
|
for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
size_t cases = 0;
|
|
|
@@ -856,6 +888,8 @@ static void list_suite_paths(void) {
|
|
|
test_suites[i].cases[j].name) == 0)) {
|
|
|
continue;
|
|
|
}
|
|
|
+
|
|
|
+ cases += 1;
|
|
|
}
|
|
|
|
|
|
// no tests found?
|
|
|
@@ -863,7 +897,8 @@ static void list_suite_paths(void) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- printf("%-36s %s\n",
|
|
|
+ printf("%-*s %s\n",
|
|
|
+ name_width,
|
|
|
test_suites[i].name,
|
|
|
test_suites[i].path);
|
|
|
}
|
|
|
@@ -871,8 +906,19 @@ static void list_suite_paths(void) {
|
|
|
}
|
|
|
|
|
|
static void list_case_paths(void) {
|
|
|
- printf("%-36s %s\n", "case", "path");
|
|
|
+ // at least size so that names fit
|
|
|
+ unsigned name_width = 23;
|
|
|
+ for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
+ for (size_t j = 0; j < test_suites[i].case_count; j++) {
|
|
|
+ size_t len = strlen(test_suites[i].cases[j].name);
|
|
|
+ if (len > name_width) {
|
|
|
+ name_width = len;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ name_width = 4*((name_width+1+4-1)/4)-1;
|
|
|
|
|
|
+ printf("%-*s %s\n", name_width, "case", "path");
|
|
|
for (size_t t = 0; t < test_id_count; t++) {
|
|
|
for (size_t i = 0; i < TEST_SUITE_COUNT; i++) {
|
|
|
for (size_t j = 0; j < test_suites[i].case_count; j++) {
|
|
|
@@ -885,7 +931,8 @@ static void list_case_paths(void) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- printf("%-36s %s\n",
|
|
|
+ printf("%-*s %s\n",
|
|
|
+ name_width,
|
|
|
test_suites[i].cases[j].name,
|
|
|
test_suites[i].cases[j].path);
|
|
|
}
|
|
|
@@ -1139,16 +1186,27 @@ const test_geometry_t *test_geometries = builtin_geometries;
|
|
|
size_t test_geometry_count = 5;
|
|
|
|
|
|
static void list_geometries(void) {
|
|
|
+ // at least size so that names fit
|
|
|
+ unsigned name_width = 23;
|
|
|
+ for (size_t g = 0; builtin_geometries[g].name; g++) {
|
|
|
+ size_t len = strlen(builtin_geometries[g].name);
|
|
|
+ if (len > name_width) {
|
|
|
+ name_width = len;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ name_width = 4*((name_width+1+4-1)/4)-1;
|
|
|
+
|
|
|
// yes we do need to define a suite, this does a bit of bookeeping
|
|
|
// such as setting up the define cache
|
|
|
test_define_suite(&(const struct test_suite){0});
|
|
|
|
|
|
- printf("%-24s %7s %7s %7s %7s %11s\n",
|
|
|
- "geometry", "read", "prog", "erase", "count", "size");
|
|
|
+ printf("%-*s %7s %7s %7s %7s %11s\n",
|
|
|
+ name_width, "geometry", "read", "prog", "erase", "count", "size");
|
|
|
for (size_t g = 0; builtin_geometries[g].name; g++) {
|
|
|
test_define_geometry(&builtin_geometries[g]);
|
|
|
test_define_flush();
|
|
|
- printf("%-24s %7ju %7ju %7ju %7ju %11ju\n",
|
|
|
+ printf("%-*s %7ju %7ju %7ju %7ju %11ju\n",
|
|
|
+ name_width,
|
|
|
builtin_geometries[g].name,
|
|
|
READ_SIZE,
|
|
|
PROG_SIZE,
|
|
|
@@ -1669,18 +1727,29 @@ const test_powerloss_t *test_powerlosses = (const test_powerloss_t[]){
|
|
|
size_t test_powerloss_count = 1;
|
|
|
|
|
|
static void list_powerlosses(void) {
|
|
|
- printf("%-24s %s\n", "scenario", "description");
|
|
|
+ // at least size so that names fit
|
|
|
+ unsigned name_width = 23;
|
|
|
+ for (size_t i = 0; builtin_powerlosses[i].name; i++) {
|
|
|
+ size_t len = strlen(builtin_powerlosses[i].name);
|
|
|
+ if (len > name_width) {
|
|
|
+ name_width = len;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ name_width = 4*((name_width+1+4-1)/4)-1;
|
|
|
+
|
|
|
+ printf("%-*s %s\n", name_width, "scenario", "description");
|
|
|
size_t i = 0;
|
|
|
for (; builtin_powerlosses[i].name; i++) {
|
|
|
- printf("%-24s %s\n",
|
|
|
+ printf("%-*s %s\n",
|
|
|
+ name_width,
|
|
|
builtin_powerlosses[i].name,
|
|
|
builtin_powerlosses_help[i]);
|
|
|
}
|
|
|
|
|
|
// a couple more options with special parsing
|
|
|
- printf("%-24s %s\n", "1,2,3", builtin_powerlosses_help[i+0]);
|
|
|
- printf("%-24s %s\n", "{1,2,3}", builtin_powerlosses_help[i+1]);
|
|
|
- printf("%-24s %s\n", ":1248g1", builtin_powerlosses_help[i+2]);
|
|
|
+ printf("%-*s %s\n", name_width, "1,2,3", builtin_powerlosses_help[i+0]);
|
|
|
+ printf("%-*s %s\n", name_width, "{1,2,3}", builtin_powerlosses_help[i+1]);
|
|
|
+ printf("%-*s %s\n", name_width, ":1248g1", builtin_powerlosses_help[i+2]);
|
|
|
}
|
|
|
|
|
|
|