Commit Graph
32 Commits
Author SHA1 Message Date
Simon MaertensandClaude Opus 5 e273ca7370 lapack_testing.py: two-decimal percentages in the text summary too
Shares error_percent with the Markdown report, including the 0.01%
floor for nonzero counts; the error columns are rebalanced by one
character so (100.00%) still fits under the rule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 18:13:32 +02:00
Simon MaertensandClaude Opus 5 538cf81a3a lapack_testing.py: two-decimal percentages in the Markdown report
A nonzero error count whose percentage would display as 0.00% is
shown as 0.01% instead, so it cannot read as a zero error rate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 18:13:31 +02:00
Simon MaertensandClaude Opus 5 6d0ac95f50 lapack_testing.py: add --markdown report for CI step summaries
Summary tables first, then one entry per failing output file with
its notable lines collapsed; sized in UTF-8 bytes to stay under
GitHub's 1 MiB step-summary limit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 18:13:30 +02:00
Simon Maertens 4b40962a13 Added JUnit XML output to lapack_testing.py script. 2026-07-30 15:10:28 +02:00
Simon Maertens fdc78becbc lapack_testing.py: add --merge-apis to combine identical API sections
Collapses a library's two API sections into one table when they report
the same errors. Compared per output file, so a missing file or two
different failures with equal totals keep the sections split.
2026-07-29 16:04:10 +01:00
Simon MaertensandClaude Opus 5 6e157dd062 lapack_testing.py: analyze the CBLAS test output
Add the CBLAS suite as its own library, alongside LAPACK and BLAS:

  - A test case per precision and BLAS level. The CBLAS inputs carry no
    output file name, so the same input serves both APIs and the harness
    redirects the output for every level, unlike the BLAS Level 2 and 3
    drivers.
  - --cblas-dir, defaulting to CBLAS/testing, which is the correct
    relative path from both a CMake build root and the source tree. A
    missing directory is skipped silently, since CBLAS is off by
    default.
  - The verdict and count patterns accept the COLUMN-MAJOR and ROW-MAJOR
    tags the CBLAS drivers add, which the BLAS drivers do not emit.

The parser itself is shared with BLAS: both suites report their counts
in the same form, so only the layout tags and the test tables differ.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 16:04:09 +01:00
Simon MaertensandClaude Opus 5 c56597bfbf lapack_testing.py: analyze the BLAS test output
The BLAS tests run under both build systems but nothing reported on
them: the script knew only the LAPACK drivers and scanned only the
LAPACK testing directory.

Add the BLAS suite as its own library:

  - A test case per precision and BLAS level, with the Level 1 drivers
    marked as reading no input, and the Level 2 and 3 drivers marked as
    opening their own output file.
  - parse_blas, which takes run and failure counts from the driver's
    report lines. Computational failures are numerical errors and
    error-exit failures are other errors.
  - --blas-dir, defaulting to BLAS/TESTING. That relative path is
    correct from a CMake build root and from the source tree alike, so
    no existing invocation needs changing. A missing directory is
    skipped silently, since builds against an optimized BLAS have none.
  - --run support, which needs the input-less Level 1 drivers handled
    and the output redirection suppressed for Level 2 and 3. A _64 run
    of Level 2 or 3 requires the generated _64 input; without it the
    driver would write over the default-API output, so it is skipped
    with a message instead.

The drivers exit 0 even when they abandon a run, and print END OF TESTS
even when routines failed, so breakage is read from the text: an
abandoned or misconfigured run, and a Level 2 or 3 file that never
reached its footer, each count as one other error. Detail lines behind
an already counted verdict are shown but not counted, which otherwise
inflates a failing file several fold.

Output from a build whose drivers do not report counts is still
summarized, by counting one test per verdict. That is coarse, but never
silently zero.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 11:24:06 +01:00
Simon MaertensandClaude Opus 5 8bcfbf8d33 lapack_testing.py: report each library in its own summary section
The script is built around a single testing directory and a single set
of test families. Adding another test suite means teaching it that a
test case belongs to a library, that each library has its own directory,
and that each gets its own section of the summary table.

Introduce that structure without changing what is analyzed:

  - TestCase gains a library field, defaulting to LAPACK.
  - The testing directories are held in a per-library mapping, which
    read_output_file, run_test_case and the unrecognized-output scan now
    resolve through instead of assuming one directory.
  - find_unrecognized_outputs takes that mapping and matches each
    directory against only the cases of the library that owns it, so
    --fail-on-unrecognized stays accurate once more directories exist.
  - discover_suffixes takes the cases and directory of one library, so
    the extended API is detected per library rather than globally.
  - The summary loop iterates over (library, API) sections, and
    section_title names both.
  - -t gains a lapack value selecting all LAPACK families, so the
    previous default remains expressible once other libraries are added.

The only visible change is that section headings now read
"LAPACK: Default API" rather than "Default API". Analyzed output is
otherwise byte for byte identical.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 11:24:05 +01:00
Simon Maertens 1fdd793af9 Comsolidated LIN test family 2026-07-27 00:05:42 +02:00
Simon Maertens b730744392 Refactor lapack_testing.py script, to fix several shortcomings and moderize the script as a whole 2026-07-26 18:47:05 +02:00
FrK5E cc90d869b0 Typo 2024-01-25 22:09:22 +01:00
Simon Maertens 5b0687f429 Fixed search phrase for determining the amount of successful tests 2023-12-01 14:05:54 +00:00
Daniel Bielich 3b08c51597 Updating src files, testing all precisions. Some clean-up remains but overall addition is complete 2023-03-16 17:28:32 -04:00
Daniel Bielich fd272e7f44 Progress to the testing implementation in double precision 2022-11-09 11:40:48 -05:00
Julie e18d437924 Making LAPACK's code eternal... no more version and date in source files.
GitHub is now enabling us to track accurately version and date.
No need for this anymore.
2021-03-25 10:16:58 -07:00
Christoph Conrads cda6bf69ba lapack_testing.py: use more idiomatic Python style
Remove C-isms:
* remove unnecessary braces in "if" conditions
* use booleans instead of 0/1 variables
2021-02-20 20:08:13 +00:00
Christoph Conrads 89e8b89400 lapack_testing.py: help show actual default values 2021-02-20 19:51:53 +00:00
Christoph Conrads 95e4515b44 lapack_testing.py: use idiomatic path normalization 2021-02-20 19:42:11 +00:00
Christoph Conrads 7672c5fe57 lapack_testing.py: add missing arguments to getopt
The getopt command line parser did not expect arguments after the
`--bin` and `--dir` options.
2021-02-20 19:40:30 +00:00
Christoph Conrads 2b1eabfdfd lapack_testing.py: remove nonexistent flag in doc
The `-x` flag was never a valid short option for the `getopt` command
line parser.
2021-02-20 19:15:36 +00:00
Christoph Conrads e20af99927 lapack_testing.py: convert to Python3 2021-02-20 18:57:37 +00:00
Christoph Conrads cb3dbb0fe1 lapack_testing.py: python2 explicit in hashbang
Use `python2` explicitly in the hashbang instead of just `python`
because Ubuntu 20.04 does not ship with a `python` executable any
longer.
2021-02-20 18:46:57 +00:00
Malcolm Roberts cd2a9389f1 Add -b (bin) option to lapack_testing.py
When building with cmake, the test executables and data files may not
be in the location where lapack_testing.py.  By adding the -b option,
we can specify this manually.  For example, if we do
  mkdir build && cd build && cmake -DBUILD_TESTING=ON .. && make
we can then call
  ./lapack_testing.py -r -b bin -d ../TESTING
which now runs the tests.
2018-05-17 13:09:59 -06:00
Naresh Kamboju 51501a2553 lapack_testing.py: print results in one line
The purpose of the patches is to print lapack results in a single line
test-case-name sub-tests-running pass/fail status and count

Modified sub test case name to single word
Nonsymmetric Eigenvalue Problem to Nonsymmetric-Eigenvalue-Problem

Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
2017-05-22 17:56:33 +05:30
Sébastien Villemot 6c3b79b35e Fix -r option of lapack_testing.py.
The numbering of tests had been broken in commit ed4e95e4.
2016-12-29 16:41:54 +01:00
Julie ed4e95e4d2 First minor change to 2 stage contribution
Update Makefile to handle .F

Update Cmake build
Note: We have duplicate loop numbers due to Define statement that stops
the compilation with Cmake default option.
Fix coming very shortly
2016-11-19 17:09:13 -08:00
Julie 6df7ab7746 Adapt lapack_testing.py to work on both Python 2 and Python 3
Contributed by Julien Schueller

Sent to Julie on May 8th 2016
Correspond to SVN rev 1748.
2016-06-02 22:39:35 -07:00
julie 986c48f631 fix lapack_testing.py for windows platforms - Fix provided by amran.illoul@ensam.eu on July 9th 2014-07-09 16:43:58 +00:00
julie 1351e9e3ee fix Illegal grep pb in lapack_testing 2013-11-17 01:15:04 +00:00
julie 94c1e9adda Slight modification to Lawrence patch for xTPQRT - Update conditions for testing parameter L - MIN(M,N) can be 0 2013-11-17 01:08:52 +00:00
julie 55890ddab9 Improve CMAKE BUILD system and OUTPUT PARSING when not all precisions are needed.
The following variables will control the precision to be built:
  BUILD_SINGLE
  BUILD_DOUBLE
  BUILD_COMPLEX
  BUILD_COMPLEX16

For mixed precision SINGLE/DOUBLE routines, both BUILD_SINGLE and BUILD_DOUBLE needs to be on.
(same for COMPLEX/COMPLEX16)
2011-09-23 19:50:27 +00:00
julie 27164edcec CHANGE IN THE SCRIPT:
lapack_testing.py has been moved to the top directory
One argument was added :
     - d [dir] is to indicate where is the LAPACK testing directory (.out files). By default, the script will use .-d or --dir to 
The -f argument was replaced by -r argument. Now by default the script will use the LAPACK output.
     - r is to use to run the LAPACK tests then analyse the output (.out files). By default, the script will not run all the LAPACK tests

INTEGRATION:
Integration of the LAPACK Testing parsing in the Makefile and CMake build process.

In the Makefile build: now the lapack_testing target will call the script after running the tests
In the CMAKE build: after the tests are run, the script will be executed with the option -s (short)
the end of the output will look like this:
100% tests passed, 0 tests failed out of 98

Total Test time (real) = 211.83 sec
SUMMARY                 numerical error         other error  
================        =================       ================  
REAL                    40      (0.004%)        0       (0.000%)
DOUBLE PRECISION        202     (0.020%)        0       (0.000%)
COMPLEX                 2       (0.000%)        0       (0.000%)
COMPLEX16               28      (0.005%)        0       (0.000%)

--> ALL PRECISIONS      272     (0.009%)        0       (0.000%)
2011-06-28 08:07:35 +00:00