mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-17 16:10:24 +08:00
Removes partial long options from the tools (#872)
Some of the command-line tools would allow partial long options (e.g., --datas instead of --dataset). These were inconsistently implemented, difficult to maintain, and occasionally blocked useful long options. They have been removed from all the tools. NOTE: This change should NOT be merged to 1.12 or earlier.
This commit is contained in:
parent
04f1bff675
commit
5dabec4cf6
@ -820,6 +820,15 @@ New Features
|
||||
|
||||
Tools:
|
||||
------
|
||||
- Removed partial long exceptions
|
||||
|
||||
Some of the tools accepted shortened versions of the long options
|
||||
(ex: --datas instead of --dataset). These were implemented inconsistently,
|
||||
are difficult to maintian, and occasionally block useful long option
|
||||
names. These partial long options have been removed from all the tools.
|
||||
|
||||
(DER - 2021/08/03)
|
||||
|
||||
- h5repack added help text for user-defined filters.
|
||||
|
||||
Added help text line that states the valid values of the filter flag
|
||||
|
@ -82,124 +82,46 @@ struct handler_t {
|
||||
/* "xxx" "yyy" into "xxxyyy". */
|
||||
static const char * s_opts = "a:b*c:d:ef:g:hik:l:m:n*o*pq:rs:t:uvw:xyz:A*BCD:E*F:G:HM:N:O*RS:VX:";
|
||||
static struct h5_long_options l_opts[] = {{"attribute", require_arg, 'a'},
|
||||
{"attribut", require_arg, 'a'},
|
||||
{"attribu", require_arg, 'a'},
|
||||
{"attrib", require_arg, 'a'},
|
||||
{"attri", require_arg, 'a'},
|
||||
{"attr", require_arg, 'a'},
|
||||
{"att", require_arg, 'a'},
|
||||
{"at", require_arg, 'a'},
|
||||
{"binary", optional_arg, 'b'},
|
||||
{"count", require_arg, 'c'},
|
||||
{"coun", require_arg, 'c'},
|
||||
{"cou", require_arg, 'c'},
|
||||
{"co", require_arg, 'c'},
|
||||
{"dataset", require_arg, 'd'},
|
||||
{"datase", require_arg, 'd'},
|
||||
{"datas", require_arg, 'd'},
|
||||
{"escape", no_arg, 'e'},
|
||||
{"filedriver", require_arg, 'f'},
|
||||
{"filedrive", require_arg, 'f'},
|
||||
{"filedriv", require_arg, 'f'},
|
||||
{"filedri", require_arg, 'f'},
|
||||
{"filedr", require_arg, 'f'},
|
||||
{"filed", require_arg, 'f'},
|
||||
{"file", require_arg, 'f'},
|
||||
{"fil", require_arg, 'f'},
|
||||
{"fi", require_arg, 'f'},
|
||||
{"group", require_arg, 'g'},
|
||||
{"grou", require_arg, 'g'},
|
||||
{"gro", require_arg, 'g'},
|
||||
{"gr", require_arg, 'g'},
|
||||
{"help", no_arg, 'h'},
|
||||
{"hel", no_arg, 'h'},
|
||||
{"object-ids", no_arg, 'i'},
|
||||
{"object-id", no_arg, 'i'},
|
||||
{"object-i", no_arg, 'i'},
|
||||
{"object", no_arg, 'i'},
|
||||
{"objec", no_arg, 'i'},
|
||||
{"obje", no_arg, 'i'},
|
||||
{"obj", no_arg, 'i'},
|
||||
{"ob", no_arg, 'i'},
|
||||
{"block", require_arg, 'k'},
|
||||
{"bloc", require_arg, 'k'},
|
||||
{"blo", require_arg, 'k'},
|
||||
{"bl", require_arg, 'k'},
|
||||
{"soft-link", require_arg, 'l'},
|
||||
{"soft-lin", require_arg, 'l'},
|
||||
{"soft-li", require_arg, 'l'},
|
||||
{"soft-l", require_arg, 'l'},
|
||||
{"soft", require_arg, 'l'},
|
||||
{"sof", require_arg, 'l'},
|
||||
{"format", require_arg, 'm'},
|
||||
{"contents", optional_arg, 'n'},
|
||||
{"output", optional_arg, 'o'},
|
||||
{"outpu", optional_arg, 'o'},
|
||||
{"outp", optional_arg, 'o'},
|
||||
{"out", optional_arg, 'o'},
|
||||
{"ou", optional_arg, 'o'},
|
||||
{"properties", no_arg, 'p'},
|
||||
{"sort_by", require_arg, 'q'},
|
||||
{"string", no_arg, 'r'},
|
||||
{"strin", no_arg, 'r'},
|
||||
{"start", require_arg, 's'},
|
||||
{"star", require_arg, 's'},
|
||||
{"sta", require_arg, 's'},
|
||||
{"datatype", require_arg, 't'},
|
||||
{"datatyp", require_arg, 't'},
|
||||
{"dataty", require_arg, 't'},
|
||||
{"datat", require_arg, 't'},
|
||||
{"use-dtd", no_arg, 'u'},
|
||||
{"use-dt", no_arg, 'u'},
|
||||
{"use-d", no_arg, 'u'},
|
||||
{"use-", no_arg, 'u'},
|
||||
{"use", no_arg, 'u'},
|
||||
{"us", no_arg, 'u'},
|
||||
{"u", no_arg, 'u'},
|
||||
{"vds-view-first-missing", no_arg, 'v'},
|
||||
{"width", require_arg, 'w'},
|
||||
{"widt", require_arg, 'w'},
|
||||
{"wid", require_arg, 'w'},
|
||||
{"wi", require_arg, 'w'},
|
||||
{"xml", no_arg, 'x'},
|
||||
{"xm", no_arg, 'x'},
|
||||
{"noindex", no_arg, 'y'},
|
||||
{"sort_order", require_arg, 'z'},
|
||||
{"onlyattr", optional_arg, 'A'},
|
||||
{"superblock", no_arg, 'B'},
|
||||
{"boot-block", no_arg, 'B'},
|
||||
{"boot-bloc", no_arg, 'B'},
|
||||
{"boot-blo", no_arg, 'B'},
|
||||
{"boot-bl", no_arg, 'B'},
|
||||
{"boot-b", no_arg, 'B'},
|
||||
{"boot", no_arg, 'B'},
|
||||
{"boo", no_arg, 'B'},
|
||||
{"bo", no_arg, 'B'},
|
||||
{"no-compact-subset", no_arg, 'C'},
|
||||
{"xml-dtd", require_arg, 'D'},
|
||||
{"xml-dt", require_arg, 'D'},
|
||||
{"xml-d", require_arg, 'D'},
|
||||
{"enable-error-stack", optional_arg, 'E'},
|
||||
{"form", require_arg, 'F'},
|
||||
{"vds-gap-size", require_arg, 'G'},
|
||||
{"header", no_arg, 'H'},
|
||||
{"heade", no_arg, 'H'},
|
||||
{"head", no_arg, 'H'},
|
||||
{"hea", no_arg, 'H'},
|
||||
{"packed-bits", require_arg, 'M'},
|
||||
{"any_path", require_arg, 'N'},
|
||||
{"ddl", optional_arg, 'O'},
|
||||
{"region", no_arg, 'R'},
|
||||
{"stride", require_arg, 'S'},
|
||||
{"strid", require_arg, 'S'},
|
||||
{"version", no_arg, 'V'},
|
||||
{"versio", no_arg, 'V'},
|
||||
{"versi", no_arg, 'V'},
|
||||
{"vers", no_arg, 'V'},
|
||||
{"ver", no_arg, 'V'},
|
||||
{"ve", no_arg, 'V'},
|
||||
{"xml-ns", require_arg, 'X'},
|
||||
{"xml-n", require_arg, 'X'},
|
||||
{"s3-cred", require_arg, '$'},
|
||||
{"hdfs-attrs", require_arg, '#'},
|
||||
{"vol-value", require_arg, '1'},
|
||||
|
@ -39,26 +39,9 @@ static int verbose_g = 0;
|
||||
* parameters.
|
||||
*/
|
||||
static const char * s_opts = "hVvd:n";
|
||||
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'},
|
||||
{"hel", no_arg, 'h'},
|
||||
{"he", no_arg, 'h'},
|
||||
{"version", no_arg, 'V'},
|
||||
{"version", no_arg, 'V'},
|
||||
{"versio", no_arg, 'V'},
|
||||
{"versi", no_arg, 'V'},
|
||||
{"vers", no_arg, 'V'},
|
||||
{"verbose", no_arg, 'v'},
|
||||
{"verbos", no_arg, 'v'},
|
||||
{"verbo", no_arg, 'v'},
|
||||
{"verb", no_arg, 'v'},
|
||||
{"dname", require_arg, 'd'},
|
||||
{"dnam", require_arg, 'd'},
|
||||
{"dna", require_arg, 'd'},
|
||||
{"dn", require_arg, 'd'},
|
||||
{"noop", no_arg, 'n'},
|
||||
{"noo", no_arg, 'n'},
|
||||
{"no", no_arg, 'n'},
|
||||
{"enable-error-stack", no_arg, 'E'},
|
||||
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'}, {"version", no_arg, 'V'},
|
||||
{"verbose", no_arg, 'v'}, {"dname", require_arg, 'd'},
|
||||
{"noop", no_arg, 'n'}, {"enable-error-stack", no_arg, 'E'},
|
||||
{NULL, 0, '\0'}};
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
|
@ -34,14 +34,10 @@ char *ub_file = NULL;
|
||||
* parameters. The long-named ones can be partially spelled. When
|
||||
* adding more, make sure that they don't clash with each other.
|
||||
*/
|
||||
static const char * s_opts = "hi:u:o:c:V"; /* add more later ? */
|
||||
static struct h5_long_options l_opts[] = {
|
||||
{"help", no_arg, 'h'}, {"hel", no_arg, 'h'}, {"i", require_arg, 'i'}, /* input file */
|
||||
{"u", require_arg, 'u'}, /* user block file */
|
||||
{"o", require_arg, 'o'}, /* output file */
|
||||
{"clobber", no_arg, 'c'}, /* clobber existing UB */
|
||||
{"clobbe", no_arg, 'c'}, {"clobb", no_arg, 'c'}, {"clob", no_arg, 'c'},
|
||||
{"clo", no_arg, 'c'}, {"cl", no_arg, 'c'}, {NULL, 0, '\0'}};
|
||||
static const char * s_opts = "hi:u:o:c:V";
|
||||
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'}, {"i", require_arg, 'i'},
|
||||
{"u", require_arg, 'u'}, {"o", require_arg, 'o'},
|
||||
{"clobber", no_arg, 'c'}, {NULL, 0, '\0'}};
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: usage
|
||||
|
@ -36,13 +36,9 @@ char *ub_file = NULL;
|
||||
* adding more, make sure that they don't clash with each other.
|
||||
*/
|
||||
static const char * s_opts = "hu:i:o:d:V";
|
||||
static struct h5_long_options l_opts[] = {
|
||||
{"help", no_arg, 'h'}, {"hel", no_arg, 'h'}, {"i", require_arg, 'i'}, /* input file */
|
||||
{"u", require_arg, 'u'}, /* user block file */
|
||||
{"o", require_arg, 'o'}, /* output file */
|
||||
{"delete", no_arg, 'd'}, /* delete ub */
|
||||
{"delet", no_arg, 'd'}, {"dele", no_arg, 'd'}, {"del", no_arg, 'd'},
|
||||
{"de", no_arg, 'd'}, {NULL, 0, '\0'}};
|
||||
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'}, {"i", require_arg, 'i'},
|
||||
{"u", require_arg, 'u'}, {"o", require_arg, 'o'},
|
||||
{"delete", no_arg, 'd'}, {NULL, 0, '\0'}};
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: usage
|
||||
|
@ -172,102 +172,19 @@ struct handler_t {
|
||||
static const char *s_opts = "Aa:Ddm:EFfhGgl:sSTO:Vw:H:";
|
||||
/* e.g. "filemetadata" has to precede "file"; "groupmetadata" has to precede "group" etc. */
|
||||
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'},
|
||||
{"hel", no_arg, 'h'},
|
||||
{"he", no_arg, 'h'},
|
||||
{"filemetadata", no_arg, 'F'},
|
||||
{"filemetadat", no_arg, 'F'},
|
||||
{"filemetada", no_arg, 'F'},
|
||||
{"filemetad", no_arg, 'F'},
|
||||
{"filemeta", no_arg, 'F'},
|
||||
{"filemet", no_arg, 'F'},
|
||||
{"fileme", no_arg, 'F'},
|
||||
{"filem", no_arg, 'F'},
|
||||
{"file", no_arg, 'f'},
|
||||
{"fil", no_arg, 'f'},
|
||||
{"fi", no_arg, 'f'},
|
||||
{"groupmetadata", no_arg, 'G'},
|
||||
{"groupmetadat", no_arg, 'G'},
|
||||
{"groupmetada", no_arg, 'G'},
|
||||
{"groupmetad", no_arg, 'G'},
|
||||
{"groupmeta", no_arg, 'G'},
|
||||
{"groupmet", no_arg, 'G'},
|
||||
{"groupme", no_arg, 'G'},
|
||||
{"groupm", no_arg, 'G'},
|
||||
{"group", no_arg, 'g'},
|
||||
{"grou", no_arg, 'g'},
|
||||
{"gro", no_arg, 'g'},
|
||||
{"gr", no_arg, 'g'},
|
||||
{"links", require_arg, 'l'},
|
||||
{"link", require_arg, 'l'},
|
||||
{"lin", require_arg, 'l'},
|
||||
{"li", require_arg, 'l'},
|
||||
{"dsetmetadata", no_arg, 'D'},
|
||||
{"dsetmetadat", no_arg, 'D'},
|
||||
{"dsetmetada", no_arg, 'D'},
|
||||
{"dsetmetad", no_arg, 'D'},
|
||||
{"dsetmeta", no_arg, 'D'},
|
||||
{"dsetmet", no_arg, 'D'},
|
||||
{"dsetme", no_arg, 'D'},
|
||||
{"dsetm", no_arg, 'D'},
|
||||
{"dset", no_arg, 'd'},
|
||||
{"dse", no_arg, 'd'},
|
||||
{"ds", no_arg, 'd'},
|
||||
{"dims", require_arg, 'm'},
|
||||
{"dim", require_arg, 'm'},
|
||||
{"di", require_arg, 'm'},
|
||||
{"dtypemetadata", no_arg, 'T'},
|
||||
{"dtypemetadat", no_arg, 'T'},
|
||||
{"dtypemetada", no_arg, 'T'},
|
||||
{"dtypemetad", no_arg, 'T'},
|
||||
{"dtypemeta", no_arg, 'T'},
|
||||
{"dtypemet", no_arg, 'T'},
|
||||
{"dtypeme", no_arg, 'T'},
|
||||
{"dtypem", no_arg, 'T'},
|
||||
{"dtype", no_arg, 'T'},
|
||||
{"dtyp", no_arg, 'T'},
|
||||
{"dty", no_arg, 'T'},
|
||||
{"dt", no_arg, 'T'},
|
||||
{"object", require_arg, 'O'},
|
||||
{"objec", require_arg, 'O'},
|
||||
{"obje", require_arg, 'O'},
|
||||
{"obj", require_arg, 'O'},
|
||||
{"ob", require_arg, 'O'},
|
||||
{"version", no_arg, 'V'},
|
||||
{"versio", no_arg, 'V'},
|
||||
{"versi", no_arg, 'V'},
|
||||
{"vers", no_arg, 'V'},
|
||||
{"ver", no_arg, 'V'},
|
||||
{"ve", no_arg, 'V'},
|
||||
{"attribute", no_arg, 'A'},
|
||||
{"attribut", no_arg, 'A'},
|
||||
{"attribu", no_arg, 'A'},
|
||||
{"attrib", no_arg, 'A'},
|
||||
{"attri", no_arg, 'A'},
|
||||
{"attr", no_arg, 'A'},
|
||||
{"att", no_arg, 'A'},
|
||||
{"at", no_arg, 'A'},
|
||||
{"enable-error-stack", no_arg, 'E'},
|
||||
{"numattrs", require_arg, 'a'},
|
||||
{"numattr", require_arg, 'a'},
|
||||
{"numatt", require_arg, 'a'},
|
||||
{"numat", require_arg, 'a'},
|
||||
{"numa", require_arg, 'a'},
|
||||
{"num", require_arg, 'a'},
|
||||
{"nu", require_arg, 'a'},
|
||||
{"freespace", no_arg, 's'},
|
||||
{"freespac", no_arg, 's'},
|
||||
{"freespa", no_arg, 's'},
|
||||
{"freesp", no_arg, 's'},
|
||||
{"frees", no_arg, 's'},
|
||||
{"free", no_arg, 's'},
|
||||
{"fre", no_arg, 's'},
|
||||
{"fr", no_arg, 's'},
|
||||
{"summary", no_arg, 'S'},
|
||||
{"summar", no_arg, 'S'},
|
||||
{"summa", no_arg, 'S'},
|
||||
{"summ", no_arg, 'S'},
|
||||
{"sum", no_arg, 'S'},
|
||||
{"su", no_arg, 'S'},
|
||||
{"s3-cred", require_arg, 'w'},
|
||||
{"hdfs-attrs", require_arg, 'H'},
|
||||
{NULL, 0, '\0'}};
|
||||
|
@ -45,39 +45,10 @@ static hsize_t increment = DEFAULT_INCREMENT;
|
||||
* Command-line options: only publicize long options
|
||||
*/
|
||||
static const char * s_opts = "hVsmzi*";
|
||||
static struct h5_long_options l_opts[] = {{"help", no_arg, 'h'},
|
||||
{"hel", no_arg, 'h'},
|
||||
{"he", no_arg, 'h'},
|
||||
{"version", no_arg, 'V'},
|
||||
{"version", no_arg, 'V'},
|
||||
{"versio", no_arg, 'V'},
|
||||
{"versi", no_arg, 'V'},
|
||||
{"vers", no_arg, 'V'},
|
||||
{"status", no_arg, 's'},
|
||||
{"statu", no_arg, 's'},
|
||||
{"stat", no_arg, 's'},
|
||||
{"sta", no_arg, 's'},
|
||||
{"st", no_arg, 's'},
|
||||
{"image", no_arg, 'm'},
|
||||
{"imag", no_arg, 'm'},
|
||||
{"ima", no_arg, 'm'},
|
||||
{"im", no_arg, 'm'},
|
||||
{"filesize", no_arg, 'z'},
|
||||
{"filesiz", no_arg, 'z'},
|
||||
{"filesi", no_arg, 'z'},
|
||||
{"files", no_arg, 'z'},
|
||||
{"file", no_arg, 'z'},
|
||||
{"fil", no_arg, 'z'},
|
||||
{"fi", no_arg, 'z'},
|
||||
{"increment", optional_arg, 'i'},
|
||||
{"incremen", optional_arg, 'i'},
|
||||
{"increme", optional_arg, 'i'},
|
||||
{"increm", optional_arg, 'i'},
|
||||
{"incre", optional_arg, 'i'},
|
||||
{"incr", optional_arg, 'i'},
|
||||
{"inc", optional_arg, 'i'},
|
||||
{"in", optional_arg, 'i'},
|
||||
{NULL, 0, '\0'}};
|
||||
static struct h5_long_options l_opts[] = {
|
||||
{"help", no_arg, 'h'}, {"version", no_arg, 'V'}, {"status", no_arg, 's'},
|
||||
{"image", no_arg, 'm'}, {"filesize", no_arg, 'z'}, {"increment", optional_arg, 'i'},
|
||||
{NULL, 0, '\0'}};
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: usage
|
||||
|
@ -207,7 +207,7 @@
|
||||
# -d --di=15
|
||||
ADD_H5_ERR_TEST (h5stat_err1_dims 1 -d --dims=-1 h5stat_threshold.h5)
|
||||
ADD_H5_TEST (h5stat_dims1 0 -gd -m 5 h5stat_threshold.h5)
|
||||
ADD_H5_TEST (h5stat_dims2 0 -d --di=15 h5stat_threshold.h5)
|
||||
ADD_H5_TEST (h5stat_dims2 0 -d --dims=15 h5stat_threshold.h5)
|
||||
#
|
||||
# Tests for -a option on h5stat_threshold.h5
|
||||
# -a -2 (incorrect threshold value)
|
||||
|
@ -304,7 +304,7 @@ TOOLTEST h5stat_links5.ddl -g -l 40000 h5stat_newgrat.h5
|
||||
# -d --di=15
|
||||
TOOLTEST h5stat_err1_dims.ddl -d --dims=-1 h5stat_threshold.h5
|
||||
TOOLTEST h5stat_dims1.ddl -gd -m 5 h5stat_threshold.h5
|
||||
TOOLTEST h5stat_dims2.ddl -d --di=15 h5stat_threshold.h5
|
||||
TOOLTEST h5stat_dims2.ddl -d --dims=15 h5stat_threshold.h5
|
||||
#
|
||||
# Tests for -a option on h5stat_threshold.h5
|
||||
# -a -2 (incorrect threshold value)
|
||||
|
@ -397,7 +397,7 @@
|
||||
#
|
||||
# The following are tests to verify the expected exit code from h5clear:
|
||||
# "h5clear -m h5clear_mdc_image.h5" (valid option, existing file, succeed exit code)
|
||||
# "h5clear --vers" (valid option, version #, succeed exit code)
|
||||
# "h5clear --version" (valid option, version #, succeed exit code)
|
||||
# "h5clear -k" (invalid 1 option, no file, fail exit code)
|
||||
# "h5clear -k junk.h5" (invalid 1 option, nonexisting file, fail exit code)
|
||||
# "h5clear -l h5clear_sec2_v2.h5" (invalid 1 option, existing file, fail exit code)
|
||||
@ -408,7 +408,7 @@
|
||||
# "h5clear -m -l h5clear_sec2_v0.h5" (valid/invalid 2 options, existing file, fail exit code)
|
||||
# "h5clear -l -m h5clear_sec2_v0.h5" (invalid/valid 2 options, existing file, fail exit code)
|
||||
ADD_H5_RETTEST (h5clr_mdc_image "false" "-m" h5clear_mdc_image.h5)
|
||||
ADD_H5_RETTEST (h5clr_vers "false" "--vers")
|
||||
ADD_H5_RETTEST (h5clr_vers "false" "--version")
|
||||
ADD_H5_RETTEST (h5clr_k "true" "-k")
|
||||
ADD_H5_RETTEST (h5clr_k_junk "true" "-k" junk.h5)
|
||||
ADD_H5_RETTEST (h5clr_l_sec2 "true" "-l" h5clear_sec2_v2.h5)
|
||||
|
@ -315,7 +315,7 @@ TOOLTEST_ERR orig_h5clear_sec2_v0.h5 -s -m "" h5clear_no_mdc_image.err
|
||||
#
|
||||
# The following are tests to verify the expected exit code from h5clear:
|
||||
# "h5clear -m h5clear_mdc_image.h5" (valid option, existing file, succeed exit code)
|
||||
# "h5clear --vers" (valid option, version #, succeed exit code)
|
||||
# "h5clear --version" (valid option, version #, succeed exit code)
|
||||
# "h5clear -k" (invalid 1 option, no file, fail exit code)
|
||||
# "h5clear -k junk.h5" (invalid 1 option, nonexisting file, fail exit code)
|
||||
# "h5clear -l h5clear_sec2_v2.h5" (invalid 1 option, existing file, fail exit code)
|
||||
@ -326,7 +326,7 @@ TOOLTEST_ERR orig_h5clear_sec2_v0.h5 -s -m "" h5clear_no_mdc_image.err
|
||||
# "h5clear -m -l h5clear_sec2_v0.h5" (valid/invalid 2 options, existing file, fail exit code)
|
||||
# "h5clear -l -m h5clear_sec2_v0.h5" (invalid/valid 2 options, existing file, fail exit code)
|
||||
TOOLTEST h5clear_mdc_image.h5 -m "" $SUCCEED
|
||||
TOOLTEST "" --vers "" $SUCCEED
|
||||
TOOLTEST "" --version "" $SUCCEED
|
||||
TOOLTEST "" -k "" $FAIL
|
||||
TOOLTEST junk.h5 -k "" $FAIL
|
||||
TOOLTEST h5clear_sec2_v2.h5 -l "" $FAIL
|
||||
|
Loading…
Reference in New Issue
Block a user