From 062cd07342edc2b003555e90dd2cee0514b9f64a Mon Sep 17 00:00:00 2001 From: Bardur Arantsson Date: Mon, 23 Feb 2015 09:11:55 +0100 Subject: Add BanditCpp 1.1.4 test harness --- vendor/bandit/specs/util/argv_helper.h | 62 ++++++++++++++++++++++++++++++++++ vendor/bandit/specs/util/util.h | 6 ++++ 2 files changed, 68 insertions(+) create mode 100644 vendor/bandit/specs/util/argv_helper.h create mode 100644 vendor/bandit/specs/util/util.h (limited to 'vendor/bandit/specs/util') diff --git a/vendor/bandit/specs/util/argv_helper.h b/vendor/bandit/specs/util/argv_helper.h new file mode 100644 index 00000000..4e92e725 --- /dev/null +++ b/vendor/bandit/specs/util/argv_helper.h @@ -0,0 +1,62 @@ +#ifndef BANDIT_SPECS_ARGV_HELPER_H +#define BANDIT_SPECS_ARGV_HELPER_H + +#include + +namespace bandit { namespace specs { namespace util { + + // + // main() is supposed to receive its arguments as a non const 'char* argv[]'. + // This is a pain to create for each test. It's a whole lot easier to create + // a 'const char* argv[]' construct. + // + // This class helps copy from 'const char**' to 'char**' and handle cleanup + // automatically. + // + struct argv_helper + { + argv_helper(int argc, const char* argv[]) + : argc_(argc) + { + non_const_argv_ = new char*[argc]; + for(int i=0; i < argc; i++) + { + std::string s(argv[i]); + non_const_argv_[i] = new char[s.size() + 1]; + for(size_t c=0;c