#!/usr/bin/perl use warnings; use strict; use Mail::SPF::Test; print("SPF test suite statistics:\n"); my $yaml = do { local $/; <> }; my $test_suite = Mail::SPF::Test->new_from_yaml($yaml); print("\n"); printf("%-2s %-40s %5s %5s %-19s\n", 'S#', 'Scenario', 'Tests', 'RRs', 'Spec References'); print('-' x 79, "\n"); my $scenario_id = 0; my $total_test_cases_count = 0; my $total_rrs_count = 0; foreach my $scenario ($test_suite->scenarios) { $scenario_id++; my $test_cases_count = scalar($scenario->test_cases); $total_test_cases_count += $test_cases_count; my $rrs_count = scalar($scenario->records); $total_rrs_count += $rrs_count; printf( "%2d %-40.40s %5d %5d %-19s\n", $scenario_id, $scenario->description || '', $test_cases_count, $rrs_count, join(', ', $scenario->spec_refs('*.*')) ); } print('-' x 79, "\n"); printf("%-44s %5s %5s\n", 'Total:', $total_test_cases_count, $total_rrs_count);