2012-02-17 79 views
1

我在Perl模块IO :: Socket :: SSL中发现了一个错误,我可以修复它,但是我担心测试该修复程序。我从Debian下载了源码包(因为我打算为此生成Debian包或补丁),并查看t/目录。在那里,我发现测试覆盖面最好不足。开发Perl和测试Perl

所以我想问问是否有一个众所周知的程序来测试这段代码。是否有另一个测试(不在发行版中)具有更好的覆盖范围?另外,我想使用不在核心发行版(Test :: LeakTrace)中的测试模块进行测试。那会好吗?

+0

我希望如果在软件包不可用时测试失败,那么使用不在核心发行版中的软件包会很好...... – sarnold 2012-02-17 01:12:17

+1

您是否发现IO :: Socket :: SSL中的错误,或者在版本的Debian船?如果你还没有,那么检查CPAN(可能是源代码仓库,如果它是公开的)是否值得检查它是否已被修复是值得的。在这种情况下,您可以反向移植修补程序,或者查看有关在Debian中更新软件包的信息。 – kbenson 2012-02-17 01:18:27

+1

您还没有在Perl中发现错误。你在Perl模块中发现了一个错误。一个不是核心的一部分。 – 2012-02-17 23:27:05

回答

8

快速CPAN搜索表示IO::Socket::SSL is on CPAN。此外,从5.14.1开始的corelist(http://perldoc.perl.org/corelist.html)不会报告它的知道,所以它不会与核心Perl分发。所以,对你的问题。

首先,CPAN告诉我Steffen Ullrich仍然是该模块的作者和维护者,虽然文档声明版权截至2005年,但他最新的CPAN版本是2011年。如果您不使用Debian Sid,他有一个很好的机会,他已经解决了你的问题,但它还没有被重新包装为Debian。在你做任何事之前,你应该试着抓住最新的消息来源。您可以通过从CPAN下载tarball的副本来完成此操作。 (许多模块在GitHub上维护源代码控制,并且可能比CPAN tarball有更新的发展,但Steffen没有告诉我们在哪里找到它们,所以我们只需要从那里开始。)完整的测试套件应该在这里压缩包。

的过程中,你可能知道,是先建源:

perl Makefile.PL 
make 

然后运行该测试套件:

make test 

如果测试不包括你需要什么,你应更新测试和电子邮件Steffen(他的电子邮件和网站可在author's page)。他可能会对如何最好地提供测试补丁有一些想法。

我相信CPAN在那里,应该使用,所以如果它是由我决定的,我会说你应该使用Test :: LeakTrace并将其指定为构建依赖项。不过,Steffen可能会有不同的感受,所以你应该和他谈谈。

希望有帮助!祝你好运!

+0

http://stackoverflow.com/questions/1094125/try-to-use-module-in-perl-and-print-message-if-module-not-available应该是有用的输入。只需使用Test :: More的skip()和它一起使用即可。 – 2012-02-18 00:14:29