tox + pytest выдает ошибку вызова с кодом -11 только на travis - PullRequest
2 голосов
/ 14 июня 2019

У меня есть код, который при локальном тестировании на токсины проходит все тесты. Однако на Трэвисе выдает следующую ошибку:

tests/test_cli.py::test_spin ERROR: InvocationError for command /home/travis/build/21cmfast/21cmFAST/.tox/py36/bin/py.test -vv --basetemp=/home/travis/build/21cmfast/21cmFAST/.tox/py36/tmp --cov py21cmfast (exited with code -11)
___________________________________ summary ____________________________________
ERROR:   py36: commands failed

The command "tox" exited with 1.

Полный вывод на https://travis -ci.org / 21см быстро / 21смFAST / jobs / 545483077

Кто-нибудь знает, что означает код -11? И есть идеи, почему это не помогло бы Трэвису, но не локально?

Одно из возможных замечаний ... test_spin - это разумно интенсивная функция.

1 Ответ

2 голосов
/ 14 июня 2019

Ошибка скрыта в жестко заданном пути:

EXTERNALTABLES = ffi.new("char[]", path.join(path.expanduser("~"), ".21CMMC").encode())
global_params.external_table_path = EXTERNALTABLES

В среде Travis не определен путь ~/.21CMMC, поэтому попытки чтения оттуда потерпят неудачу, что приведет к segfault. Если вы сбросите трассировку на сигнал SIGSEGV, вы увидите вывод, похожий на этот:

tests/test_cli.py::test_spin T_RECFAST: Unable to open file: /home/travis/.21CMMC/External_tables/recfast_LCDM.dat for reading
Aborting
Called xion_RECFAST with z=35.000000, bailing out!
Called xion_RECFAST with z=35.000000, bailing out!
Fatal Python error: Segmentation fault
Current thread 0x00007fba4012d700 (most recent call first):
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/py21cmfast/wrapper.py", line 765 in _call_c_func
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/py21cmfast/wrapper.py", line 1641 in spin_temperature
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/py21cmfast/cli.py", line 264 in spin
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/decorators.py", line 17 in new_func
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 555 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 956 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 1137 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 717 in main
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/testing.py", line 326 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/tests/test_cli.py", line 116 in test_spin
  ...
...