У меня есть модуль Perl под названием CGI::Github::Webhook, чей тест люкс works fine on Travis CI so far on the branch master. Но поскольку это модуль для написания сценариев CGI, я хотел протестировать его с помощью CGI::Test, поскольку это было бы ближе к реальным сценариям.«.../auto/List/Util/Util.so: undefined symbol: PL_stack_sp at .../XSLoader.pm" только при запуске набора тестов с CGI :: Test _and_ на Travis CI
Но every Travis CI run in the branch cgi-test
failed so far. для прогонов с Perl 5.24 и выше, за исключением, каждый не удалось запустить содержали эти строки, только с разными номерами версий Perl в пути:
Attempt to reload List/Util.pm aborted.
Compilation failed in require at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Sub/Exporter/Progressive.pm line 9.
BEGIN failed--compilation aborted at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Sub/Exporter/Progressive.pm line 9.
Compilation failed in require at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Devel/GlobalDestruction.pm line 11.
BEGIN failed--compilation aborted at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Devel/GlobalDestruction.pm line 11.
Compilation failed in require at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Moo/_Utils.pm line 21.
BEGIN failed--compilation aborted at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Moo/_Utils.pm line 21.
Compilation failed in require at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Moo.pm line 4.
BEGIN failed--compilation aborted at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/Moo.pm line 4.
Compilation failed in require at /home/travis/build/xtaran/CGI-Github-Webhook/build_dir/lib/CGI/Github/Webhook.pm line 11.
BEGIN failed--compilation aborted at /home/travis/build/xtaran/CGI-Github-Webhook/build_dir/lib/CGI/Github/Webhook.pm line 11.
Compilation failed in require at ./cgitest.pl line 10.
BEGIN failed--compilation aborted at ./cgitest.pl line 10.
script /cgi-bin/cgitest.pl generated no valid headers at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/CGI/Test.pm line 468.
Use of uninitialized value $in_fname in unlink at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/CGI/Test.pm line 469.
Use of uninitialized value $in_fname in concatenation (.) or string at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/CGI/Test.pm line 469.
can't unlink : No such file or directory at /home/travis/perl5/perlbrew/perls/5.22.0/lib/site_perl/5.22.0/CGI/Test.pm line 469.
Пример взят из currently latest run under Perl 5.22. Симптомы на Perl 5.24 более или менее одинаковы, только исходное сообщение об ошибке выглядит по-разному.
Кто-нибудь знает, что здесь не так? У меня даже есть шанс исправить это? Похож на меня. Но в каком модуле? Я не нашел соответствующих отчетов об ошибках against CGI-Test, Scalar-List-Utils или XSLoader, но ожидал, что такая проблема уже сообщается, поскольку она не кажется новой. (Первое замечено несколько месяцев назад.)
Хотя это не сработает, если я запустил этот набор тестов с системными модулями Perl и Perl на Debian Unstable (в настоящее время Perl версии 5.22), поэтому я не могу воспроизвести проблемы на местном уровне.
Я попытался клонировать ветку 'cgi-test' на моем ноутбуке Ubuntu, а затем запустить' dzil run prov' для проверки неудачных тестов. Первый запуск завершился неудачно из-за недостающих модулей: File :: Slurper, Test :: File и CGI :: Test. После установки этих трех модулей все тесты прошли. –
Спасибо за комментарий. Обычно я использую 'dzil smoke' или' dzil test' вместо 'dzil run prov'. Не уверен, что это имеет значение здесь. Dist :: Zilla должен собрать все необходимые модули и записать их в 'META.yml' и' META.json'. И поскольку сообщение об ошибке явно не является проблемой «недостающего модуля», я сомневаюсь, что проблемы, с которыми вы столкнулись, связаны между собой. –