Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-log

Structured event logging for Pudu: message templates, enrichment, filtering, formatting, and sinks

0.1.0Apache-2.01

InstallClose

TESTING.md

Markdown33 lines2.2 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/PuduLangLog/Domain/**template parsing, capture and binding, display and formatting of every value kind, JSON, dates, numbers, rolling file names, retry schedules, masking, settings plans, compact JSON reading, recency order
ExpressionsExpressionsTest, Expressions/TemplateTestliterals, names, built-ins, operators, wildcards, functions, syntax errors, templates and directives
PipelineLoggerTest, TopologyTest, ValueTest, TimingTestlevels, switches, overrides, context, enrichment, filters, sub-loggers, reloading, audit and fallible sinks, timed operations
Sinkstest/PuduLangLog/Sinks/**console, file rolling and retention, HTTP batching, async queues, memory, map, observable
FormattingFormatting/**text, JSON, and compact JSON output, and reading compact JSON back
ConfigurationSettingsTest, BridgeTestsettings applied end to end, standard factories, and the standard library bridge
Webtest/PuduLangLog/Web/**request completion events and correlation identifiers
Packagetest/Package/LayoutTestevery shipped module is the root PuduLangLog 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
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/, in four parallel shards, 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.

Referenced by

[[architecture/_MOC]] · [[CHANGELOG]] · [[handoffs/2026-09-29-complete-api]]