2010-09-03 2 views
0

Мне нужно использовать файл для одного из моих тестов, написанного с использованием Check. Я изначально жестко закодировал путь, который работал нормально. Однако это не сработало, когда код был создан вне исходного каталога. Я придумал следующее решение, которое несколько работает. (Я тогда префикс имен путей с TESTS_DIR)Использование файлов в Check check cases

# Set correct directory for test files 
AS_IF([test "x$srcdir" = x.], 
     [TESTS_DIR=""], 
     [TESTS_DIR="$srcdir/tests/"]) 
AC_DEFINE_UNQUOTED([TESTS_DIR], ["$TESTS_DIR"], [directory for test files]) 

К сожалению, это не удается снова make distcheck. Я могу опубликовать конкретные макеты и структуры пути, но мне интересно, есть ли «простой» способ ссылаться на файлы в исходном каталоге во всех этих случаях. Благодаря!

UPDATE: Я пытался использовать абсолютные пути, но, кажется $abs_top_srcdir не установлен, когда я пытался обновить определить в configure.ac. Любые мысли о том, почему это так, будут оценены.

+0

Относительные пути? – dirkgently

+0

Как? Как вы можете видеть, я попытался найти относительный путь, который работает во всех сценариях. Нет кубиков. На самом деле, я, наверное, был бы счастливее с абсолютным путем. Если пользователь должен перенастраиваться при перемещении каталогов, это еще не конец света. Но правильное решение с использованием относительных путей было бы идеальным. –

ответ

0

Я обнаружил, что проблема в том, что $top_srcdir не установлен во время настройки. Вместо этого я добавил -DTESTS_DIR="\"$(top_srcdir)/tests/\"" в AM_CFLAGS в мои тесты Makefile.am, а также добавил все каталоги, содержащие тестовые файлы, к EXTRA_DIST.

Смежные вопросы