diff options
Diffstat (limited to 'ACE/tests/ARGV_Test.cpp')
-rw-r--r-- | ACE/tests/ARGV_Test.cpp | 277 |
1 files changed, 0 insertions, 277 deletions
diff --git a/ACE/tests/ARGV_Test.cpp b/ACE/tests/ARGV_Test.cpp deleted file mode 100644 index 0e7e18f52d8..00000000000 --- a/ACE/tests/ARGV_Test.cpp +++ /dev/null @@ -1,277 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// tests -// -// = DESCRIPTION -// This simple test illustrates how to use advanced features of -// <ACE_ARGV>. -// -// = AUTHOR -// Suresh Kannan <kannan@uav.ae.gatech.edu> and -// Duane Binder <duane.binder@veritas.com> - -// ============================================================================ - -#include "ace/ARGV.h" -#include "ace/Arg_Shifter.h" -#include "ace/OS_NS_string.h" -#include "ace/Argv_Type_Converter.h" -#include "test_config.h" - -ACE_RCSID (tests, ARGV_Test, "$Id$") - -static void -consume_arg (int argc, ACE_TCHAR *argv[]) -{ - ACE_Arg_Shifter arg_shifter (argc, argv); - - if (arg_shifter.is_anything_left ()) - arg_shifter.consume_arg (1); - // Once we initialize an arg_shifter, we must iterate through it all! - while ((arg_shifter.is_anything_left ())) - arg_shifter.ignore_arg (1); -} - -static int -test_simple_argv (ACE_TCHAR *argv[]) -{ - // From command line. - ACE_ARGV cl (argv); - - // My own stuff. - ACE_ARGV my; - - // Add to my stuff. - my.add (ACE_TEXT ("-ORBEndpoint iiop://localhost:12345")); - - // Combine the two (see the ace/ARGV.h constructors documentation). - ACE_ARGV a (cl.argv (), - my.argv ()); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("argc = %d\n"), - a.argc ())); - - // Print the contents of the combined <ACE_ARGV>. - for (int i = 0; i < a.argc (); i++) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%d) %s\n"), - i, - a.argv ()[i])); - - return 0; -} - -static int -test_argv_type_converter (void) -{ - char *argv[20]; - argv[0] = ACE_OS_String::strdup ("one"); - argv[1] = ACE_OS_String::strdup ("two"); - argv[2] = ACE_OS_String::strdup ("three"); - argv[3] = ACE_OS_String::strdup ("four"); - argv[4] = 0; - - char *save_argv[20]; - ACE_OS_String::memcpy (save_argv, argv, sizeof (argv)); - - int argc = 4; - - { - ACE_Argv_Type_Converter ct2 (argc, argv); - } - - { - ACE_Argv_Type_Converter ct (argc, argv); - ct.get_argc (); ct.get_TCHAR_argv (); - consume_arg ( ct.get_argc (), ct.get_TCHAR_argv ()); - } - { - ACE_Argv_Type_Converter ct3 (argc, argv); - ct3.get_argc (); ct3.get_ASCII_argv (); - consume_arg ( ct3.get_argc (), ct3.get_TCHAR_argv ()); - } - - { - for (size_t i = 0; i < 4; i++) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%d) %s\n"), - i, - ACE_TEXT_CHAR_TO_TCHAR (argv[i]))); - } - - for (size_t i = 0; save_argv[i]; ++i) - ACE_OS_Memory::free (save_argv[i]); - - return 0; -} - -static int -test_argv_type_converter2 (void) -{ - ACE_TCHAR *argv[20]; - argv[0] = ACE_OS_String::strdup (ACE_TEXT ("one")); - argv[1] = ACE_OS_String::strdup (ACE_TEXT ("two")); - argv[2] = ACE_OS_String::strdup (ACE_TEXT ("three")); - argv[3] = ACE_OS_String::strdup (ACE_TEXT ("four")); - argv[4] = 0; - - ACE_TCHAR *save_argv[20]; - ACE_OS_String::memcpy (save_argv, argv, sizeof (argv)); - - int argc = 4; - - { - ACE_Argv_Type_Converter ct (argc, argv); - ct.get_argc (); ct.get_TCHAR_argv (); - consume_arg ( ct.get_argc (), ct.get_TCHAR_argv ()); - } - - consume_arg (argc, argv); - - { - for (size_t i = 0; i < 4; i++) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%d) %s\n"), - i, - argv[i])); - } - - for (size_t i = 0; save_argv[i]; ++i) - ACE_OS_Memory::free (save_argv[i]); - - return 0; -} - -static int -test_argv_buf (void) -{ - pid_t parent_pid = ACE_OS::getpid (); - - ACE_TCHAR *l_argv[3]; - ACE_TCHAR pid_str[100]; - // Store the parent's process id so we can pass it to the child - // portably. Also, pass the test number, as well. - ACE_OS::sprintf (pid_str, - ACE_TEXT ("-p %ld -t %d"), - static_cast <long> (parent_pid), - 1); - - // We're going to create a new process that runs this program again, - // so we need to indicate that it's the child. - const ACE_TCHAR *t = ACE_TEXT (".") - ACE_DIRECTORY_SEPARATOR_STR - ACE_TEXT ("Signal_Test") - ACE_PLATFORM_EXE_SUFFIX - ACE_TEXT (" -c"); - l_argv[0] = const_cast <ACE_TCHAR *> (t); - l_argv[1] = pid_str; - l_argv[2] = 0; - - ACE_ARGV my_argv (l_argv); - - // This shouldn't have any quotes in it. - ACE_DEBUG ((LM_DEBUG, "%s\n", my_argv.buf ())); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("argc: %d\n"), my_argv.argc ())); - return 0; -} - -static int -test_argv_quotes (void) -{ - const ACE_TCHAR *argv[] = { ACE_TEXT ("first without quotes"), - ACE_TEXT ("'second in single quotes'"), - ACE_TEXT ("\"third in double quotes\""), - 0 - }; - int argc = 3; - - // (argc, argv) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** argv ***\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("argc: %d\n"), argc)); - - for (int i = 0; i < argc; ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("argv[%02d] = %s\n"), i, argv[i])); - - // args - ACE_ARGV args; - for (int i = 0; i < argc; ++i) - args.add (argv[i]); - args.add (ACE_TEXT ("'fourth in single quotes'")); - args.add (ACE_TEXT ("\"fifth in double quotes\"")); - args.add (ACE_TEXT ("sixth without any quotes")); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** args-1 ***\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args.argc ())); - - for (int i = 0; i < args.argc (); ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args[%02d]: %s\n"), i, args[i])); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args.argc ())); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** args-2 ***\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args.argc ())); - - for (int i = 0; i < args.argc (); ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argv ()[%02d]: %s\n"), - i, args.argv ()[i])); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args.argc ())); - - // args2 - ACE_ARGV args2; - for (int i = 0; i < argc; ++i) - args2.add (argv[i], true); - args2.add (ACE_TEXT ("'fourth in single quotes'"), true); - args2.add (ACE_TEXT ("\"fifth in double quotes\""), true); - args2.add (ACE_TEXT ("sixth without any quotes"), true); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** args-3 ***\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args2.argc ())); - - for (int i = 0; i < args2.argc (); ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args[%02d]: %s\n"), i, args2[i])); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args2.argc ())); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** args-4 ***\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args2.argc ())); - - for (int i = 0; i < args2.argc (); ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argv ()[%02d]: %s\n"), - i, args2.argv ()[i])); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args2.argc ())); - - // args3 - ACE_ARGV args3(argv); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** args-5 ***\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args3.argc ())); - - for (int i = 0; i < args3.argc (); ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args[%02d]: %s\n"), i, args3[i])); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("args.argc (): %d\n"), args3.argc ())); - - return 0; -} - -int -run_main (int, ACE_TCHAR *argv[]) -{ - ACE_START_TEST (ACE_TEXT ("ARGV_Test")); - - test_simple_argv (argv); - test_argv_type_converter2 (); - test_argv_type_converter (); - test_argv_quotes (); - test_argv_buf (); - - ACE_END_TEST; - return 0; -} - |