int32_t val32{0}; int16_t val16{0}; int8_t val8{0}; int64_t val64{0}; uint32_t uval32{0}; uint16_t uval16{0}; uint8_t uval8{0}; uint64_t uval64{0}; std::atomic atomicval64{0}; std::atomic atomicuval64{0}; double v1{0}; float v2{0}; std::vector vv1; std::vector vstr; std::vector >
| 45 | std::atomic<bool> flagAtomic{false}; |
| 46 | */ |
| 47 | std::shared_ptr<CLI::App> FuzzApp::generateApp() { |
| 48 | auto fApp = std::make_shared<CLI::App>("fuzzing App", "fuzzer"); |
| 49 | fApp->set_config("--config"); |
| 50 | fApp->set_help_all_flag("--help-all"); |
| 51 | fApp->add_flag("-a,--flag"); |
| 52 | fApp->add_flag("-b,--flag2,!--nflag2", flag1); |
| 53 | fApp->add_flag("-c{34},--flag3{1}", flagCnt)->disable_flag_override(); |
| 54 | fApp->add_flag("-e,--flagA", flagAtomic); |
| 55 | fApp->add_flag("--atd", doubleAtomic); |
| 56 | |
| 57 | fApp->add_option("-d,--opt1", val8); |
| 58 | fApp->add_option("--opt2", val16); |
| 59 | fApp->add_option("--opt3", val32); |
| 60 | fApp->add_option("--opt4", val64); |
| 61 | |
| 62 | fApp->add_option("--opt5", uval8); |
| 63 | fApp->add_option("--opt6", uval16); |
| 64 | fApp->add_option("--opt7", uval32); |
| 65 | fApp->add_option("--opt8", uval64); |
| 66 | |
| 67 | fApp->add_option("--aopt1", atomicval64); |
| 68 | fApp->add_option("--aopt2", atomicuval64); |
| 69 | |
| 70 | fApp->add_option("--dopt1", v1); |
| 71 | fApp->add_option("--dopt2", v2); |
| 72 | |
| 73 | fApp->add_option("--cv3", cv3); |
| 74 | fApp->add_option("--cv4", cv4); |
| 75 | |
| 76 | auto *vgroup = fApp->add_option_group("vectors"); |
| 77 | |
| 78 | vgroup->add_option("--vopt1", vv1); |
| 79 | vgroup->add_option("--vopt2", vvs)->inject_separator(); |
| 80 | vgroup->add_option("--vopt3", vstr); |
| 81 | vgroup->add_option("--vopt4", vecvecd)->inject_separator(); |
| 82 | |
| 83 | fApp->add_option("--oopt1", od1); |
| 84 | fApp->add_option("--oopt2", ods); |
| 85 | fApp->add_option("--ovopt", ovs); |
| 86 | |
| 87 | fApp->add_option("--tup1", p1); |
| 88 | fApp->add_option("--tup2", t1); |
| 89 | fApp->add_option("--tup4", tcomplex); |
| 90 | vgroup->add_option("--vtup", vectup); |
| 91 | |
| 92 | fApp->add_option("--dwrap", dwrap); |
| 93 | fApp->add_option("--iwrap", iwrap); |
| 94 | fApp->add_option("--swrap", swrap); |
| 95 | // file checks |
| 96 | fApp->add_option("--dexists")->check(ExistingDirectory); |
| 97 | fApp->add_option("--fexists")->check(ExistingFile); |
| 98 | fApp->add_option("--fnexists")->check(NonexistentPath); |
| 99 | |
| 100 | auto *sub = fApp->add_subcommand("sub1"); |
| 101 | |
| 102 | sub->add_option("--sopt2", val16)->check(Range(1, 10)); |
| 103 | sub->add_option("--sopt3", val32)->check(PositiveNumber); |
| 104 | sub->add_option("--sopt4", val64)->check(NonNegativeNumber); |
no test coverage detected