#testing #ssh #makefile
#тестирование #ssh #makefile
Вопрос:
По какой-то причине мне нужно скомпилировать и протестировать мой проект на удаленном сервере.
Одно из решений, которое я использую, — это ssh make, это r_makefile
скрипт, который я использую в настоящее время
# usage: make -f r_makefile
all.remote: a.remote b.remote makefile.remote
%.remote: %.c
scp $< remotehost:~/work/test
touch $@
makefile.remote: makefile
scp $< remotehost:~/work/test
touch $@
test: all.remote
ssh remotehost 'cd work/test amp;amp; make test'
И makefile
.
CC = gcc
objects = a.o b.o
a: $(objects)
$(CC) $(objects) -o a
a.o: a.c
b.o: b.c
test: a
./a
Сейчас у меня все работает нормально, но я должен отслеживать оба makefile
и r_makefile
. По мере роста кода (что делает мой makefile
более сложным) становится трудно модифицировать r_makefile
.
Интересно, есть ли инструмент, который мог бы сделать это за меня или автоматически сгенерировать r_makefile
. В настоящее время я использую git для контроля версий.
Какова наилучшая практика для удаленной компиляции и тестирования, есть ли другой способ достичь этой цели?
Комментарии:
1. Не было бы проще просто
rsync
использовать весь каталог, а затемssh <host> make ...
Ответ №1:
Лучшей практикой для удаленных тестов является использование DejaGnu. Проект (заниженный) с небольшим количеством документации, но довольно мощный и поддерживает удаленные тесты «из коробки».