Lines Matching +full:sync +full:- +full:branches
5 * SPDX-License-Identifier: BSD-3-Clause
50 return &p_[(count_-1)*size]; in mappend()
53 // a quick self-terminating text-safe varint scheme
58 x = -x; in leb16_print()
63 printf("%c", (nibble < 10) ? '0'+nibble : 'a'+nibble-10); in leb16_print()
87 nibble = nibble - '0'; in leb16_parse()
89 nibble = nibble - 'a' + 10; in leb16_parse()
106 return neg ? -x : x; in leb16_parse()
131 ((size_t)(&__stop__bench_suites - &__start__bench_suites))
260 exit(-1); in bench_define()
267 (bench_define_cache_count+(8*sizeof(unsigned))-1) in bench_define_flush()
276 geometry->defines, BENCH_GEOMETRY_DEFINE_COUNT}; in bench_define_geometry()
297 suite->define_names, suite->define_count}; in bench_define_suite()
300 if (lfs_max(suite->define_count, BENCH_IMPLICIT_DEFINE_COUNT) in bench_define_suite()
304 lfs_max(suite->define_count, BENCH_IMPLICIT_DEFINE_COUNT)); in bench_define_suite()
308 (ncount+(8*sizeof(unsigned))-1) in bench_define_suite()
321 suite->define_count, in bench_define_suite()
355 suite->define_count, in bench_define_suite()
382 if (case_->defines) { in bench_define_perm()
384 case_->defines + perm*suite->define_count, in bench_define_perm()
385 suite->define_count}; in bench_define_perm()
424 size_t bench_step_stop = -1;
466 if (now - bench_trace_time < (1000*1000*1000) / bench_trace_freq) { in bench_trace()
480 if (now - bench_trace_open_time < 100*1000*1000) { in bench_trace()
487 if (strcmp(bench_trace_path, "-") == 0) { in bench_trace()
600 bench_readed += readed - bench_last_readed; in bench_stop()
601 bench_proged += proged - bench_last_proged; in bench_stop()
602 bench_erased += erased - bench_last_erased; in bench_stop()
612 printf("%s:", case_->name); in perm_printid()
615 suite->define_count, in perm_printid()
627 struct bench_seen_branch *branches; member
647 suite->define_count, in bench_seen_insert()
655 for (size_t i = 0; i < seen->branch_count; i++) { in bench_seen_insert()
656 if (seen->branches[i].define == define) { in bench_seen_insert()
657 branch = &seen->branches[i]; in bench_seen_insert()
666 (void**)&seen->branches, in bench_seen_insert()
668 &seen->branch_count, in bench_seen_insert()
669 &seen->branch_capacity); in bench_seen_insert()
670 branch->define = define; in bench_seen_insert()
671 branch->branch = (bench_seen_t){NULL, 0, 0}; in bench_seen_insert()
674 seen = &branch->branch; in bench_seen_insert()
681 for (size_t i = 0; i < seen->branch_count; i++) { in bench_seen_cleanup()
682 bench_seen_cleanup(&seen->branches[i].branch); in bench_seen_cleanup()
684 free(seen->branches); in bench_seen_cleanup()
715 for (size_t k = 0; k < case_->permutations; k++) { in case_forperm()
757 state->total += 1; in perm_count()
759 if (case_->filter && !case_->filter()) { in perm_count()
763 state->filtered += 1; in perm_count()
769 printf("%-23s %7s %7s %7s %11s\n", in summary()
810 (!flags) ? "-" : ""); in summary()
811 printf("%-23s %7s %7zu %7zu %11s\n", in summary()
828 name_width = 4*((name_width+1+4-1)/4)-1; in list_suites()
830 printf("%-*s %7s %7s %11s\n", in list_suites()
869 (!bench_suites[i].flags) ? "-" : ""); in list_suites()
870 printf("%-*s %7s %7zu %11s\n", in list_suites()
891 name_width = 4*((name_width+1+4-1)/4)-1; in list_cases()
893 printf("%-*s %7s %11s\n", name_width, "case", "flags", "perms"); in list_cases()
924 ? "-" : ""); in list_cases()
925 printf("%-*s %7s %11s\n", in list_cases()
944 name_width = 4*((name_width+1+4-1)/4)-1; in list_suite_paths()
946 printf("%-*s %s\n", name_width, "suite", "path"); in list_suite_paths()
969 printf("%-*s %s\n", in list_suite_paths()
988 name_width = 4*((name_width+1+4-1)/4)-1; in list_case_paths()
990 printf("%-*s %s\n", name_width, "case", "path"); in list_case_paths()
1003 printf("%-*s %s\n", in list_case_paths()
1032 for (size_t i = 0; i < defines->define_count; i++) { in list_defines_add()
1033 if (strcmp(defines->defines[i].name, name) == 0) { in list_defines_add()
1035 for (size_t j = 0; j < defines->defines[i].value_count; j++) { in list_defines_add()
1036 if (defines->defines[i].values[j] == value) { in list_defines_add()
1042 (void**)&defines->defines[i].values, in list_defines_add()
1044 &defines->defines[i].value_count, in list_defines_add()
1045 &defines->defines[i].value_capacity) = value; in list_defines_add()
1053 (void**)&defines->defines, in list_defines_add()
1055 &defines->define_count, in list_defines_add()
1056 &defines->define_capacity); in list_defines_add()
1057 define->name = name; in list_defines_add()
1058 define->values = malloc(sizeof(intmax_t)); in list_defines_add()
1059 define->values[0] = value; in list_defines_add()
1060 define->value_count = 1; in list_defines_add()
1061 define->value_capacity = 1; in list_defines_add()
1074 d < lfs_max(suite->define_count, in perm_list_defines()
1094 d < lfs_max(suite->define_count, in perm_list_permutation_defines()
1138 if (j != defines.defines[i].value_count-1) { in list_defines()
1184 if (j != defines.defines[i].value_count-1) { in list_permutation_defines()
1220 if (j != defines.defines[i].value_count-1) { in list_implicit_defines()
1258 name_width = 4*((name_width+1+4-1)/4)-1; in list_geometries()
1264 printf("%-*s %7s %7s %7s %7s %11s\n", in list_geometries()
1269 printf("%-*s %7ju %7ju %7ju %7ju %11ju\n", in list_geometries()
1294 && (bench_step-bench_step_start) % bench_step_step == 0)) { in perm_run()
1301 if (case_->filter && !case_->filter()) { in perm_run()
1316 .sync = lfs_emubd_sync, in perm_run()
1343 exit(-1); in perm_run()
1353 case_->run(&cfg); in perm_run()
1367 exit(-1); in perm_run()
1433 {"list-suites", no_argument, NULL, OPT_LIST_SUITES},
1434 {"list-cases", no_argument, NULL, OPT_LIST_CASES},
1435 {"list-suite-paths", no_argument, NULL, OPT_LIST_SUITE_PATHS},
1436 {"list-case-paths", no_argument, NULL, OPT_LIST_CASE_PATHS},
1437 {"list-defines", no_argument, NULL, OPT_LIST_DEFINES},
1438 {"list-permutation-defines",
1440 {"list-implicit-defines",
1442 {"list-geometries", no_argument, NULL, OPT_LIST_GEOMETRIES},
1448 {"trace-backtrace", no_argument, NULL, OPT_TRACE_BACKTRACE},
1449 {"trace-period", required_argument, NULL, OPT_TRACE_PERIOD},
1450 {"trace-freq", required_argument, NULL, OPT_TRACE_FREQ},
1451 {"read-sleep", required_argument, NULL, OPT_READ_SLEEP},
1452 {"prog-sleep", required_argument, NULL, OPT_PROG_SLEEP},
1453 {"erase-sleep", required_argument, NULL, OPT_ERASE_SLEEP},
1464 "List all defines in this bench-runner.",
1465 "List explicit defines in this bench-runner.",
1466 "List implicit defines in this bench-runner.",
1469 "Comma-separated list of disk geometries to bench.",
1470 "Comma-separated range of bench permutations to run (start,stop,step).",
1503 indent = printf(" -%c, --%s ", in main()
1507 indent = printf(" --%s ", in main()
1512 indent = printf(" -%c %s, --%s %s ", in main()
1518 indent = printf(" --%s %s ", in main()
1524 // a quick, hacky, byte-level method for text wrapping in main()
1529 (int)(24-1-indent), in main()
1593 override->name = optarg; in main()
1596 // parse comma-separated permutations in main()
1598 override->defines = NULL; in main()
1599 override->permutations = 0; in main()
1614 intmax_t stop = -1; in main()
1631 stop = -1; in main()
1671 (void**)&override->defines, in main()
1673 &override->permutations, in main()
1684 (void**)&override->defines, in main()
1686 &override->permutations, in main()
1697 assert(override->permutations > 0); in main()
1702 exit(-1); in main()
1738 // comma-separated read/prog/erase/count in main()
1764 geometry->defines[READ_SIZE_i] in main()
1766 geometry->defines[PROG_SIZE_i] in main()
1768 geometry->defines[ERASE_SIZE_i] in main()
1771 geometry->defines[PROG_SIZE_i] in main()
1773 geometry->defines[ERASE_SIZE_i] in main()
1776 geometry->defines[ERASE_SIZE_i] in main()
1780 geometry->defines[ERASE_COUNT_i] in main()
1787 // leb16-encoded read/prog/erase/count in main()
1808 geometry->defines[READ_SIZE_i] in main()
1810 geometry->defines[PROG_SIZE_i] in main()
1812 geometry->defines[ERASE_SIZE_i] in main()
1815 geometry->defines[PROG_SIZE_i] in main()
1817 geometry->defines[ERASE_SIZE_i] in main()
1820 geometry->defines[ERASE_SIZE_i] in main()
1824 geometry->defines[ERASE_COUNT_i] in main()
1835 exit(-1); in main()
1852 bench_step_stop = -1; in main()
1869 bench_step_stop = -1; in main()
1899 exit(-1); in main()
1914 fprintf(stderr, "error: invalid trace-period: %s\n", optarg); in main()
1915 exit(-1); in main()
1923 fprintf(stderr, "error: invalid trace-freq: %s\n", optarg); in main()
1924 exit(-1); in main()
1932 fprintf(stderr, "error: invalid read-sleep: %s\n", optarg); in main()
1933 exit(-1); in main()
1942 fprintf(stderr, "error: invalid prog-sleep: %s\n", optarg); in main()
1943 exit(-1); in main()
1952 fprintf(stderr, "error: invalid erase-sleep: %s\n", optarg); in main()
1953 exit(-1); in main()
1959 case -1: in main()
1963 exit(-1); in main()
1995 if (name_len > 5 && strcmp(&name[name_len-5], ".toml") == 0) { in main()
1996 name[name_len-5] = '\0'; in main()
2016 (ncount-define_count)*sizeof(bench_define_t)); in main()