Hi! > +TCID=cpuset_regression_test > +TST_TOTAL=1 > +. test.sh > + > +setup() > +{ > + tst_require_root > + > + tst_kvercmp 3 18 0 > + if [ $? -eq 0 ]; then > + tst_brkm TCONF "Test must be run with kernel 3.18.0 or newer" > + fi > + > + local cpu_num=$(grep processor /proc/cpuinfo | wc -l)
It's better to use $(getconf _NPROCESSORS_ONLN) > + if [ $cpu_num -lt 2 ]; then > + tst_brkm TCONF "We need 2 cpus at least to have test" > + fi > + > + tst_tmpdir > +} > + > +setup1() > +{ > + # We need to mount cpuset if it is not found. > + mount_flag=0 > + mount | grep -w cpuset > tmpfile > + if [ $? -eq 0 ]; then > + root_cpuset_dir=$(cat tmpfile | awk '{print $3}') > + rm -rf tmpfile > + else > + root_cpuset_dir="cpuset_test" > + > + ROD_SILENT mkdir -p ${root_cpuset_dir} > + > + ROD_SILENT mount -t cpuset cpuset ${root_cpuset_dir} > + > + mount_flag=1 > + fi > + > + if [ -f ${root_cpuset_dir}/cpuset.cpu_exclusive ]; then > + cpu_exclusive=cpuset.cpu_exclusive > + cpus=cpuset.cpus > + elif [ -f ${root_cpuset_dir}/cpu_exclusive ]; then > + cpu_exclusive=cpu_exclusive > + cpus=cpus > + else > + tst_brkm TBROK "Both cpuset.cpu_exclusive and cpu_exclusive" \ > + "do not exist." > + fi > + > + local cpu_exclusive_value=$(cat ${root_cpuset_dir}/${cpu_exclusive}) > + if [ "${cpu_exclusive_value}" != "1" ];then > + echo 1 > ${root_cpuset_dir}/${cpu_exclusive} > + if [ $? -ne 0 ]; then > + tst_brkm TBROK "'echo 1 >" \ > + "${root_cpuset_dir}/${cpu_exclusive}'" \ > + "failed" > + fi > + fi You should restore the cpu_exclusive value in the cpuset root at the end of the test as well. i.e. make this variable global and do: if [ -n "$cpu_exclusive_value" ]; then echo "$cpu_exclusive_value" > ${root_cpuset_dir}/${cpu_exclusive} fi in the cleanup. > +} > + > +cleanup() > +{ > + if [ -d "${root_cpuset_dir}/testdir" ]; then > + rmdir ${root_cpuset_dir}/testdir > + fi > + > + if [ "${mount_flag}" == "1" ]; then > + umount ${root_cpuset_dir} > + if [ $? -ne 0 ]; then > + tst_resm TWARN "umount ${root_cpuset_dir} failed" > + fi > + > + if [ -d "${root_cpuset_dir}" ]; then > + rmdir ${root_cpuset_dir} > + fi > + fi > + > + tst_rmdir > +} > + > +cpuset_test() > +{ > + ROD_SILENT mkdir ${root_cpuset_dir}/testdir > + > + # Creat an exclusive cpuset. > + echo 1 > ${root_cpuset_dir}/testdir/${cpu_exclusive} > + if [ $? -ne 0 ]; then > + tst_brkm TFAIL "'echo 1 >" \ > + "${root_cpuset_dir}/testdir/${cpu_exclusive}'" \ > + "failed" > + fi > + > + local cpu_exclusive_value=$(cat \ > + ${root_cpuset_dir}/testdir/${cpu_exclusive}) > + if [ "${cpu_exclusive_value}" != "1" ]; then > + tst_brkm TFAIL "${cpu_exclusive} is '${cpu_exclusive_value}'," \ > + "expected '1'" > + fi > + > + # ${cpus} is empty at the begin, that maybe make the system *crash*. > + echo 0-1 > ${root_cpuset_dir}/testdir/${cpus} > + if [ $? -ne 0 ]; then > + tst_brkm TFAIL "'echo 0-1 >" \ > + "${root_cpuset_dir}/testdir/${cpus}' failed" > + fi > + > + local cpus_value=$(cat ${root_cpuset_dir}/testdir/${cpus}) > + if [ "${cpus_value}" != "0-1" ]; then > + tst_brkm TFAIL "${cpus} is '${cpus_value}', expected '0-1'" > + fi > + > + tst_resm TPASS "Bug is not reproduced" > +} > + > +setup > +TST_CLEANUP=cleanup > + > +setup1 Hmm, you can set TST_CLEANUP in the middle of the setup() function. There is no need to artificially split the setup. > +cpuset_test > + > +tst_exit > -- > 1.8.3.1 > > > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Ltp-list mailing list > Ltp-list@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ltp-list -- Cyril Hrubis chru...@suse.cz ------------------------------------------------------------------------------ _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list