summaryrefslogtreecommitdiffstats
path: root/tools/h5import/h5importtest.c
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2008-02-19 19:12:10 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2008-02-19 19:12:10 (GMT)
commit6bc41c8b209fd0cc9cc3d088eb425ddbcf681a53 (patch)
treea6c6f0d9f1fb4bd950c74dbadaf50f4ee1623092 /tools/h5import/h5importtest.c
parentfc8e5477f583b6e256b06da62fb9b80d0db5418f (diff)
downloadhdf5-6bc41c8b209fd0cc9cc3d088eb425ddbcf681a53.zip
hdf5-6bc41c8b209fd0cc9cc3d088eb425ddbcf681a53.tar.gz
hdf5-6bc41c8b209fd0cc9cc3d088eb425ddbcf681a53.tar.bz2
[svn-r14613] 971 (B2) h5import bug on Windows w/binary datasets. CLOSED. fread in windows needs a binary file to be open with "rb" instead of "r" otherwise it terminates execution if an end of file character is found on the input file. Besides that the binary file generated needs to be open with "wb" , otherwise an end of line character is read twice. DONE NOW for 1.8, already done previously for 1.6
renamed the h5import test files to have the extensions text input files = .txt binary input files = .bin configuration files = .conf hdf5 files = .h5 besides that in very test the files have the same name except extension. For example TOOLTEST txtin16.txt -c $srcdir/testfiles/txtin16.conf -o txtin16.h5 The convention for the test name is for example, for "txtin16" "txt" for text then "in16" means integer 16 size Tested: linux, solaris
Diffstat (limited to 'tools/h5import/h5importtest.c')
-rwxr-xr-xtools/h5import/h5importtest.c439
1 files changed, 273 insertions, 166 deletions
diff --git a/tools/h5import/h5importtest.c b/tools/h5import/h5importtest.c
index 2a8c827..9272632 100755
--- a/tools/h5import/h5importtest.c
+++ b/tools/h5import/h5importtest.c
@@ -21,271 +21,378 @@
* h5importtest
*
* Description:
- * This program creates files that can be
+ * This program creates that can be
* used to test the h5import program.
*
*/
-/*
- * Define names for test files
- */
int
main(void)
{
- int nrow = 3, ncol = 4, npln = 5;
- int i, j, k;
- FILE *sp;
-
+ int nrow = 3, ncol = 4, npln = 5;
+ int i, j, k;
+ FILE *sp;
+
float b32r3[5][3][4];
float row4[3], col4[4], pln4[5];
float rowo4 = (float)11.0e0, colo4 = (float)21.0e0, plno4 = (float)51.0e0;
float rowi4 = (float)1.0e0, coli4 = (float)2.0e0, plni4 = (float)5.0e0;
-
- int b32i3[5][3][4];
- int row4i[3], col4i[4], pln4i[5];
- int rowo4i = (int)11 , colo4i = (int)21 , plno4i = (int)51 ;
- int rowi4i = (int)1 , coli4i = (int)2 , plni4i = (int)5 ;
-
-#ifndef _WIN32
- long_long b64i2[3][4], b64i3[5][3][4];
- long_long row4i64[3], col4i64[4], pln4i64[5];
- long_long rowo4i64 = (long_long)11 , colo4i64 = (long_long)21 , plno4i64 = (long_long)51 ;
- long_long rowi4i64 = (long_long)1 , coli4i64 = (long_long)2 , plni4i64 = (long_long)5 ;
+
+ int b32i3[5][3][4];
+ int row4i[3], col4i[4], pln4i[5];
+ int rowo4i = (int)11 , colo4i = (int)21 , plno4i = (int)51 ;
+ int rowi4i = (int)1 , coli4i = (int)2 , plni4i = (int)5 ;
+
+#ifndef WIN32
+ long_long b64i2[3][4], b64i3[5][3][4];
+ long_long row4i64[3], col4i64[4], pln4i64[5];
+ long_long rowo4i64 = (long_long)11 , colo4i64 = (long_long)21 , plno4i64 = (long_long)51 ;
+ long_long rowi4i64 = (long_long)1 , coli4i64 = (long_long)2 , plni4i64 = (long_long)5 ;
#endif
-
+
short b16i3[5][3][4];
short row4i16[3], col4i16[4], pln4i16[5];
short rowo4i16 = (short)11 , colo4i16 = (short)21 , plno4i16 = (short)51 ;
short rowi4i16 = (short)1 , coli4i16 = (short)2 , plni4i16 = (short)5 ;
-
- char b8i3[5][3][4];
- char row4i8[3], col4i8[4], pln4i8[5];
- char rowo4i8 = (char)11 , colo4i8 = (char)21 , plno4i8 = (char)51 ;
- char rowi4i8 = (char)1 , coli4i8 = (char)2 , plni4i8 = (char)5 ;
-
- double b64r3[5][3][4];
- double row8[3], col8[4], pln8[5];
- double rowo8 = 11.0e0, colo8 = 21.0e0, plno8 = 51.0e0;
- double rowi8 = 1.0e0, coli8 = 2.0e0, plni8 = 5.0e0;
-
-
+
+ char b8i3[5][3][4];
+ char row4i8[3], col4i8[4], pln4i8[5];
+ char rowo4i8 = (char)11 , colo4i8 = (char)21 , plno4i8 = (char)51 ;
+ char rowi4i8 = (char)1 , coli4i8 = (char)2 , plni4i8 = (char)5 ;
+
+ double b64r3[5][3][4];
+ double row8[3], col8[4], pln8[5];
+ double rowo8 = 11.0e0, colo8 = 21.0e0, plno8 = 51.0e0;
+ double rowi8 = 1.0e0, coli8 = 2.0e0, plni8 = 5.0e0;
+
+
/*
- * initialize the row, column, and plane vectors
- *
- * row values start at 11 and increment by 1 => 11, 12, 13
- * column values start at 21 and increment by 2 => 21, 23, 25, 27
- * plane values start at 51 and increment by 5 => 51, 56, 61, 66, 71
- */
-
-
+ * initialize the row, column, and plane vectors
+ *
+ * row values start at 11 and increment by 1 => 11, 12, 13
+ * column values start at 21 and increment by 2 => 21, 23, 25, 27
+ * plane values start at 51 and increment by 5 => 51, 56, 61, 66, 71
+ */
+
+
/*
- * build array elements - rank 2
- *
- * element value = sum of row value and col values
- */
-
+ * build array elements - rank 2
+ *
+ * element value = sum of row value and col values
+ */
+
row4[0] = rowo4;
col4[0] = colo4;
pln4[0] = plno4;
-
+
row8[0] = rowo8;
col8[0] = colo8;
pln8[0] = plno8;
-
+
row4i[0] = rowo4i;
col4i[0] = colo4i;
pln4i[0] = plno4i;
-
-#ifndef _WIN32
+
+#ifndef WIN32
row4i64[0] = rowo4i64;
col4i64[0] = colo4i64;
pln4i64[0] = plno4i64;
#endif
-
+
row4i16[0] = rowo4i16;
col4i16[0] = colo4i16;
pln4i16[0] = plno4i16;
-
+
row4i8[0] = rowo4i8;
col4i8[0] = colo4i8;
pln4i8[0] = plno4i8;
-
+
for (i = 1; i < nrow; i++)
{
row4[i] = row4[i - 1] + rowi4;
row8[i] = row8[i - 1] + rowi8;
row4i[i] = row4i[i - 1] + rowi4i;
-#ifndef _WIN32
- row4i64[i] = row4i64[i - 1] + rowi4i64;
+#ifndef WIN32
+ row4i64[i] = row4i64[i - 1] + rowi4i64;
#endif
- row4i16[i] = row4i16[i - 1] + rowi4i16;
- row4i8[i] = row4i8[i - 1] + rowi4i8;
+ row4i16[i] = row4i16[i - 1] + rowi4i16;
+ row4i8[i] = row4i8[i - 1] + rowi4i8;
}
for (j = 1; j < ncol; j++)
{
- col4[j] = col4[j - 1] + coli4;
- col8[j] = col8[j - 1] + coli8;
- col4i[j] = col4i[j - 1] + coli4i;
-#ifndef _WIN32
- col4i64[j] = col4i64[j - 1] + coli4i64;
+ col4[j] = col4[j - 1] + coli4;
+ col8[j] = col8[j - 1] + coli8;
+ col4i[j] = col4i[j - 1] + coli4i;
+#ifndef WIN32
+ col4i64[j] = col4i64[j - 1] + coli4i64;
#endif
- col4i16[j] = col4i16[j - 1] + coli4i16;
- col4i8[j] = col4i8[j - 1] + coli4i8;
+ col4i16[j] = col4i16[j - 1] + coli4i16;
+ col4i8[j] = col4i8[j - 1] + coli4i8;
}
for (k = 1; k < npln; k++)
{
- pln4[k] = pln4[k - 1] + plni4;
- pln8[k] = pln8[k - 1] + plni8;
- pln4i[k] = pln4i[k - 1] + plni4i;
-#ifndef _WIN32
- pln4i64[k] = pln4i64[k - 1] + plni4i64;
+ pln4[k] = pln4[k - 1] + plni4;
+ pln8[k] = pln8[k - 1] + plni8;
+ pln4i[k] = pln4i[k - 1] + plni4i;
+#ifndef WIN32
+ pln4i64[k] = pln4i64[k - 1] + plni4i64;
#endif
- pln4i16[k] = pln4i16[k - 1] + plni4i16;
- pln4i8[k] = pln4i8[k - 1] + plni4i8;
- }
-
- for (i = 0; i < nrow; i++)
- {
- for (j = 0; j < ncol; j++)
- {
-#ifndef _WIN32
- b64i2[i][j] = row4i64[i] + col4i64[j];
+ pln4i16[k] = pln4i16[k - 1] + plni4i16;
+ pln4i8[k] = pln4i8[k - 1] + plni4i8;
+ }
+
+ for (i = 0; i < nrow; i++)
+ {
+ for (j = 0; j < ncol; j++)
+ {
+#ifndef WIN32
+ b64i2[i][j] = row4i64[i] + col4i64[j];
#endif
- }
- }
+ }
+ }
/*
- * build array elements - rank 3
- *
- * element value = sum of row value, col, and plane values
- */
-
+ * build array elements - rank 3
+ *
+ * element value = sum of row value, col, and plane values
+ */
+
for (i = 0; i < nrow; i++)
- {
- for (j = 0; j < ncol; j++)
+ {
+ for (j = 0; j < ncol; j++)
+ {
+ for (k = 0; k < npln; k++)
{
- for (k = 0; k < npln; k++)
- {
- b32r3[k][i][j] = row4[i] + col4[j] + pln4[k];
- b64r3[k][i][j] = row8[i] + col8[j] + pln8[k];
- b32i3[k][i][j] = row4i[i] + col4i[j] + pln4i[k];
-#ifndef _WIN32
- b64i3[k][i][j] = row4i64[i] + col4i64[j] + pln4i64[k];
+ b32r3[k][i][j] = row4[i] + col4[j] + pln4[k];
+ b64r3[k][i][j] = row8[i] + col8[j] + pln8[k];
+ b32i3[k][i][j] = row4i[i] + col4i[j] + pln4i[k];
+#ifndef WIN32
+ b64i3[k][i][j] = row4i64[i] + col4i64[j] + pln4i64[k];
#endif
- b16i3[k][i][j] = row4i16[i] + col4i16[j] + pln4i16[k];
- b8i3[k][i][j] = row4i8[i] + col4i8[j] + pln4i8[k];
- }
+ b16i3[k][i][j] = row4i16[i] + col4i16[j] + pln4i16[k];
+ b8i3[k][i][j] = row4i8[i] + col4i8[j] + pln4i8[k];
}
- }
+ }
+ }
- /*
- * binary 32-bit file - rank 2 & 3
- */
+
#ifndef UNICOS
- sp = fopen("txtin16", "w");
- for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
+
+ /*-------------------------------------------------------------------------
+ * TOOLTEST txtin16.txt -c $srcdir/testfiles/txtin16.conf -o txtin16.h5
+ *-------------------------------------------------------------------------
+ */
+
+
+ sp = fopen("txtin16.txt", "w");
+ for (k = 0; k < npln; k++)
+ {
+ for (i = 0; i < nrow; i++)
{
- for (j = 0; j < ncol; j++)
- (void) fprintf(sp, "%10u", b16i3[k][i][j]);
- (void) fprintf(sp, "\n");
+ for (j = 0; j < ncol; j++)
+ (void) fprintf(sp, "%10u", b16i3[k][i][j]);
+ (void) fprintf(sp, "\n");
}
+ }
(void) fclose(sp);
- sp = fopen("txtin32", "w");
- for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
+ /*-------------------------------------------------------------------------
+ * TOOLTEST txtin32.txt -c $srcdir/testfiles/textin32.conf -o textin32.h5
+ *-------------------------------------------------------------------------
+ */
+
+ sp = fopen("txtin32.txt", "w");
+ for (k = 0; k < npln; k++)
+ {
+ for (i = 0; i < nrow; i++)
{
- for (j = 0; j < ncol; j++)
- (void) fprintf(sp, "%10d", b32i3[k][i][j]);
- (void) fprintf(sp, "\n");
+ for (j = 0; j < ncol; j++)
+ (void) fprintf(sp, "%10d", b32i3[k][i][j]);
+ (void) fprintf(sp, "\n");
}
- (void) fclose(sp);
+ }
+ (void) fclose(sp);
+
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binin32.bin -c $srcdir/testfiles/binin32.conf -o binin32.h5
+ *-------------------------------------------------------------------------
+ */
- sp = fopen("bin32", "w");
+#ifdef WIN32
+ sp = fopen("binin32.bin", "wb");
+#else
+ sp = fopen("binin32.bin", "w");
+#endif
for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b32i3[k][i][j], sizeof(int), 1, sp);
+ {
+ for (i = 0; i < nrow; i++)
+ {
+ for (j = 0; j < ncol; j++)
+ {
+ (void) fwrite((char *) &b32i3[k][i][j], sizeof(int), 1, sp);
+ }
+ }
+ }
(void) fclose(sp);
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binuin32.bin -c $srcdir/testfiles/binuin32.conf -o binuin32.h5
+ *-------------------------------------------------------------------------
+ */
- sp = fopen("buin32", "w");
+#ifdef WIN32
+ sp = fopen("binuin32.bin", "wb");
+#else
+ sp = fopen("binuin32.bin", "w");
+#endif
for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b32i3[k][i][j], sizeof(unsigned int), 1, sp);
+ {
+ for (i = 0; i < nrow; i++)
+ {
+ for (j = 0; j < ncol; j++)
+ {
+ (void) fwrite((char *) &b32i3[k][i][j], sizeof(unsigned int), 1, sp);
+ }
+ }
+ }
(void) fclose(sp);
-#ifndef _WIN32
- sp = fopen("bin64-2", "w");
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b64i2[i][j], sizeof(long_long), 1, sp);
- (void) fclose(sp);
-#endif
- sp = fopen("bfp32", "w");
+
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binin16.bin -c $srcdir/testfiles/binin16.conf -o binin16.h5
+ *-------------------------------------------------------------------------
+ */
+
+#ifdef WIN32
+ sp = fopen("binin16.bin", "wb");
+#else
+ sp = fopen("binin16.bin", "w");
+#endif
for (k = 0; k < npln; k++)
+ {
for (i = 0; i < nrow; i++)
+ {
for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b32r3[k][i][j],
- sizeof(float), 1, sp);
+ {
+ (void) fwrite((char *) &b16i3[k][i][j], sizeof(short), 1, sp);
+ }
+ }
+ }
(void) fclose(sp);
- sp = fopen("bin16", "w");
- for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b16i3[k][i][j], sizeof(short), 1,
- sp);
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binuin16.bin -c $srcdir/testfiles/binuin16.conf -o binuin16.h5
+ *-------------------------------------------------------------------------
+ */
+#ifdef WIN32
+ sp = fopen("binuin16.bin", "wb");
+#else
+ sp = fopen("binuin16.bin", "w");
+#endif
+ for (k = 0; k < npln; k++)
+ {
+ for (i = 0; i < nrow; i++)
+ {
+ for (j = 0; j < ncol; j++)
+ {
+ (void) fwrite((char *) &b16i3[k][i][j], sizeof(unsigned short), 1, sp);
+ }
+ }
+ }
(void) fclose(sp);
- sp = fopen("buin16", "w");
- for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b16i3[k][i][j], sizeof(unsigned short), 1,
- sp);
- (void) fclose(sp);
-#ifndef _WIN32
- sp = fopen("bin64-3", "w");
- for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b64i3[k][i][j], sizeof(long_long), 1,
- sp);
- (void) fclose(sp);
-#endif
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binin8.bin -c $srcdir/testfiles/binin8.conf -o binin8.h5
+ *-------------------------------------------------------------------------
+ */
- sp = fopen("bin8", "w");
+#ifdef WIN32
+ sp = fopen("binin8.bin", "wb");
+#else
+ sp = fopen("binin8.bin", "w");
+#endif
for (k = 0; k < npln; k++)
- for (i = 0; i < nrow; i++)
- for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b8i3[k][i][j], sizeof(char), 1,
- sp);
+ {
+ for (i = 0; i < nrow; i++)
+ {
+ for (j = 0; j < ncol; j++)
+ {
+ (void) fwrite((char *) &b8i3[k][i][j], sizeof(char), 1, sp);
+ }
+ }
+ }
(void) fclose(sp);
-#endif
+#endif /* UNICOS */
- /*
- * binary 64-bit file - rank 2 & 3
- */
- sp = fopen("bfp64", "w");
+
+
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binfp64.bin -c $srcdir/testfiles/binfp64.conf -o binfp64.h5
+ *-------------------------------------------------------------------------
+ */
+
+ /*
+ * binary 64-bit file - rank 2 & 3
+ */
+
+#ifdef WIN32
+ sp = fopen("binfp64.bin", "wb");
+#else
+ sp = fopen("binfp64.bin", "w");
+#endif
for (k = 0; k < npln; k++)
+ {
for (i = 0; i < nrow; i++)
+ {
for (j = 0; j < ncol; j++)
- (void) fwrite((char *) &b64r3[k][i][j],
- sizeof(double), 1, sp);
+ {
+ (void) fwrite((char *) &b64r3[k][i][j], sizeof(double), 1, sp);
+ }
+ }
+ }
(void) fclose(sp);
+
+
+
+ /*-------------------------------------------------------------------------
+ * TOOLTEST binin8w.bin -c $srcdir/testfiles/binin8w.conf -o binin8w.h5
+ *-------------------------------------------------------------------------
+ */
+
+ {
+ /* test CR+LF (13,10) and EOF (26) in windows */
+ char bin8w[4] = {13,10,26,0};
+
+#ifdef WIN32
+ sp = fopen("binin8w.bin", "wb");
+#else
+ sp = fopen("binin8w.bin", "w");
+#endif
+ for (i = 0; i < 4; i++)
+ {
+ char c = bin8w[i];
+ if ( fwrite( &c, sizeof(char), 1, sp) != 1 )
+ printf("error writing file\n");
+ }
+ fclose(sp);
+
+
+ }
+
+
+
+
+
return (0);
}