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