20 lines
1.1 KiB
C++
20 lines
1.1 KiB
C++
#include "../src/cli/cli.h"
|
|
#include <cassert>
|
|
#include <string>
|
|
int main() {
|
|
detz::cli::Parser p;
|
|
// golden --help contains every flag
|
|
std::string h = detz::cli::Parser::helpText();
|
|
for (auto f : {"--profile","--yes","--yolo","--auto","--continue","--debug","--debug-format","--env","--no-opencode","--update-models","--eval-retrieval","--stats-rag","--version","--cap-manifest","--cap-speak","--cap-cwd","--cap-model","--cap-permission-mode","--cap-max-turns","--cap ","--serve-mcp","--mcp-port","--mcp-bind","--telegram","--scheduler","--install","--install-telegram","--uninstall-telegram","--plexer-wrap","--mplex","--demo","--demo-shot","--tui","--tui-local","--theme"})
|
|
assert(h.find(f) != std::string::npos);
|
|
// parse smoke
|
|
const char* av[] = {"detz","--yes","--debug","--cap","resolve","foo"};
|
|
auto c = p.parse(6, (char**)av);
|
|
assert(c.opts.yes && c.opts.debug.value()=="file" && c.opts.cap && c.opts.cap->size()==2);
|
|
const char* bv[] = {"detz","--version"};
|
|
assert(p.parse(2,(char**)bv).run()==0);
|
|
const char* cv[] = {"detz"};
|
|
assert(p.parse(1,(char**)cv).name=="--help");
|
|
return 0;
|
|
}
|