Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-environment

Environment files for Pudu: load .env variables safely with layered files, discovery, expansion, typed reads, and secrets kept out of every message

0.1.0Apache-2.01

InstallClose

TESTING.md

Markdown32 lines1.9 KB

GitHub ↗

Testing


type: architecture tags: [architecture, test] aliases: [Testing]


Every suite is a file under test/, mirroring the module it covers; pudu test test runs them all and each suite names its failed checks on stderr.

LevelSuitesWhat they prove
Domaintest/PuduLangEnvironment/Domain/**, test/PuduLangEnvironment/Utils/**every rule of the pure modules: comments, keys, quotes, multi-line values, escapes, inline comments, expansion and its defaults, layering, cascade names and unsafe names, decoding, and value conversion
Moduleone suite per public moduleoptions and their conflicts, sources of every kind and encoding, probing and cascading on real temporary trees, strict and lenient loading, typed reads, secrets, required keys, child-process hand-off, and redaction
Packagetest/Package/LayoutTestevery shipped module is the root PuduLangEnvironment or under it, is named after its path, and agrees with the manifest
Vaulttest/Package/VaultTestthe vault mirrors src/ page for page, every page has a Grill Log, every exported function is in its page's signatures, every link resolves, and every page lists the pages linking to it
Integrationtest/Integration/LoadScenarioTesta layered project tree loaded end to end with every option that changes the answer
Examplesexamples/*.pudu, run by CIthe documented programs compile and answer 0
Mutation[[tools/Mutate]]the suites notice single-point changes to the pure layer

The mutation gate runs on pull requests over Domain/ with a threshold of 100: every valid mutant is killed. A mutant that cannot change behaviour is removed by simplifying the code rather than excused.

Every suite that reads a secret-shaped value also checks that no Problem, description, or rendering of the result contains it.

Referenced by

[[CHANGELOG]] · [[architecture/_MOC]] · [[handoffs/2026-10-07-initial-package]]