1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#include <apt-pkg/cmndline.h>
#include <apt-pkg/configuration.h>
#include <string>
#include "assert.h"
class CLT: public CommandLine {
public:
std::string static AsString(const char * const * const argv,
unsigned int const argc) {
std::string const static conf = "Commandline::AsString";
_config->Clear(conf);
SaveInConfig(argc, argv);
return _config->Find(conf);
}
};
#define CMD(y,z) equals(CLT::AsString(argv, y), z);
int main() {
{
const char* const argv[] = {"apt-get", "install", "-sf"};
CMD(3, "apt-get install -sf");
}
{
const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Test"};
CMD(5, "apt-cache -s apt -so Debug::test=Test");
}
{
const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Das ist ein Test"};
CMD(5, "apt-cache -s apt -so Debug::test=\"Das ist ein Test\"");
}
{
const char* const argv[] = {"apt-cache", "-s", "apt", "--hallo", "test=1.0"};
CMD(5, "apt-cache -s apt --hallo test=1.0");
}
}
|