You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2005/03/02 01:37:50 UTC

cvs commit: jakarta-jmeter/src/jorphan/org/apache/commons/cli/avalon ClutilTestCase.java CLArgsParser.java

sebb        2005/03/01 16:37:50

  Modified:    src/jorphan/org/apache/commons/cli/avalon Tag: rel-2_0
                        ClutilTestCase.java CLArgsParser.java
  Log:
  Add test for missing optional argument to long option
  and fix code to deal with it
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.6   +40 -0     jakarta-jmeter/src/jorphan/org/apache/commons/cli/avalon/Attic/ClutilTestCase.java
  
  Index: ClutilTestCase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/commons/cli/avalon/Attic/ClutilTestCase.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- ClutilTestCase.java	22 Feb 2005 23:40:00 -0000	1.1.2.5
  +++ ClutilTestCase.java	2 Mar 2005 00:37:50 -0000	1.1.2.6
  @@ -160,6 +160,40 @@
           assertEquals( option2.getArgument( 0 ), null );
       }
   
  +    public void testOptionalArgLong()
  +    {
  +        final CLOptionDescriptor[] options = new CLOptionDescriptor[]
  +        {
  +            ALL, TAINT
  +        };
  +
  +		// Check that optional args work woth long options
  +        final String[] args = new String[]{"--taint", "param", "-a"};
  +
  +        final CLArgsParser parser = new CLArgsParser( args, options );
  +
  +        assertNull( parser.getErrorString(), parser.getErrorString() );
  +
  +        final List clOptions = parser.getArguments();
  +        final int size = clOptions.size();
  +
  +        assertEquals( "Option count", 3, size );
  +
  +        final CLOption option0 = (CLOption)clOptions.get( 0 );
  +        assertEquals( "Option Code: " + option0.getDescriptor().getId(), TAINT_OPT,
  +                option0.getDescriptor().getId() );
  +        assertEquals( "Option Arg: " + option0.getArgument( 0 ),
  +                null, option0.getArgument( 0 ) );
  +
  +        final CLOption option1 = (CLOption)clOptions.get( 1 );
  +        assertEquals( CLOption.TEXT_ARGUMENT , option1.getDescriptor().getId());
  +        assertEquals( "param" , option1.getArgument( 0 ) );
  +
  +        final CLOption option2 = (CLOption)clOptions.get( 2 );
  +        assertEquals( option2.getDescriptor().getId(), ALL_OPT );
  +        assertEquals( option2.getArgument( 0 ), null );
  +    }
  +
       public void testShortOptArgUnenteredBeforeOtherOpt()
       {
           final CLOptionDescriptor[] options = new CLOptionDescriptor[]
  @@ -979,4 +1013,10 @@
                   "\t-n, --nulltest" + lineSeparator,
                   sb.toString() );
       }
  +	/*
  +	 *  TODO add tests to check for:
  +	 *  - name clash
  +	 *  - long option abbreviations (match shortest unique abbreviation)
  +	 */
  +	
   }
  
  
  
  1.1.2.7   +2 -2      jakarta-jmeter/src/jorphan/org/apache/commons/cli/avalon/Attic/CLArgsParser.java
  
  Index: CLArgsParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/commons/cli/avalon/Attic/CLArgsParser.java,v
  retrieving revision 1.1.2.6
  retrieving revision 1.1.2.7
  diff -u -r1.1.2.6 -r1.1.2.7
  --- CLArgsParser.java	22 Feb 2005 23:39:09 -0000	1.1.2.6
  +++ CLArgsParser.java	2 Mar 2005 00:37:50 -0000	1.1.2.7
  @@ -449,7 +449,7 @@
                   //should never get to here when stringIndex != 0
                   addOption( new CLOption( m_args[m_argIndex++] ) );
               }
  -            else if( STATE_OPTIONAL_ARG == m_state && '-' == m_ch )
  +            else if( STATE_OPTIONAL_ARG == m_state && m_isLong && m_ch != 0)
               {
                   m_state = STATE_NORMAL;
                   addOption( m_option );
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org