separate package for reducing dependency
[platform/core/api/system-settings.git] / tests / scripts / unittest.sh
1 #!/bin/bash
2
3 PWD=`pwd`
4 RPATH=$1
5
6 SPECPATH=`find . -name *.spec`
7
8 APP=`cat $SPECPATH  | grep Name: | awk '{ print $2 }'`
9 VER1=`cat $SPECPATH  | grep "^Version:" | awk '{ print $2 }'`
10 REL=`cat $SPECPATH  | grep Release: | awk '{ print $2 }'`
11 VER=$VER1-$REL
12 ARCH=$2
13 VERSHORT=${VER%-*}              # 1.2.3
14
15 THREAD_NUM=$3
16 GDB_TEST=$4
17
18 if [ -z $RPATH ]; then
19         echo "argument error : 1st arg is path "
20         echo "usage) ./unittest.sh /home/mjpark/GBS-ROOT/local/repos/slp/armv7l/RPMS capi-system-system-settings 0.0.3-3 armv7l"
21         exit 1
22 fi
23
24 if [ -z $ARCH ]; then
25         echo "argument error : 3th arg is Version"
26         echo "usage) ./unittest.sh /home/mjpark/GBS-ROOT/local/repos/slp/armv7l/RPMS capi-system-system-settings 0.0.3-3 armv7l"
27         exit 1
28 fi
29
30 if [ -z $THREAD_NUM ]; then
31         sudo gbs build -A $ARCH --include-all --define "run_tests 1" || exit 1
32 else
33         sudo gbs build -A $ARCH --include-all --define "run_tests 1" --define "thread_number $THREAD_NUM" || exit 1
34 fi
35
36 # ex ) ./unittest.sh /home/mjpark/GBS-ROOT/local/repos/slp/armv7l/RPMS capi-system-system-settings 0.0.3-3 armv7l 5
37
38 RPM_ROOT=$RPATH
39
40 sudo mkdir -p /usr/src/packages/BUILD/$APP-$VERSHORT
41 sudo cp -rf . /usr/src/packages/BUILD/$APP-$VERSHORT
42
43 sudo mkdir -p /home/abuild/rpmbuild/BUILD/$APP-$VERSHORT
44 sudo cp -rf . /home/abuild/rpmbuild/BUILD/$APP-$VERSHORT
45
46 SDB=/usr/bin/sdb
47 GDB_SCRIPT=$PWD/tests/scripts/unit_test_gdb_script
48 UNIT_TEST_RESOURCE=$PWD/tests/res/*
49 $SDB root on
50 $SDB shell mount -o remount,rw /
51 $SDB push $RPM_ROOT/$APP-$VER.$ARCH.rpm /opt
52 $SDB push $RPM_ROOT/$APP-debuginfo-$VER.$ARCH.rpm /opt
53 $SDB push $RPM_ROOT/$APP-debugsource-$VER.$ARCH.rpm /opt
54 $SDB push $GDB_SCRIPT /usr/local/bin
55 $SDB push $UNIT_TEST_RESOURCE /opt/usr/share
56
57 $SDB shell rpm -Uvh --force --nodeps /opt/$APP-$VER.$ARCH.rpm
58 $SDB shell rpm -Uvh --force --nodeps /opt/$APP-debuginfo-$VER.$ARCH.rpm
59 $SDB shell rpm -Uvh --force --nodeps /opt/$APP-debugsource-$VER.$ARCH.rpm
60
61 echo "UNIT TEST----------------------------------------------------"
62 export GCOV_PREFIX=/opt
63
64 if [ -z $GDB_TEST]; then
65 $SDB shell su - -c "G_DEBUG=fatal-criticals GCOV_PREFIX=/usr/src/packages GCOV_PREFIX_STRIP=3 /usr/bin/sys-settings/sys-settings-test"
66 else
67 $SDB shell su - -c "G_DEBUG=fatal-criticals GCOV_PREFIX=/usr/src/packages GCOV_PREFIX_STRIP=3 gdb -x /usr/local/bin/unit_test_gdb_script"
68 fi
69
70 echo "COVERAGE TEST----------------------------------------------------"
71 sdb pull /usr/src/packages/BUILD/$APP-$VERSHORT/
72 rm -rf ./CMakeFiles/system-setting-unittest.dir
73 rm -rf ./CMakeFiles/capi-system-system-settings.dir/src/system_setting_unittest.*
74 lcov -c -d ./CMakeFiles/$APP.dir/ -o $APP.info
75 lcov -c -d ./system-settings-util/CMakeFiles/system-settings-util.dir -o $APP.util.info
76
77 VAR1="/usr/src/packages/BUILD/$APP-$VERSHORT"
78 VAR2="/usr/include"
79 GBS_INCLUDE="$HOME/GBS-ROOT/local/BUILD-ROOTS/scratch.armv7l.0/usr/include"
80 sed -i "s#$VAR1#$PWD#g" $APP.info
81 sed -i "s#$VAR2#$GBS_INCLUDE#g" $APP.info
82 sed -i "s#$VAR1#$PWD#g" $APP.util.info
83 sed -i "s#$VAR2#$GBS_INCLUDE#g" $APP.util.info
84 echo "sed -i \"s#$VAR1#$PWD#g\" $APP.info"
85
86 echo "genhtml $APP.info $APP.util.info -o out"
87 rm -rf out
88 genhtml $APP.info $APP.util.info -o out
89 find . -name "CMakeFiles" -type d -prune -exec rm -rf '{}' '+'
90 rm $APP.info $APP.util.info
91 sudo rm -rf /usr/src/packages/BUILD/$APP-$VERSHORT
92 sudo rm -rf /home/abuild/rpmbuild/BUILD/$APP-$VERSHORT