如何理解 Perl 脚本
How to understand a Perl script
我正在尝试理解以下 Perl 脚本。我是 C 程序员,但无法理解这个脚本:
use OpenSSL::Test::Utils;
use OpenSSL::Test qw/:DEFAULT srctop_file/;
my $test_name = "test_sysdefault";
setup($test_name);
plan skip_all => "$test_name is not supported in this build"
if disabled("tls1_2") || disabled("rsa");
plan tests => 1;
$ENV{OPENSSL_CONF} = srctop_file("test", "sysdefault.cnf");
ok(run(test(["sysdefaulttest"])), "sysdefaulttest");
问题是.c文件'test_data_int_test.h'中的以下定义没有按预期生效:
/* sysdefault.cnf */
char _sysdefault_cnf[] =
"# Configuration file to test system default SSL configuration\n"
"\n"
"openssl_conf = default_conf\n"
"\n"
"[ default_conf ]\n"
"\n"
"ssl_conf = ssl_sect\n"
"\n"
"[ssl_sect]\n"
"\n"
"system_default = ssl_default_sect\n"
"\n"
"[ssl_default_sect]\n"
"MaxProtocol = TLSv1.2\n"
"MinProtocol = TLSv1.2\n";
特别是最后两行,其中最小值和最大值设置为 TLSv1.2。
我是否需要以任何方式修改上述 perl 脚本?
OpenSSL::Test 不在 CPAN 上,所以这都是(有根据的)猜测。您可能应该与向您提供模块的人确认这一点。
看起来 OpenSSL::Test 继承自像 Test::More or Test::Class 这样的标准 Perl 测试模块,因此阅读他们的文档会对您有所帮助。
Perl 测试套件总是包含一个计划。这只是预期的测试数量 运行。测试套件在某种测试工具(通常为 prove
)中将是 运行,并且测试工具会将预期的测试数量与实际数量 运行 进行比较,因此可以判断如果这两个数字不匹配时发生了奇怪的事情。例如,如果测试数量 运行 少于预期数量,这可能意味着您的测试程序在完成之前崩溃了。
在您的代码中,有一个测试(调用 ok()
的代码行)因此我们将测试计划设置为 1。
我正在尝试理解以下 Perl 脚本。我是 C 程序员,但无法理解这个脚本:
use OpenSSL::Test::Utils;
use OpenSSL::Test qw/:DEFAULT srctop_file/;
my $test_name = "test_sysdefault";
setup($test_name);
plan skip_all => "$test_name is not supported in this build"
if disabled("tls1_2") || disabled("rsa");
plan tests => 1;
$ENV{OPENSSL_CONF} = srctop_file("test", "sysdefault.cnf");
ok(run(test(["sysdefaulttest"])), "sysdefaulttest");
问题是.c文件'test_data_int_test.h'中的以下定义没有按预期生效:
/* sysdefault.cnf */
char _sysdefault_cnf[] =
"# Configuration file to test system default SSL configuration\n"
"\n"
"openssl_conf = default_conf\n"
"\n"
"[ default_conf ]\n"
"\n"
"ssl_conf = ssl_sect\n"
"\n"
"[ssl_sect]\n"
"\n"
"system_default = ssl_default_sect\n"
"\n"
"[ssl_default_sect]\n"
"MaxProtocol = TLSv1.2\n"
"MinProtocol = TLSv1.2\n";
特别是最后两行,其中最小值和最大值设置为 TLSv1.2。
我是否需要以任何方式修改上述 perl 脚本?
OpenSSL::Test 不在 CPAN 上,所以这都是(有根据的)猜测。您可能应该与向您提供模块的人确认这一点。
看起来 OpenSSL::Test 继承自像 Test::More or Test::Class 这样的标准 Perl 测试模块,因此阅读他们的文档会对您有所帮助。
Perl 测试套件总是包含一个计划。这只是预期的测试数量 运行。测试套件在某种测试工具(通常为 prove
)中将是 运行,并且测试工具会将预期的测试数量与实际数量 运行 进行比较,因此可以判断如果这两个数字不匹配时发生了奇怪的事情。例如,如果测试数量 运行 少于预期数量,这可能意味着您的测试程序在完成之前崩溃了。
在您的代码中,有一个测试(调用 ok()
的代码行)因此我们将测试计划设置为 1。