Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- OBJDUMP=/opt/arm/bin/arm_v7-objdump-objdump
- GCC=/opt/arm/bin/arm_v7-gcc
- GPP=/opt/arm/bin/arm_v7-g++
- LOGFILE=test.log
- # Создали команду отчета по началу и завершению теста
- log() {
- message="$(date +"%y-%m-%d %T") $@"
- echo $message
- echo $message >> $LOGFILE
- }
- # Начало тестов
- log "Start testing"
- # Даем права на запись
- chmod 644 demo.cpp demopp.cpp
- # Компилируем исходник С в объетник под ARM архитектуру
- $GCC -c demo.cpp
- # Компилируем исходник С++ в объетник под ARM архитектуру
- $GPP -c demopp.cpp
- # Начинаем Тест 8.5
- echo -ne "Test 8.5\t" >> test.log
- # Выполняем скрипт из ТестКейса для обфускации объетника
- # demopp.o в demopp.o.out
- ./obfuscator -i demopp.o -o demopp.o.out --parameters > test1.txt
- # Дизассемблируем обфусцированый файл в текстовый документ
- $OBJDUMP -d demopp.o.out > demopp.o.out.txt
- # Дизассемблируем оригинальный файл в текстовый документ
- $OBJDUMP -d demopp.o. > demopp.o.txt
- # Сравниваем оригинал и файл после обфускации
- diff -q -I'^[demo]' demopp.o.txt demopp.o.out.txt > /dev/null
- if [ $? -eq 0 ]; then
- # Если файлы идентичны то создается запись FAIL (ошибка, обфускация не
- # реализована)
- echo -ne "FAIL\t" >> test.log
- else
- # Если строки внутри файлов различны то создается запись PASS и выполняется
- # следующая запись
- echo -ne "PASS\t" >> test.log
- # На данном этапе нужно пометить различия, в каком именно функциональном
- # блоке находятся несоответствия и залогить их
- sed -n '/^[0-9].*test3.*:$/,/^$/p' > test2.txt
- cat test1.txt | sed 's/^/\t/' >> $LOGFILE
- cat -n test2.txt | sed 's/^/\t/' >> $LOGFILE
- fi
- # Удаляем все рабочие файлы данного теста для проведения следующих тестов
- rm demopp.o.txt demopp.o.out.txt demopp.o.out ...
- # Тестирование завершено
- log "Finished testing"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement