tcpdump mailing list archives

Re: tcpdump testsuite and Perl


From: Denis Ovsienko via tcpdump-workers <tcpdump-workers () lists tcpdump org>
Date: Tue, 28 Jan 2020 17:17:31 -0500 (EST)

--- Begin Message --- From: Denis Ovsienko <denis () ovsienko info>
Date: Tue, 28 Jan 2020 23:17:54 +0100 (CET)
Currently on OpenCSW Solaris 10:

"./tests/TESTrun
TESTrun needs YAML.pm. apt install libyaml-perl/yum install
per-YAML/cpanm YAML at ./tests/TESTrun line 10.
gmake: *** [Makefile:448: check] Error 2"

Missing package?

The new dependency makes it more difficult to run tests and will break
package builds downstream (thus penalising people that cared enough to
make "make check" a part of the build). Maybe the cost of the solution
does not justify the problem it solves (which it would be nice to
state)?

But if the problem is worth it, maybe the solution could use a very
small subset of YAML, which could be implemented in a couple screens of
self-supplied code. After all, it is only one file that the script
needs to process, and it is only the script that processes the input
file, and they both live in the same repository. So it could be any
format that works out of the box, including plain Perl code, which would
easily accommodate the props for conditional tests and validation along
the following lines:


my $can_test_openssl = compiled_with_openssl();

my %testlist = (
        'bgp-4byte-asn' => {
                'pcap' => 'bgp-4byte-asn.pcap',
                'text' => 'bgp-4byte-asn.out',
                'args' => '-v',
        },
        'bgp-4byte-asdot' => {
                'pcap' => 'bgp-4byte-asn.pcap',
                'text' => 'bgp-4byte-asdot.out',
                'args' => '-vb',
        },
        'edsa' => {
                'pcap' => 'edsa.pcap',
                'text' => 'edsa.out',
        },
        'edsa-e' => {
                'pcap' => 'edsa.pcap',
                'text' => 'edsa-e.out',
                'args' => '-e',
        },
        'isakmp4' => {
                'pcap' => 'isakmp4500.pcap',
                'text' => 'isakmp4.out',
                'args' => "-E \"file ${testsdir}/esp-secrets.txt\"",
                'when' => $can_test_openssl,
        },
);

Does it make sense?

-- 
    Denis Ovsienko

--- End Message ---
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers () lists tcpdump org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Current thread: