·
Last changedVersion:
This version passed the hardening gate. Hardening updated the skill content and independently checked the resulting changes. Classified findings before hardening: 2. Classified findings closed: 0. Classified findings remaining: 2. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 5.
1
1
1
1
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Open | |
SKILL.md | Malicious Code & Command Execution | Command injection | Low | Open |
2 findings
For questions about disabling tests without deleting them:
-broken, for example scope: [mr-github] -> scope: [mr-github-broken].@pytest.mark.flaky_in_dev skips
in the default dev environment, and @pytest.mark.flaky skips in LTS.The GitHub Actions runner invokes launch_nemo_run_workload.py, which uses
nemo-run to launch a DockerExecutor container. The repo is bind-mounted
at /opt/megatron-lm; training data is mounted at /mnt/artifacts.
Unit tests are dispatched through torch.distributed.run:
{assets_dir}/logs/1/ and are uploaded as a
GitHub artifact after the run.Functional tests are driven by
tests/functional_tests/shell_test_utils/run_ci_test.sh. Only rank 0 runs the
pytest validation step; training output from all ranks is uploaded as an artifact.
Flaky-failure auto-retry: launch_nemo_run_workload.py retries up to
3 times for known transient patterns (NCCL timeout, ECC error, segfault,
HuggingFace connectivity, …) before declaring a genuine failure.
Recipes live in tests/test_utils/recipes/ and are parsed by
tests/test_utils/python_scripts/recipe_parser.py. Each file expands a
cartesian products block into individual workload specs:
Key runtime placeholders: {assets_dir}, {artifacts_dir}, {test_case},
{environment}, {platforms}, {n_repeat}.
To temporarily disable a test case in a recipe YAML, suffix its scope value
with -broken — do not delete the entry:
All unit tests initialize a torch.distributed group, so every invocation
requires GPU access and must go through torch.distributed.run:
Use tests/unit_tests/run_ci_test.sh to reproduce a CI bucket failure exactly.
For ad-hoc runs, prefer the direct torch.distributed.run invocations above.
pyproject.toml sets addopts = --durations=15 -s -rA — stdout is not
captured (-s), so ranks interleave during multi-rank runs. Override with
--capture=fd when debugging a specific rank.tests/unit_tests/conftest.py looks for test data under /opt/data and
attempts a download if missing. Supply it manually or skip data-dependent
tests when running outside the canonical container.tests/unit_tests/<category>/test_<name>.py.tests/unit_tests/conftest.py.@pytest.mark.internal — skipped on legacy tag@pytest.mark.flaky_in_dev — skipped in dev environment (CI default; use this to disable a flaky test without blocking the standard pipeline)@pytest.mark.flaky — skipped in lts environment@pytest.mark.experimental — latest tag onlytests/test_utils/recipes/h100/unit-tests.yaml.Create tests/functional_tests/test_cases/<model>/<test_name>/.
Write model_config.yaml with MODEL_ARGS, ENV_VARS, and TEST_TYPE.
Add a YAML recipe under tests/test_utils/recipes/h100/ (and gb200/ if
needed). Required fields: scope, environment, platform, n_repeat,
time_limit.
Push the PR, add the label "Run functional tests" to trigger a full run.
After a successful run, download golden values:
Commit the downloaded golden values.
| Problem | Cause | Fix |
|---|---|---|
Test passes locally but fails in CI | Different environment or data path | Check |
Golden value mismatch after a code change | Numerical regression | Download new golden values via |
| GB200 jobs require maintainer status | Ask a maintainer to trigger |
Get started with chainctlchainctl skill install public/nvidia/mcore-testing:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/nvidia/skills/mcore-testing:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
LICENSE
SKILL.md
evals/evals.json
skill-card.md
skill.oms.sig