diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-01-10 01:41:13 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-01-10 01:41:13 (GMT) |
commit | 987f5d5e4de41c02b682464fa8e94252553ed57c (patch) | |
tree | 2bf74eb88dee718490af7b7dda0e585b0d1b8a95 /test/ttsafe_acreate.c | |
parent | 12dca9ab3c362fc190feb330232bec4bd552df3c (diff) | |
download | hdf5-987f5d5e4de41c02b682464fa8e94252553ed57c.zip hdf5-987f5d5e4de41c02b682464fa8e94252553ed57c.tar.gz hdf5-987f5d5e4de41c02b682464fa8e94252553ed57c.tar.bz2 |
[svn-r8048] Purpose:
Code cleanup & reorganization
Description:
Move further in the testing framework cleanup, eliminating all the
global variables (moving them into testframe.c as static variables) from the
testing framework code and moving it into the libh5test.a.
Platforms tested:
FreeBSD 4.9 (sleipnir) w & w/o thread-safety, c++ & parallel
h5committested
Diffstat (limited to 'test/ttsafe_acreate.c')
-rw-r--r-- | test/ttsafe_acreate.c | 158 |
1 files changed, 75 insertions, 83 deletions
diff --git a/test/ttsafe_acreate.c b/test/ttsafe_acreate.c index ac981b0..7a4635b 100644 --- a/test/ttsafe_acreate.c +++ b/test/ttsafe_acreate.c @@ -41,7 +41,7 @@ * * 19 May 2000, Bill Wendling * Changed so that it creates its own HDF5 file and removes it at cleanup - * time. Added num_errs flag. + * time. * ********************************************************************/ @@ -67,88 +67,80 @@ typedef struct acreate_data_struct { void tts_acreate(void) { - /* Pthread declarations */ - pthread_t threads[NUM_THREADS]; - - /* HDF5 data declarations */ - hid_t file, dataset; - hid_t dataspace, datatype; - hid_t attribute; - hsize_t dimsf[1]; /* dataset dimensions */ - - /* data declarations */ - int data; /* data to write */ - int buffer, ret, i; - - ttsafe_name_data_t *attrib_data; - - /* - * Create an HDF5 file using H5F_ACC_TRUNC access, default file - * creation plist and default file access plist - */ - file = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* create a simple dataspace for the dataset */ - dimsf[0] = 1; - dataspace = H5Screate_simple(1, dimsf, NULL); - - /* define datatype for the data using native little endian integers */ - datatype = H5Tcopy(H5T_NATIVE_INT); - H5Tset_order(datatype, H5T_ORDER_LE); - - /* create a new dataset within the file */ - dataset = H5Dcreate(file, DATASETNAME, datatype, dataspace, - H5P_DEFAULT); - - /* initialize data for dataset and write value to dataset */ - data = NUM_THREADS; - H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, - H5P_DEFAULT, &data); - - /* - * Simultaneously create a large number of attributes to be associated - * with the dataset - */ - for (i = 0; i < NUM_THREADS; i++) { - attrib_data = malloc(sizeof(ttsafe_name_data_t)); - attrib_data->dataset = dataset; - attrib_data->datatype = datatype; - attrib_data->dataspace = dataspace; - attrib_data->current_index = i; - pthread_create(&threads[i], NULL, tts_acreate_thread, - attrib_data); - } - - for (i = 0; i < NUM_THREADS; i++) - pthread_join(threads[i], NULL); - - /* verify the correctness of the test */ - for (i = 0; i < NUM_THREADS; i++) { - attribute = H5Aopen_name(dataset,gen_name(i)); - - if (attribute < 0) { - fprintf(stderr, - "unable to open appropriate attribute. " - "Test failed!\n"); - num_errs++; - } else { - ret = H5Aread(attribute, H5T_NATIVE_INT, &buffer); - - if (ret < 0 || buffer != i) { - fprintf(stderr, - "wrong data values. Test failed!\n"); - num_errs++; - } - - H5Aclose(attribute); - } - } - - /* close remaining resources */ - H5Sclose(dataspace); - H5Tclose(datatype); - H5Dclose(dataset); - H5Fclose(file); + /* Pthread declarations */ + pthread_t threads[NUM_THREADS]; + + /* HDF5 data declarations */ + hid_t file, dataset; + hid_t dataspace, datatype; + hid_t attribute; + hsize_t dimsf[1]; /* dataset dimensions */ + + /* data declarations */ + int data; /* data to write */ + int buffer, ret, i; + + ttsafe_name_data_t *attrib_data; + + /* + * Create an HDF5 file using H5F_ACC_TRUNC access, default file + * creation plist and default file access plist + */ + file = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + /* create a simple dataspace for the dataset */ + dimsf[0] = 1; + dataspace = H5Screate_simple(1, dimsf, NULL); + + /* define datatype for the data using native little endian integers */ + datatype = H5Tcopy(H5T_NATIVE_INT); + H5Tset_order(datatype, H5T_ORDER_LE); + + /* create a new dataset within the file */ + dataset = H5Dcreate(file, DATASETNAME, datatype, dataspace, H5P_DEFAULT); + + /* initialize data for dataset and write value to dataset */ + data = NUM_THREADS; + H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, + H5P_DEFAULT, &data); + + /* + * Simultaneously create a large number of attributes to be associated + * with the dataset + */ + for (i = 0; i < NUM_THREADS; i++) { + attrib_data = malloc(sizeof(ttsafe_name_data_t)); + attrib_data->dataset = dataset; + attrib_data->datatype = datatype; + attrib_data->dataspace = dataspace; + attrib_data->current_index = i; + pthread_create(&threads[i], NULL, tts_acreate_thread, attrib_data); + } + + for (i = 0; i < NUM_THREADS; i++) + pthread_join(threads[i], NULL); + + /* verify the correctness of the test */ + for (i = 0; i < NUM_THREADS; i++) { + attribute = H5Aopen_name(dataset,gen_name(i)); + + if (attribute < 0) + TestErrPrintf("unable to open appropriate attribute. Test failed!\n"); + else { + ret = H5Aread(attribute, H5T_NATIVE_INT, &buffer); + + if (ret < 0 || buffer != i) + TestErrPrintf("wrong data values. Test failed!\n"); + + H5Aclose(attribute); + } + } + + /* close remaining resources */ + H5Sclose(dataspace); + H5Tclose(datatype); + H5Dclose(dataset); + H5Fclose(file); } void *tts_acreate_thread(void *client_data) |