CSAF::...ryTests(3pm)

πŸ“¦
version 0.26 Β· 2 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– CSAF::Validator::MandatoryTests β€” bestie edition πŸ’–

okay so this is a page from the User Contributed Perl Documentation, and the module is CSAF::Validator::MandatoryTests (the page name gets all truncated to CSAF::...ryTests(3pm) which is honestly so dramatic of it πŸ’…). sit down, grab a strawberry, we're doing CSAF validation together πŸ“βœ¨


🌸 NAME 🌸

CSAF::Validator::MandatoryTests β€” the tests that MUST NOT fail, fr fr. no cap. 🫢


✨ SYNOPSIS ✨

here's the whole vibe, copy-paste ready:

use CSAF::Validator::MandatoryTests;

my $v = CSAF::Validator::MandatoryTests->new( csaf => $csaf );

$v->exec_test('6.1.5');
$v->TEST_6_1_5;

like, you make one, you run a test by its number, or you call the method directly. both work, both slay. πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

so the whole point: mandatory tests MUST NOT fail at a valid CSAF document. that's not me being cute, that's the spec, and it's giving "non-negotiable." πŸ’€

here's the full roster of mandatory tests, all 33 of them, with the 6.1.27 profile tests nested inside like little baby tests 🧚:

6.1.1 Missing Definition of Product ID
6.1.2 Multiple Definition of Product ID
6.1.3 Circular Definition of Product ID
6.1.4 Missing Definition of Product Group ID
6.1.5 Multiple Definition of Product Group ID
6.1.6 Contradicting Product Status
6.1.7 Multiple Scores with same Version per Product
6.1.8 Invalid CVSS
6.1.9 Invalid CVSS computation
6.1.10 Inconsistent CVSS
6.1.11 CWE
6.1.12 Language
6.1.13 PURL
6.1.14 Sorted Revision History
6.1.15 Translator
6.1.16 Latest Document Version
6.1.17 Document Status Draft
6.1.18 Released Revision History
6.1.19 Revision History Entries for Pre-release Versions
6.1.20 Non-draft Document Version
6.1.21 Missing Item in Revision History
6.1.22 Multiple Definition in Revision History
6.1.23 Multiple Use of Same CVE
6.1.24 Multiple Definition in Involvements
6.1.25 Multiple Use of Same Hash Algorithm
6.1.26 Prohibited Document Category Name
6.1.27 Profile Tests
    6.1.27.1 Document Notes
    6.1.27.2 Document References
    6.1.27.3 Vulnerabilities
    6.1.27.4 Product Tree
    6.1.27.5 Vulnerability Notes
    6.1.27.6 Product Status
    6.1.27.7 VEX Product Status
    6.1.27.8 Vulnerability ID
    6.1.27.9 Impact Statement
    6.1.27.10 Action Statement
    6.1.27.11 Vulnerabilities
6.1.28 Translation
6.1.29 Remediation without Product Reference
6.1.30 Mixed Integer and Semantic Versioning
6.1.31 Version Range in Product Version
6.1.32 Flag without Product Reference
6.1.33 Multiple Flags with VEX Justification Codes per Product

πŸ’œ METHODS πŸ’œ

CSAF::Validator::MandatoryTests inherits all methods from CSAF::Validator::Base β€” like, everything, it's all yours β€” and then it implements these new ones below. each one is basically a test with a glow-up. 🌈

  • TEST_6_1_1 β€” Missing Definition of Product ID
  • TEST_6_1_2 β€” Multiple Definition of Product ID
  • TEST_6_1_3 β€” Circular Definition of Product ID
  • TEST_6_1_4 β€” Missing Definition of Product Group ID
  • TEST_6_1_5 β€” Multiple Definition of Product Group ID
  • TEST_6_1_6 β€” Contradicting Product Status
  • TEST_6_1_7 β€” Multiple Scores with same Version per Product
  • TEST_6_1_8 β€” Invalid CVSS
  • TEST_6_1_9 β€” Invalid CVSS computation
  • TEST_6_1_10 β€” Inconsistent CVSS
  • TEST_6_1_11 β€” CWE
  • TEST_6_1_12 β€” Language
  • TEST_6_1_13 β€” PURL
  • TEST_6_1_14 β€” Sorted Revision History
  • TEST_6_1_15 β€” Translator
  • TEST_6_1_16 β€” Latest Document Version
  • TEST_6_1_17 β€” Document Status Draft
  • TEST_6_1_18 β€” Released Revision History
  • TEST_6_1_19 β€” Revision History Entries for Pre-release Versions
  • TEST_6_1_20 β€” Non-draft Document Version
  • TEST_6_1_21 β€” Missing Item in Revision History
  • TEST_6_1_22 β€” Multiple Definition in Revision History
  • TEST_6_1_23 β€” Multiple Use of Same CVE
  • TEST_6_1_24 β€” Multiple Definition in Involvements
  • TEST_6_1_25 β€” Multiple Use of Same Hash Algorithm
  • TEST_6_1_26 β€” Prohibited Document Category Name
  • TEST_6_1_27_1 β€” Profile Test - Document Notes
  • TEST_6_1_27_2 β€” Profile Test - Document References
  • TEST_6_1_27_3 β€” Profile Test - Vulnerabilities
  • TEST_6_1_27_4 β€” Profile Test - Product Tree
  • TEST_6_1_27_5 β€” Profile Test - Vulnerability Notes
  • TEST_6_1_27_6 β€” Profile Test - Product Status
  • TEST_6_1_27_7 β€” Profile Test - VEX Product Status
  • TEST_6_1_27_8 β€” Profile Test - Vulnerability ID
  • TEST_6_1_27_9 β€” Profile Test - Impact Statement
  • TEST_6_1_27_10 β€” Profile Test - Action Statement
  • TEST_6_1_27_11 β€” Profile Test - Vulnerabilities
  • TEST_6_1_28 β€” Translation
  • TEST_6_1_29 β€” Remediation without Product Reference
  • TEST_6_1_30 β€” Mixed Integer and Semantic Versioning
  • TEST_6_1_31 β€” Version Range in Product Version
  • TEST_6_1_32 β€” Flag without Product Reference
  • TEST_6_1_33 β€” Multiple Flags with VEX Justification Codes per Product

🫢 SUPPORT 🫢

πŸ› Bugs / Feature Requests

found a bug? want a feature? please report it through the issue tracker at <https://github.com/giterlizzi/perl-CSAF/issues>. and the best part β€” you get notified automatically of any progress on your issue. no refreshing, no stalking the thread, it just comes to you. main character treatment honestly. πŸ‘‘

πŸ“¦ Source Code

this is open source software, bestie. the code repo is out there for public review and contribution, under the terms of the license. come vibe with it πŸ’œ

<https://github.com/giterlizzi/perl-CSAF>

git clone https://github.com/giterlizzi/perl-CSAF.git

πŸ‘‘ AUTHOR πŸ‘‘

  • Giuseppe Di Terlizzi <gdt@cpan.org>

this software is copyright (c) 2023-2025 by Giuseppe Di Terlizzi.

it's free software β€” you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. periodt. πŸ’…


and that's the whole page, bestie. go validate something and make it flawless. ✨

signing off from perl v5.40.1, dated 2025-09-03, on the CSAF::...ryTests(3pm) page πŸŽ€

πŸ“¦ where this page comes from