Skip to content
Snippets Groups Projects
Commit 23f2a63c authored by Jason Hiser's avatar Jason Hiser :tractor:
Browse files

fixed testing for libelfdep

parent d16c663d
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
set -e
set -x
cd $CICD_MODULE_WORK_DIR/irdblibs_umbrella
cd $CICD_MODULE_WORK_DIR/peasoup_test
source set_env_vars
cd $SECURITY_TRANSFORMS_HOME/libIRDB-elfdep/test/
......
#!/bin/bash
set -e
trap clean EXIT
cd $CICD_MODULE_WORK_DIR/irdblibs_umbrella
source set_env_vars
cd ./irdb-libs/tools/selective_cfi/tests/cicd_tests/fib_src
source ../../cfi_smokescreen_configs.sh
get_correct()
{
cp libfib.so.orig libfib.so
cp libfib2.so.orig libfib2.so
# for fib.exe, a non-zero exit status can indicate success
set +e
./fib.exe $1 > correct
echo $? >> correct
set -e
}
do_test()
{
echo running test $1 $2 $3 $4
n=$2
get_correct $n
cp $3 libfib.so
cp $4 libfib2.so
# for fib.exe, a non-zero exit status can indicate success
set +e
./$1 $n > out
echo $? >> out
cmp out correct
res=$?
if [[ $res != 0 ]]; then
echo "detected output diff:"
diff out correct
exit 1
fi
set -e
}
build()
{
gcc -o libfib.so libfib.c -w -shared -fPIC
gcc -o libfib2.so libfib2.c -w -shared -fPIC
gcc -o fib.exe fib.c -w -L. -lfib -lfib2
gcc -o fib.exe.pie fib.c -fPIC -fpie -pie -w -L. -lfib -lfib2
mv libfib.so libfib.so.orig
mv libfib2.so libfib2.so.orig
}
protect()
{
files=(libfib.so.orig libfib2.so.orig fib.exe fib.exe.pie)
libfib_so_orig_varients=(libfib.so.orig)
libfib2_so_orig_varients=(libfib2.so.orig)
fib_exe_varients=(fib.exe)
fib_exe_pie_varients=(fib.exe.pie)
for file in "${files[@]}"; do
for config in "${configs[@]}"; do
echo Protecting file "$file" with config "$config"
set +e
"$config" ./"$file" ./"$file"".""$config" > out 2>&1
res=$?
set -e
if [[ $res == 0 ]]; then
rm -rf out peasoup*
else
echo "Failed protection!"
cat out peasoup*/logs/*
exit 1
fi
varient_array_name="$(echo "$file" | sed -e 's/\./_/g')""_varients"
varient_file="$file"".""$config"
eval $varient_array_name+=\(\$varient_file\)
done
done
}
clean()
{
local ec=$?
rm -f out >> /dev/null 2>&1
rm -f correct >> /dev/null 2>&1
rm -Rf fib.exe* peasoup_exe* lib*.so* >> /dev/null 2>&1
for config in "${configs[@]}"; do
rm -f *."$config" >> /dev/null 2>&1
done
exit $ec
}
main()
{
build
protect
fib_varients=("${fib_exe_varients[@]}" "${fib_exe_pie_varients[@]}")
for fib_varient in "${fib_varients[@]}"; do
for libfib_varient in "${libfib_so_orig_varients[@]}"; do
for libfib2_varient in "${libfib2_so_orig_varients[@]}"; do
for i in 2 6; do
do_test "$fib_varient" $i "$libfib_varient" "$libfib2_varient"
done
done
done
done
exit 0
}
main $*
#!/bin/bash
set -e
trap clean EXIT
cd $CICD_MODULE_WORK_DIR/irdblibs_umbrella
source set_env_vars
cd ./irdb-libs/tools/selective_cfi/tests/cicd_tests/foo_src
source ../../cfi_smokescreen_configs.sh
get_correct()
{
cp libfoo.so.orig libfoo.so
./foo.exe > correct
echo $? >> correct
}
do_test()
{
echo Running test: "$1" "$2"
set +e
cp $2 libfoo.so
./$1 > out
echo $? >> out
cmp out correct
res=$?
if [[ $res != 0 ]]; then
echo "detected output diff:"
diff out correct
exit 1
fi
set -e
}
build()
{
gcc -o libfoo.so libfoo.c -w -shared -fPIC
gcc -o foo.exe foo.c -w -L. -lfoo
mv libfoo.so libfoo.so.orig
gcc -o libfoo.O.so libfoo.c -O -w -shared -fPIC
gcc -o libfoo.O2.so libfoo.c -O2 -w -shared -fPIC
gcc -o libfoo.O3.so libfoo.c -O3 -w -shared -fPIC
gcc -o libfoo.Os.so libfoo.c -Os -w -shared -fPIC
mv libfoo.O.so libfoo.O.so.orig
mv libfoo.O2.so libfoo.O2.so.orig
mv libfoo.O3.so libfoo.O3.so.orig
mv libfoo.Os.so libfoo.Os.so.orig
}
protect()
{
files=(foo.exe libfoo.so.orig libfoo.O.so.orig libfoo.O2.so.orig libfoo.O3.so.orig libfoo.Os.so.orig)
foo_exe_varients=(foo.exe)
libfoo_so_orig_varients=(libfoo.so.orig)
libfoo_O_so_orig_varients=(libfoo.O.so.orig)
libfoo_O2_so_orig_varients=(libfoo.O2.so.orig)
libfoo_O3_so_orig_varients=(libfoo.O3.so.orig)
libfoo_Os_so_orig_varients=(libfoo.Os.so.orig)
for file in "${files[@]}"; do
for config in "${configs[@]}"; do
echo Protecting file "$file" with config "$config"
set -e
"$config" ./"$file" ./"$file"".""$config" > ps.log 2>&1
res=$?
set +e
if [[ $res != 0 ]]; then
echo "Failed to xform!"
cat peasoup*/logs/*
exit 1
else
rm -Rf peasoup*
fi
varient_array_name="$(echo "$file" | sed -e 's/\./_/g')""_varients"
varient_file="$file"".""$config"
eval $varient_array_name+=\(\$varient_file\)
done
done
}
clean()
{
local ec=$?
rm -f out >> /dev/null 2&>1
rm -f correct >> /dev/null 2&>1
rm -rf peasoup_executable_directory.* >> /dev/null 2&>1
rm -f *.orig >> /dev/null 2&>1
rm -f *.exe >> /dev/null 2&>1
rm -f *.so >> /dev/null 2&>1
for config in "${configs[@]}"; do
rm -f *."$config" >> /dev/null 2&>1
done
exit $ec
}
main()
{
build
protect
get_correct
libfoo_varients=("${libfoo_so_orig_varients[@]}" "${libfoo_O_so_orig_varients[@]}" "${libfoo_O2_so_orig_varients[@]}"
"${libfoo_O3_so_orig_varients[@]}" "${libfoo_Os_so_orig_varients[@]}")
for foo_varient in "${foo_exe_varients[@]}"; do
for libfoo_varient in "${libfoo_varients[@]}"; do
do_test "$foo_varient" "$libfoo_varient"
done
done
exit 0
}
main $*
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment