• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

peczenyj / lua-gdpr-iab-tcfv2 / 26565707503
91%

Build:
DEFAULT BRANCH: devel
Ran 28 May 2026 09:12AM UTC
Jobs 1
Files 11
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 May 2026 09:11AM UTC coverage: 90.524% (+0.8%) from 89.694%
26565707503

push

github

web-flow
feat(validator): align with Go lib-gdpr strict-path semantics (#26)

Port the Go lib-gdpr 'redesign' branch strict-path semantics (the parity
target the Perl reference now mirrors in lib/GDPR/IAB/TCFv2/Validator.pm
and t/18-go-parity.t) to the Lua validator.

Behavioural changes:
- min_tcf_policy_version >= 5 auto-enables verify_disclosed_vendors
  (Go: verifyDisclosedVendors ||= MinTcfPolicyVersion >= 5). The
  constructor shallow-copies config so the caller's table is never
  mutated.
- New TCF_V23_DEADLINE = 17722368000 (deciseconds, since parser.created
  is the raw 36-bit TCF Created field). The strictly-after comparison
  mirrors Go's created.After(v23Deadline).
- _check_policy_version: single failure with deadline precedence, then
  the explicit floor. nil policyVersion (lenient truncation) is treated
  as below any requirement (fail-closed).
- _check_disclosed: mandatory-segment rule decoupled from the verify
  flag. Fires on (a) any string created strictly after the v2.3
  deadline, or (b) a policy>=5 string under a policy>=5 floor (Go
  branch b requires the string's OWN policy>=5). The verify branch
  only runs when a segment is present.
- _check_vendor_gate: global short-circuit when the vendor has neither
  vendor-level consent nor LI, in both validate (fail-fast) and
  validate_all (exhaustive) modes.
- is_vendor_allowed_for_flexible_purpose: mirrors the Perl parser
  method exactly (carve-out forces consent default, then
  RequireConsent => consent, RequireLI => LI, NotAllowed => deny).
- Flexible-purpose failures now report the Go runFlexibleCheck
  effective-basis reason (NotAllowed => publisher-restriction reason;
  carve-out outranks the generic LI failure).
- _run_validation restructured into the same ordered helper pipeline
  as Perl: policy version, disclosed vendors, vendor gate, consent
  purposes, LI purposes.

Golden corpus resynced from
/home/tiago/work/perl/GDPR-IAB-TCFv2/t/corpus/golden.jsonl.gz via
scripts/optimize_golden... (continued)

229 of 239 new or added lines in 1 file covered. (95.82%)

15 existing lines in 1 file now uncovered.

726 of 802 relevant lines covered (90.52%)

7017.78 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
93.19
0.18% src/gdpr/iab/tcfv2/validator.lua

Coverage Regressions

Lines Coverage ∆ File
15
93.19
0.18% src/gdpr/iab/tcfv2/validator.lua
Jobs
ID Job ID Ran Files Coverage
1 26565707503.1 28 May 2026 09:12AM UTC 11
90.52
GitHub Action Run
Source Files on build 26565707503
  • Tree
  • List 11
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • f472be4d on github
  • Prev Build on devel (#26043197597)
  • Next Build on devel (#26570737756)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc