CBLAS: count error-exit tests
The C error-exit checkers report only a pass/fail verdict per routine.
Report the counts too, matching the Fortran drivers:
cblas_sgemv ERROR-EXIT TESTS: 13 RUN, 0 FAILED
One test is one chkxer() call. A test fails either because the routine
never reached xerbla, which chkxer already detects through cblas_lerr,
or because c_xerbla.c was reached with the wrong routine name, which
clears cblas_ok without chkxer noticing. The extended API build hits
exactly that second case, reporting cblas_sgemv_64 against an expected
cblas_sgemv, so a new cblas_xbad flag carries it across and the counts
agree with the verdict.
The Windows path that skips the xerbla tests returns before printing a
verdict and so prints no counts either.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1be34149cb
commit
8250cb5ce2
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -60,6 +67,9 @@ void F77_c2chke(char *rout
|
||||
link_xerbla = 0;
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
if (strncmp( sf,"cblas_cgemv",11)==0) {
|
||||
cblas_rout = "cblas_cgemv";
|
||||
@@ -839,4 +849,6 @@ void F77_c2chke(char *rout
|
||||
printf(" %-12s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("******* %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-12s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -45,6 +52,9 @@ void F77_c3chke(char * rout
|
||||
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
#ifndef HAS_ATTRIBUTE_WEAK_SUPPORT
|
||||
#ifdef CBLAS_DLL_IMPORTS
|
||||
@@ -1949,4 +1959,6 @@ void F77_c3chke(char * rout
|
||||
printf(" %-13s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("***** %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-13s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -59,6 +66,9 @@ void F77_d2chke(char *rout
|
||||
link_xerbla = 0;
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
if (strncmp( sf,"cblas_dgemv",11)==0) {
|
||||
cblas_rout = "cblas_dgemv";
|
||||
@@ -884,4 +894,6 @@ void F77_d2chke(char *rout
|
||||
printf(" %-16s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("******* %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-16s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -59,6 +66,9 @@ void F77_d3chke(char *rout
|
||||
link_xerbla = 0;
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
if (strncmp( sf,"cblas_dgemmtr" ,13)==0) {
|
||||
cblas_rout = "cblas_dgemmtr" ;
|
||||
@@ -1834,4 +1844,6 @@ void F77_d3chke(char *rout
|
||||
printf(" %-17s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("***** %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-17s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -59,6 +66,9 @@ void F77_s2chke(char *rout
|
||||
link_xerbla = 0;
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
if (strncmp( sf,"cblas_sgemv",11)==0) {
|
||||
cblas_rout = "cblas_sgemv";
|
||||
@@ -884,4 +894,6 @@ void F77_s2chke(char *rout
|
||||
printf(" %-16s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("******* %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-16s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
|
||||
}
|
||||
@@ -60,6 +67,9 @@ void F77_s3chke(char *rout
|
||||
link_xerbla = 0;
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
if (strncmp( sf,"cblas_sgemmtr" ,13)==0) {
|
||||
cblas_rout = "cblas_sgemmtr" ;
|
||||
@@ -1838,4 +1848,6 @@ void F77_s3chke(char *rout
|
||||
printf(" %-17s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("***** %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-17s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ void API_SUFFIX(cblas_xerbla)(CBLAS_INT info, const char *rout, const char *form
|
||||
{
|
||||
extern CBLAS_INT cblas_lerr, cblas_info, cblas_ok;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
|
||||
/* Initially, c__3chke may call this routine with
|
||||
@@ -21,6 +22,7 @@ void API_SUFFIX(cblas_xerbla)(CBLAS_INT info, const char *rout, const char *form
|
||||
if (cblas_rout != NULL && strcmp(cblas_rout, rout) != 0){
|
||||
printf("***** XERBLA WAS CALLED WITH SRNAME = <%s> INSTEAD OF <%s> *******\n", rout, cblas_rout);
|
||||
cblas_ok = FALSE;
|
||||
cblas_xbad = 1;
|
||||
}
|
||||
|
||||
if (RowMajorStrg)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -61,6 +68,9 @@ void F77_z2chke(char *rout
|
||||
link_xerbla = 0;
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
if (strncmp( sf,"cblas_zgemv",11)==0) {
|
||||
cblas_rout = "cblas_zgemv";
|
||||
@@ -840,4 +850,6 @@ void F77_z2chke(char *rout
|
||||
printf(" %-12s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("******* %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-12s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
CBLAS_INT link_xerbla=TRUE;
|
||||
CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
char *cblas_rout;
|
||||
|
||||
#ifdef F77_Char
|
||||
@@ -20,11 +21,17 @@ void F77_xerbla(char *srname, void *vinfo
|
||||
void chkxer(void) {
|
||||
extern CBLAS_INT cblas_ok, cblas_lerr, cblas_info;
|
||||
extern CBLAS_INT link_xerbla;
|
||||
extern CBLAS_INT cblas_xtests, cblas_xfails, cblas_xbad;
|
||||
extern char *cblas_rout;
|
||||
cblas_xtests++;
|
||||
if (cblas_lerr == 1 ) {
|
||||
printf("***** ILLEGAL VALUE OF PARAMETER NUMBER %d NOT DETECTED BY %s *****\n", (int) cblas_info, cblas_rout);
|
||||
cblas_ok = 0 ;
|
||||
cblas_xfails++;
|
||||
} else if (cblas_xbad) {
|
||||
cblas_xfails++;
|
||||
}
|
||||
cblas_xbad = 0;
|
||||
cblas_lerr = 1 ;
|
||||
}
|
||||
|
||||
@@ -45,6 +52,9 @@ void F77_z3chke(char *rout
|
||||
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
cblas_xtests = 0;
|
||||
cblas_xfails = 0;
|
||||
cblas_xbad = 0;
|
||||
|
||||
#ifndef HAS_ATTRIBUTE_WEAK_SUPPORT
|
||||
#ifdef CBLAS_DLL_IMPORTS
|
||||
@@ -1950,4 +1960,6 @@ void F77_z3chke(char *rout
|
||||
printf(" %-13s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
printf("***** %s FAILED THE TESTS OF ERROR-EXITS *******\n",cblas_rout);
|
||||
printf(" %-13s ERROR-EXIT TESTS:%9d RUN,%9d FAILED\n",
|
||||
cblas_rout, (int) cblas_xtests, (int) cblas_xfails);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user