static void Main(string[] aArgs) { Helper helper = new Helper(aArgs); OptionParser optParser = helper.OptionParser; OptionParser.OptionString option1 = new OptionParser.OptionString("-1", "--protocol", "UDP", "Protocol (UDP or TCP)", "PROTOCOL"); OptionParser.OptionString option2 = new OptionParser.OptionString("-2", "--clientaddr", "127.0.0.1", "Client IP address", "CLIENTADDRESS"); OptionParser.OptionInt option3 = new OptionParser.OptionInt("-3", "--clientport", 51936, "Client port", "CLIENTPORT"); OptionParser.OptionString option4 = new OptionParser.OptionString("-4", "--serveraddr", "127.0.0.1", "Server IP address", "SERVERADDRESS"); OptionParser.OptionInt option5 = new OptionParser.OptionInt("-5", "--serverport", 51936, "Server port", "SERVERPORT"); OptionParser.OptionInt option6 = new OptionParser.OptionInt("-6", "--size", 4, "Size of each packet (bytes)", "PACKETSIZE"); OptionParser.OptionInt option7 = new OptionParser.OptionInt("-7", "--total", 20, "Total number of packets to send", "PACKETTOTAL"); OptionParser.OptionInt option8 = new OptionParser.OptionInt("-8", "--delay", 0, "Delay between packets (0.1ms steps)", "PACKETDELAY"); optParser.AddOption(option1); optParser.AddOption(option2); optParser.AddOption(option3); optParser.AddOption(option4); optParser.AddOption(option5); optParser.AddOption(option6); optParser.AddOption(option7); helper.ProcessCommandLine(); Client test = new Client(option1.Value, option2.Value, option3.Value, option4.Value, option5.Value, option6.Value, option7.Value, option8.Value); // run the test ... test.ClientServerTest(); helper.Dispose(); }
static void Main(string[] aArgs) { Helper helper = new Helper(aArgs); OptionParser optParser = helper.OptionParser; optParser.Usage = "usage: FindDevice [options] [device name]"; OptionParser.OptionInt optTimeout = new OptionParser.OptionInt("-w", "--wait", 5, "Time to wait for finding the device (s)", "TIMEOUT"); optParser.AddOption(optTimeout); helper.ProcessCommandLine(); if (optParser.PosArgs.Count != 1) { Console.WriteLine(optParser.Help()); return; } string uglyname = optParser.PosArgs[0]; int timeout = optTimeout.Value; DeviceFinder finder = new DeviceFinder(uglyname); Device device; try { device = finder.Find(helper.Interface.Interface.Info.IPAddress, timeout * 1000); } catch (DeviceFinderException) { Console.WriteLine("Device not found"); return; } helper.Dispose(); Console.WriteLine("Udn: " + device.Udn); System.Environment.Exit(0); }
private void OptionIntTests() { // int option tests OptionParser optParser; OptionParser.OptionInt optInt1 = new OptionParser.OptionInt("-a", "--inta", 123, "int help", "INT"); OptionParser.OptionInt optInt2 = new OptionParser.OptionInt("-b", "--intb", 456, "int help", "INT"); TEST(optInt1.ShortName == "-a"); TEST(optInt1.LongName == "--inta"); TEST(optInt1.Value == 123); TEST(optInt2.ShortName == "-b"); TEST(optInt2.LongName == "--intb"); TEST(optInt2.Value == 456); // no args optParser = new OptionParser(new string[] {}); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 0); TEST(optInt1.Value == 123); TEST(optInt2.Value == 456); // positional args only optParser = new OptionParser(new string[] { "arg1", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 123); TEST(optInt2.Value == 456); // 1 good arg optParser = new OptionParser(new string[] { "-a", "789", "arg1", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 789); TEST(optInt2.Value == 456); optParser = new OptionParser(new string[] { "--inta", "789", "arg1", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 789); TEST(optInt2.Value == 456); optParser = new OptionParser(new string[] { "arg1", "-a", "789", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 789); TEST(optInt2.Value == 456); optParser = new OptionParser(new string[] { "arg1", "arg2", "-a", "789" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 789); TEST(optInt2.Value == 456); // 2 good args optParser = new OptionParser(new string[] { "-b", "987", "-a", "789", "arg1", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 789); TEST(optInt2.Value == 987); optParser = new OptionParser(new string[] { "-b", "987", "arg1", "arg2", "-a", "789" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); optParser.Parse(); TEST(optParser.PosArgs.Count == 2); TEST(optParser.PosArgs[0] == "arg1"); TEST(optParser.PosArgs[1] == "arg2"); TEST(optInt1.Value == 789); TEST(optInt2.Value == 987); // missing option value optParser = new OptionParser(new string[] { "-b", "-a", "789", "arg1", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); TEST_THROWS(typeof(OptionParser.OptionParserError), optParser, "Parse"); TEST(optParser.PosArgs.Count == 0); TEST(optInt1.Value == 123); TEST(optInt2.Value == 456); optParser = new OptionParser(new string[] { "-b", "987", "arg1", "arg2", "-a" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); TEST_THROWS(typeof(OptionParser.OptionParserError), optParser, "Parse"); TEST(optParser.PosArgs.Count == 0); TEST(optInt1.Value == 123); TEST(optInt2.Value == 456); // bad option value optParser = new OptionParser(new string[] { "-b", "98w7", "-a", "789", "arg1", "arg2" }); optParser.AddOption(optInt1); optParser.AddOption(optInt2); TEST_THROWS(typeof(OptionParser.OptionParserError), optParser, "Parse"); TEST(optParser.PosArgs.Count == 0); TEST(optInt1.Value == 123); TEST(optInt2.Value == 456); // help tests OptionParser.OptionHelp help; help = new OptionParser.OptionHelp(); optInt1 = new OptionParser.OptionInt("-a", null, 123, "int help", "INT"); optInt1.AppendHelp(help); TEST(help.ToString() == "options:\n -a INT int help\n"); help = new OptionParser.OptionHelp(); optInt1 = new OptionParser.OptionInt(null, "--inta", 123, "int help", "INT"); optInt1.AppendHelp(help); TEST(help.ToString() == "options:\n --inta=INT int help\n"); help = new OptionParser.OptionHelp(); optInt1 = new OptionParser.OptionInt("-a", "--inta", 123, "int help", "INT"); optInt1.AppendHelp(help); TEST(help.ToString() == "options:\n -a INT, --inta=INT int help\n"); help = new OptionParser.OptionHelp(); optInt1 = new OptionParser.OptionInt("-a", "--inta", 123, "int help", "INTEGER"); optInt1.AppendHelp(help); TEST(help.ToString() == "options:\n -a INTEGER, --inta=INTEGER\n int help\n"); }
public override void Test() { // Option creation tests // no option names TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, null, "defaultstring", "test string help", "STRING"); // bad short option names TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), "", null, "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), "s", null, "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), "-", null, "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), "--", null, "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), "-sd", null, "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), "--sd", null, "defaultstring", "test string help", "STRING"); // bad long option names TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, "", "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, "s", "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, "-", "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, "-s", "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, "--", "defaultstring", "test string help", "STRING"); TEST_THROWS_NEW(typeof(AssertionError), typeof(OptionParser.OptionString), null, "-sd", "defaultstring", "test string help", "STRING"); // Some tests for different option types OptionStringTests(); OptionIntTests(); OptionBoolTests(); // Parsing tests OptionParser optParser = new OptionParser(new string[] { "-a", "aval", "--bc", "bcval" }); OptionParser.OptionString optString1 = new OptionParser.OptionString("-a", null, "defaultstring", "string help", "STRING"); OptionParser.OptionString optString2 = new OptionParser.OptionString(null, "--bc", "defaultstring", "string help", "STRING"); OptionParser.OptionString optString3 = new OptionParser.OptionString("-a", "--bc", "defaultstring", "string help", "STRING"); OptionParser.OptionInt optInt4 = new OptionParser.OptionInt("-a", null, 123, "int help", "INT"); OptionParser.OptionBool optBool5 = new OptionParser.OptionBool(null, "--bc", "bool help"); // test adding already existing options optParser.AddOption(optString1); optParser.AddOption(optString2); TEST_THROWS(typeof(AssertionError), optParser, "AddOption", optString1); TEST_THROWS(typeof(AssertionError), optParser, "AddOption", optString2); TEST_THROWS(typeof(AssertionError), optParser, "AddOption", optString3); TEST_THROWS(typeof(AssertionError), optParser, "AddOption", optInt4); TEST_THROWS(typeof(AssertionError), optParser, "AddOption", optBool5); optParser.Parse(); TEST(optParser.PosArgs.Count == 0); TEST(optString1.Value == "aval"); TEST(optString2.Value == "bcval"); TEST(optString3.Value == "defaultstring"); TEST(optInt4.Value == 123); TEST(optBool5.Value == false); // test undefined options optParser = new OptionParser(new string[] { "-d" }); TEST_THROWS(typeof(OptionParser.OptionParserError), optParser, "Parse"); TEST(optParser.PosArgs.Count == 0); optParser = new OptionParser(new string[] { "--de" }); TEST_THROWS(typeof(OptionParser.OptionParserError), optParser, "Parse"); TEST(optParser.PosArgs.Count == 0); }