forked from gpertea/stringtie
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_tests_valgrind.sh
executable file
·70 lines (66 loc) · 2 KB
/
run_tests_valgrind.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env bash
function unpack_test_data() {
t=tests.tar.gz
if [ ! -f $t ]; then
echo "Error: file $t not found!"
exit 1
fi
echo "..unpacking test data.."
echo
tar -xzf $t
if [ ! -f tests/human-chr19_P.gff ]; then
echo "Error: invalid test data archive?"
exit 1
fi
#cp tests_exp_out/*.gtf tests/ 2>/dev/null
}
#if [ ! -f tests/human-chr19_P.gff ]; then
if [ -d ./tests ]; then
#extract the tarball and rename the directory
echo "..Using existing ./tests"
#unpack_test_data
else
echo "..Downloading test data.."
#use curl to fetch the tarball from a specific github release or branch
curl -ksLO https://github.com/gpertea/stringtie/raw/test_data/tests.tar.gz
unpack_test_data
fi
# fi
cd tests
# array element format:
#
arrins=("short_reads" "short_reads_and_superreads" "long_reads" "long_reads" \
"mix_short mix_long" "mix_short mix_long")
arrparms=("" "" "-L" "-L -G human-chr19_P.gff" "--mix" "--mix -G mix_guides.gff")
arrout=("short_reads" "short_reads_and_superreads" "long_reads" "long_reads_guided" \
"mix_reads" "mix_reads_guided")
arrmsg=("Short reads" "Short reads and super-reads" "Long reads" \
"Long reads with annotation guides" "Mixed reads" "Mixed reads with annotation guides")
for i in ${!arrmsg[@]}; do
fout="${arrout[$i]}.out.gtf"
/bin/rm -f $fout
fcmp="${arrout[$i]}.out_expected.gtf"
if [ ! -f $fcmp ]; then
echo "Error: file $fcmp does not exist! Re-download test data."
exit 1
fi
n=$i
((n++))
echo "Test ${n}: ${arrmsg[$i]}"
fin=${arrins[$i]}.bam
if [[ ${arrins[$i]} =~ ^mix ]]; then
ins=( ${arrins[$i]} )
fin="${ins[0]}.bam ${ins[1]}.bam"
fi
valgrind --leak-check=full --show-reachable=yes ../stringtie ${arrparms[$i]} -o $fout $fin
if [ ! -f $fout ]; then
echo "Error: file $fout not created! Failed running stringtie on $fin"
exit 1
fi
if diff -q -I '^#' $fout $fcmp &>/dev/null; then
echo " OK."
else
echo "Error: test failed, output $fout different than expected ($fcmp)!"
#exit 1
fi
done