В файле README https://github.com/mull-project/mull, я пробовал их примеры мутационного тестирования на openssl и fmtlib.Но когда я ввожу команду теста мутации: mull-cxx -test-framework = GoogleTest -mutators = math_add_mutator ./bin/core-test, я получаю следующую ошибку
parseBitcodeFile failed: Invalid record
mull-cxx: /opt/mull/tools/driver-cxx/driver-cxx.cpp:63: void LoadModuleFromBitcodeTask::operator()(LoadModuleFromBitcodeTask::iterator, LoadModuleFromBitcodeTask::iterator, LoadModuleFromBitcodeTask::Out &, mull::progress_counter &): Assertion `module && "Could not load module"' failed.
Aborted (core dumped)
ОБНОВЛЕНИЕ ...........
Я больше не получаю вышеуказанную ошибку.Но новый :( Раньше я использовал debian mull, а не ubuntu. Я написал настройку Docker ниже. Теперь, когда я пытаюсь выполнить мутационное тестирование, у меня возникают проблемы со связыванием:
Extracting bitcode from executable (threads: 1): 1/1. Finished in 0ms.
Loading bitcode files (threads: 2): 2/2. Finished in 11ms.
Could not find dynamic library: libpthread.so.0
Could not find dynamic library: libstdc++.so.6
Could not find dynamic library: libm.so.6
Could not find dynamic library: libgcc_s.so.1
Could not find dynamic library: libc.so.6
MyНастройка mull находится в Docker. Я сделал следующее, чтобы настроить мой образ:
FROM ubuntu:18.04
RUN mkdir -p /tmp/home
ENV HOME /tmp/home
RUN apt-get update && apt-get upgrade -y \
&& apt-get install -y git build-essential software-properties-common\
&& apt-get install -y vim wget
RUN apt-get update
RUN apt-get install -y python3-pip \
&& pip3 install conan
RUN apt-get update
## cpp unit
# RUN apt-get install -y autotools-dev automake libtool
RUN apt-get install -y libcppunit-dev
# for mull
RUN apt-get install -y sqlite3 libsqlite3-dev libncurses5-dev libxml2-dev uuid-dev libstdc++-6-dev
После того, как я запустил контейнер, я настроил предварительно скомпилированные двоичные файлы llvm. Расположение LLVM находится в / usr / src / llvm
# LLVM setup
export PATH="$PATH:/usr/src/llvm/bin"
cat > llvm.conf << "HEREDOC"
/usr/src/llvm/lib
HEREDOC
mv llvm.conf /etc/ld.so.conf.d/
ldconfig
export CC=/usr/src/llvm/bin/clang
export CXX=/usr/src/llvm/bin/clang++
apt-get install -y cmake
apt-get update
dpkg -i setup/libicu55_55.1-7_amd64.deb
dpkg -i setup/Mull-0.3.0-LLVM-8.0-ubuntu-16.04.deb