Skip to content

Create test-framework and define commit-procedure #5

@trantalaiho

Description

@trantalaiho

First create a parameterizable test-case with self-checking (similar to test_perf.cu) and then write a set of tests that constitute an acceptance test for the software.

The features tested should include basically all features:

  • Normal histograms (atomic_inc)
  • Scalar histograms (atomic_add)
  • Generalized histograms (generic - find min/max, etc - odd output types)
  • All bin ranges (0 to 16000 - prefer at least one test for each range)
  • Multiple input-index ranges (0 to ... )
  • Multiple results per input
  • Streams
  • Accumulating on top previous results
  • Result-histograms in both CPU and GPU memory
  • User-given temporary arrays
  • At least one test with floating point outputs - careful with automatic checking
  • ND-input-indices (if/when implemented -- see Support for Nd input indices)
  • Ignore keys (if/when implemented -- see Support for ignoring/discarding input keys)
  • Large input-indices and unsigned indices (See Support for large input-index ranges)

The commit procedure could be something like:

  • Run automated acceptance tests -- all must pass (or existing issue preventing)
  • Run performance tests -- No performance regressions allowed (unless to fix a major bug)
  • Run test_minimal.cu
  • Compile all tests in project
  • Repeat for all architectures

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions