sebb        2005/02/17 17:42:49

  Modified:    src/functions/org/apache/jmeter/functions Tag: rel-2_0
                        FileWrapper.java FileRowColContainer.java
               bin      Tag: rel-2_0 jmeter.properties
  Added:       bin/testfiles Tag: rel-2_0 test.tsv
  Log:
  Allow default CSVRead delimiter to be changed
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.1   +4 -0      jakarta-jmeter/bin/testfiles/Attic/test.tsv
  
  
  
  
  No                   revision
  No                   revision
  1.6.2.1   +3 -3      
jakarta-jmeter/src/functions/org/apache/jmeter/functions/FileWrapper.java
  
  Index: FileWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/FileWrapper.java,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- FileWrapper.java  30 Mar 2004 18:07:07 -0000      1.6
  +++ FileWrapper.java  18 Feb 2005 01:42:49 -0000      1.6.2.1
  @@ -125,7 +125,7 @@
        {
                frcc = new FileRowColContainer(file);
                fileContainers.put(alias,frcc);
  -                     log.info("Saved "+file+" as "+alias);
  +                     log.info("Saved "+file+" as "+alias+" 
delimiter=<"+frcc.getDelimiter()+">");
                        if (defaultFile.length() == 0){
                                defaultFile = file;// Save in case needed later
                        }
  
  
  
  1.5.2.2   +74 -14    
jakarta-jmeter/src/functions/org/apache/jmeter/functions/FileRowColContainer.java
  
  Index: FileRowColContainer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/FileRowColContainer.java,v
  retrieving revision 1.5.2.1
  retrieving revision 1.5.2.2
  diff -u -r1.5.2.1 -r1.5.2.2
  --- FileRowColContainer.java  9 Jul 2004 23:01:30 -0000       1.5.2.1
  +++ FileRowColContainer.java  18 Feb 2005 01:42:49 -0000      1.5.2.2
  @@ -26,6 +26,7 @@
   import java.util.StringTokenizer;
   
   import org.apache.jmeter.junit.JMeterTestCase;
  +import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
  @@ -45,7 +46,8 @@
   
       private String fileName; // name of the file
       
  -    public static final String DELIMITER = ","; // Default delimiter
  +    public static final String DELIMITER =
  +     JMeterUtils.getPropDefault("csvread.delimiter",",");// delimiter 
defaults to ","
       
       /** Keeping track of which row is next to be read. */
       private int nextRow;
  @@ -60,7 +62,7 @@
        public FileRowColContainer(String file,String delim)
        throws IOException,FileNotFoundException
        {
  -             log.debug("FDC("+file+","+delim+")");
  +             log.debug("FRCC("+file+","+delim+")");
                fileName = file;
                delimiter = delim;
                nextRow = 0;
  @@ -70,7 +72,7 @@
        public FileRowColContainer(String file)
        throws IOException,FileNotFoundException
        {
  -             log.debug("FDC("+file+")");
  +             log.debug("FRCC("+file+")["+DELIMITER+"]");
                fileName = file;
                delimiter = DELIMITER;
                nextRow = 0;
  @@ -189,11 +191,29 @@
           }
           return result;
       }
  +    
  +    /**
  +     * @return the file name for this class
  +     */
  +    public String getFileName()
  +    {
  +        return fileName;
  +    }
  +
  +     /**
  +      * @return Returns the delimiter.
  +      */
  +     final String getDelimiter() {
  +             return delimiter;
  +     }
  +
  +     ///////////////////////////// TEST CASES 
/////////////////////////////////////////
  +    
       public static class Test extends JMeterTestCase
       {
   
                static{
  -//                   LoggingManager.setPriority("DEBUG","jmeter");
  +                     
LoggingManager.setPriority("DEBUG","jmeter.functions.FileRowColContainer");
   //                   LoggingManager.setTarget(new PrintWriter(System.out));
                }
   
  @@ -267,6 +287,54 @@
                        assertEquals("c2",f.getColumn(myRow,2));
                }
   
  +             public void testColumnsComma() throws Exception
  +             {
  +                     FileRowColContainer f = new 
FileRowColContainer("testfiles/test.csv",",");
  +                     assertNotNull(f);
  +                     assertTrue("Not empty",f.fileData.size() > 0);
  +
  +                     int myRow=f.nextRow();
  +                     assertEquals(0,myRow);
  +                     assertEquals("a1",f.getColumn(myRow,0));
  +                     assertEquals("d1",f.getColumn(myRow,3));
  +
  +                     try {
  +                             f.getColumn(myRow,4);
  +                             fail("Expected out of bounds");
  +                     }
  +                     catch (IndexOutOfBoundsException e)
  +                     {
  +                     }
  +                     myRow=f.nextRow();
  +                     assertEquals(1,myRow);
  +                     assertEquals("b2",f.getColumn(myRow,1));
  +                     assertEquals("c2",f.getColumn(myRow,2));
  +             }
  +
  +             public void testColumnsTab() throws Exception
  +             {
  +                     FileRowColContainer f = new 
FileRowColContainer("testfiles/test.tsv","\t");
  +                     assertNotNull(f);
  +                     assertTrue("Not empty",f.fileData.size() > 0);
  +
  +                     int myRow=f.nextRow();
  +                     assertEquals(0,myRow);
  +                     assertEquals("a1",f.getColumn(myRow,0));
  +                     assertEquals("d1",f.getColumn(myRow,3));
  +
  +                     try {
  +                             f.getColumn(myRow,4);
  +                             fail("Expected out of bounds");
  +                     }
  +                     catch (IndexOutOfBoundsException e)
  +                     {
  +                     }
  +                     myRow=f.nextRow();
  +                     assertEquals(1,myRow);
  +                     assertEquals("b2",f.getColumn(myRow,1));
  +                     assertEquals("c2",f.getColumn(myRow,2));
  +             }
  +
                public void testEmptyCols() throws Exception
                {
                        FileRowColContainer f = new 
FileRowColContainer("testfiles/testempty.csv");
  @@ -295,12 +363,4 @@
                        assertEquals("",f.getColumn(myRow,3));
                }
       }
  -    /**
  -     * @return the file name for this class
  -     */
  -    public String getFileName()
  -    {
  -        return fileName;
  -    }
  -
   }
  \ No newline at end of file
  
  
  
  No                   revision
  No                   revision
  1.100.2.10 +12 -2     jakarta-jmeter/bin/jmeter.properties
  
  Index: jmeter.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v
  retrieving revision 1.100.2.9
  retrieving revision 1.100.2.10
  diff -u -r1.100.2.9 -r1.100.2.10
  --- jmeter.properties 8 Oct 2004 22:32:41 -0000       1.100.2.9
  +++ jmeter.properties 18 Feb 2005 01:42:49 -0000      1.100.2.10
  @@ -303,4 +303,14 @@
   #mailer.successlimit=2
   #
   # Number of failed samples before a message is sent
  -#mailer.failurelimit=2
  \ No newline at end of file
  +#mailer.failurelimit=2
  +
  +# CSVRead delimiter setting (default ",")
  +# Make sure that there are no trailing spaces or tabs after the delimiter
  +# characters, or these will be included in the list of valid delimiters
  +#csvread.delimiter=,
  +#csvread.delimiter=;
  +#csvread.delimiter=!
  +#csvread.delimiter=~
  +# The following line has a tab after the =
  +#csvread.delimiter=  
  \ No newline at end of file
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to