📄️ Creating a component
In this tutorial, we will create some PingPong elements based on the classic protocol where a sender sends an event (ping) and a receiver responds with another event (pong). The simulation will be very simple: one ping-pong exchange. We will create two separate component types, a "Sender" to send a "ping" event and a "Responder" that responds with a "pong" event as shown below.
📄️ Element Naming Conventions
Certain names in SST that are used as part of input configuration must follow naming conventions which essentially require that they be valid Python variable names.
📄️ Contributing to SST
Interested in contributing to the SST repositories? This page describes the process and gives guidelines for contributing to specific SST repositories. To share an element library, tool, or other SST-related capability with the SST community, add a pointer on the Community page.
📄️ AutoTesting
SST employs automatic testing (or "AutoTesting") for both pull-requests prior to allowing merge and on all devel and master branches in nightly regression jobs. Pull-request testing is run on a subset of SST runtime variants and supported platforms whereas the nightly testing covers all supported platforms and several variants (e.g., serial, parallel) on each.
📄️ Running SST tests
SST Core includes two test utilities sst-test-core and sst-test-elements. These are python-based utilities built on the unittest module and modified for SST. The code for this framework resides in sst-core/src/sst/core/testingframework/. Pull request and nightly jobs that run tests on Core, Elements, or third-party element libraries, do so by using this framework to locate and run test suites. The utilities are nearly identical and references to one in this guide apply to both unless otherwise stated.
📄️ Testing FAQ
Test Frameworks
📄️ Creating test suites
The SST testing framework is built on the Python unittest library. Support for running tests concurrently additionally builds on the Python testtools extensions.
📄️ Test framework API
The following API functions are provided by the SST test framework. Tests may use these in combination with any built-in Python functions.