Kathey Marsden wrote:

Daniel John Debrunner wrote:
[snip conversation about how to



the counter is with your solution how do they generate a
master file suitable for submitting as part of a contribution? I'm not
sure there is a good solution.



I see nothing wrong with leaving test development on OS390 as another
fish to fry,  and  I think in general Myrna's plan is a good one if I
understand it correctly.   Generally we agree on an encoding for master
files, sql files etc and always check in files in that encoding.  Then
the corresponding files under the test output directory are always in
the native encoding making tests easy to run and failures easy to
diagnose.
To me what is a little fuzzy to me is the agreed input encoding for the
sql and master files, especially for languages like Japanese that are
not going to conform to ISO 8859-1.  What would seem to make sense to me
would be ISO 8859-1 with escape sequences like the common  property file
format  in Java
(http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream). That way you could run native2ascii on whatever platform you were
working with if you had special  characters in the text to get the
desired master file. Does specifying an input encoding of ISO 8859-1 read in the escaped sequences properly, or do you need to specify something else?
Kathey


I was thinking, for test development on platforms like OS/390 etc. - that has different encoding, wouldn't it help if the user adds the master encoding information as one of the test properties (for example: a property like - derby.test.master.encoding). He/she should be able to then submit the master (in its orginal encoding) without any need for conversion. The harness can get this property and use it to read the master and if needed convert them to 'UTF-8' to be readable on regular platforms or skip the test. I would think the same will work for files in Korean, Japanese etc.

Something like:
http://java.sun.com/docs/books/tutorial/i18n/text/stream.html

For the reasons pointed out by Myrna, I would agree the harness needs to convert the master (from the testing jar) to the local encoding for the users to understand the failures. I would also like to add that instead of writing the converted files to the local disk, if the master can the converted to the local encoding using streams and be kept in the memory (streams). The following snippet uses '*UTF-8*' .

For example: on  zOS


//read the default master file from the Derby testing jar

                   InputStream aStream2 = new FileInputStream(infile2);

//UTF-8 being used as default encoding for reading the master file.

Reader aReader2 = new InputStreamReader(aStream2,"UTF-8");
                       BufferedReader br2=new BufferedReader(aReader2);

//convert to local encoding while writing to the outputstream

ByteArrayOutputStream bao=new ByteArrayOutputStream();
                       PrintWriter eWriter = new PrintWriter(bao);
                       String s=null;
                       while((s = br2.readLine())!=null) {
                              eWriter.println(s);
                       }
                       eWriter.close();

                    //get the new converted input stream

ByteArrayInputStream bio=new ByteArrayInputStream(bao.toByteArray());
                       aReader2 = new InputStreamReader(bio);
                       br2=new BufferedReader(aReader2);
//do comparision between the newly converted master and the actual output

This will avoid the writing of the converted files to the disk and hence the need for cleanup as originally suggested. Moreover this conversion needs to* happen only if *the System.getPropertty ("file.encoding") is of a special type, say Cp1047(zOS) etc.

My 2 cents,

-Rajesh






Reply via email to