Лучшая практика для удаленной компиляции и тестирования?

#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. Проект (заниженный) с небольшим количеством документации, но довольно мощный и поддерживает удаленные тесты «из коробки».