diff options
| -rw-r--r-- | tests/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | tests/cmdoptions.h | 97 | ||||
| -rw-r--r-- | tests/optiontester.cpp | 29 | 
3 files changed, 0 insertions, 128 deletions
| diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 092220f..e18081a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -12,5 +12,3 @@ target_link_libraries(kmsview kms++ kmstest ${LIBDRM_LIBRARIES})  add_executable (kmsprint kmsprint.cpp)  target_link_libraries(kmsprint kms++ kmstest ${LIBDRM_LIBRARIES}) - -add_executable (optiontester optiontester.cpp) diff --git a/tests/cmdoptions.h b/tests/cmdoptions.h deleted file mode 100644 index 843e65a..0000000 --- a/tests/cmdoptions.h +++ /dev/null @@ -1,97 +0,0 @@ -#pragma once - -#include <cstdio> -#include <string> -#include <vector> -#include <map> - -using namespace std; - -#define NO_PARAM(h) (CmdOption(false, h)) -#define HAS_PARAM(h) (CmdOption(true, h)) - -class CmdOption -{ -public: -	CmdOption(bool has_param, string help) : -	        m_has_param(has_param), m_help(help), m_is_set(false) { } -        bool has_param() const { return m_has_param; } -	const string& help() const { return m_help; } - -	void oset() { m_is_set = true; } -	void pset(const string& p) { m_param = p; oset(); } -        bool is_set() const { return m_is_set; } -        const string& param() const { return m_param; } -private: -	bool m_has_param; -	string m_help; - -	bool m_is_set; -	string m_param; -}; - -class CmdOptions -{ -public: -	CmdOptions(int argc, char **argv, map<string, CmdOption>& opts) : -		m_opts(opts), m_cmd(argv[0]) { -		for (int i = 1; i < argc; i++) { -			if (argv[i][0] == '-') { -				auto ii = m_opts.find(&argv[i][1]); -				if (ii == m_opts.end()) { -					m_error += m_cmd + ": " + -						string(argv[i]) + -						": unknown option\n"; -					continue; -				} -				if ((*ii).second.has_param()) { -					if (++i == argc) { -						m_error += m_cmd + ": -" + -							(*ii).first + -							": parameter missing\n"; -						continue; -					} -					(*ii).second.pset(argv[i]); -				} else { -					(*ii).second.oset(); -				} -			} else { -				m_params.push_back(argv[i]); -			} -		} -	} -	const string& error() const { return m_error; } -	const string& cmd() const { return m_cmd; } - -	bool is_set(const string& name) const { -		return m_opts.at(name).is_set(); -	} -	const string& opt_param(const string& name) const { -		return m_opts.at(name).param(); -	} -	const vector<string>& params() const { return m_params; } -	CmdOption& get_option(const string& name) { return m_opts.at(name); } - -	int num_options() const { -		int ret(0); -		for (const auto& p : m_opts) -			if (p.second.is_set()) -				ret++; -		return ret; -	} - -	const string usage() const { -		string ret("usage:\n"); -		for (const auto& p : m_opts) -			ret += "-" + p.first + -				(p.second.has_param() ? " <>: " : ": ") + -				p.second.help() + "\n"; -		return ret; -	} - -private: -	map<string, CmdOption>& m_opts; -	string m_cmd; -	vector<string> m_params; -	string m_error; -}; diff --git a/tests/optiontester.cpp b/tests/optiontester.cpp deleted file mode 100644 index ccb9579..0000000 --- a/tests/optiontester.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include <cstdio> -#include <algorithm> -#include <iostream> - -#include "cmdoptions.h" - -using namespace std; - -static map<string, CmdOption> options = { -	{ "test", NO_PARAM("test") }, -	{ "test2", HAS_PARAM("test2") }, -}; - -int main(int argc, char **argv) -{ -	CmdOptions opts(argc, argv, options); - -	if (opts.error().length()) { -		cerr << opts.error() << opts.usage(); -		return -1; -	} - -	for (auto p : options) -		printf("Option %s set %d param %s\n",  -		       p.first.c_str(), opts.is_set(p.first), -		       opts.opt_param(p.first).c_str());; - -	return 0; -} | 
