Skip to content

An integration test meant to be run against a live, already-installed, rabbit system.

License

Notifications You must be signed in to change notification settings

NearNodeFlash/nnf-integration-test

Repository files navigation

nnf-integration-test

In this repository, there are two different test suites:

  • nnf-integration-test
  • nnf-system test

Both are meant to be run against a live, already-installed, rabbit system.

Integration Testing

This is meant to be used as a submodule of nnf-deploy so that it is built against the same version of the code that has been deployed to the live rabbit system.

nnf-integation-test does not run workflows through flux and is intended to provide a deeper level of testing, since it can easily retrieve NNF resources in kubernetes. By default, this test uses all available computes/rabbits in the system configuration. It is best for smaller systems to do localized testing.

NNF test infrastructure and individualized tests reside in the /internal directory. Tests are expected to run against a fully deployed cluster reachable via your current k8s configuration context. NNF test uses the Ginkgo test framework.

Various Ginkgo options can be passed into go test. Common options include -ginkgo.fail-fast, -ginkgo.show-node-events, and -ginkgo.v

go test -v ./test/... -ginkgo.fail-fast -ginkgo.v

Ginkgo also provides the Ginkgo CLI that can be used for enhanced test features like parallelization, randomization, and filtering.

Test Definitions

Individual tests are listed in /int_test.go. Tests are written from the perspective of a workload manager and should operate only on DWS resources when possible.

Test Options

Test Options allow the user to extend test definitions with various options. Administrative controls, like creating NNF Storage Profiles or NNF Container profiles, configuring a global Lustre File System, or extracting Lustre parameters from a persistent Lustre instance, are some example test options.

System Testing

nnf-system-test runs all tests through flux and is intended to provide testing at the user level. This can be customized to run on any number of compute nodes and can also run multiple jobs in parallel.

See system-test/README.md for more.