On 08/13/2015 01:21 PM, Naresh Kamboju wrote: > Hi Shuah Khan, > > On 23 July 2015 at 20:33, Shuah Khan <shua...@osg.samsung.com> wrote: >> On 07/22/2015 06:00 PM, Tyler Baker wrote: >>> Hi Naresh, >>> >>> On 7 July 2015 at 05:03, <naresh.kamb...@linaro.org> wrote: >>>> From: Naresh Kamboju <naresh.kamb...@linaro.org> >>>> >>>> zram_lib.sh: create library with initialization/cleanup functions >>>> zram01.sh: creates general purpose ram disks with different filesystems >>>> zram02.sh: creates block device for swap >>>> README: ZRAM introduction and Kconfig required. >>>> Makefile: To run zram tests >>> >>> (./zram01.sh && echo "selftests: zram01.sh [PASS]") || echo >>> "selftests: zram01.sh [FAIL]" >>> (./zram02.sh && echo "selftests: zram02.sh [PASS]") || echo >>> "selftests: zram02.sh [FAIL]" >>> (./zram_lib.sh && echo "selftests: zram_lib.sh [PASS]") || echo >>> "selftests: zram_lib.sh [FAIL]" >>> >>> Above is the output from the run_kselftests.sh. Do we want to run >>> zram_lib.sh as a test case as it just a library? >> >> Please make sure test doesn't fail when zram isn't configured. >> i.e it should exit gracefully with a message saying zram isn't >> configured. Please see below: > > I agree with Shuah Khan comments. > run_kselftests.sh is design to print results in PASS or FAIL. > We need a way in run_kselftests.sh to print NO_CONFIG when it is not a > real failure instead it is a Kconfig not enabled. > >>
snip >>>> +zram_load() >>>> +{ >>>> + # check zram module exists >>>> + MODULE_PATH=/lib/modules/`uname -r`/kernel/drivers/zram/zram.ko >>>> + if [ -f $MODULE_PATH ]; then >>>> + MODULE=1 >>>> + echo "create '$dev_num' zram device(s)" >>>> + modprobe zram num_devices=$dev_num || \ >>>> + echo "failed to insert zram module" >>>> + >>>> + dev_num_created=$(ls /dev/zram* | wc -w) >>>> + >>>> + if [ "$dev_num_created" -ne "$dev_num" ]; then >>>> + echo "unexpected num of devices: $dev_num_created" >>>> + ERR_CODE=-1 >>>> + else >>>> + echo "zram load module successful" >>>> + fi >>>> + elif [ -b /dev/zram0 ]; then >>>> + echo "/dev/zram0 device file found: OK" >>>> + else >>>> + echo "ERROR: No zram.ko module or no /dev/zram0 device >>>> found" >>>> + echo "$TCID : CONFIG_ZRAM is not set" >>>> + exit 1 >>>> + fi >> >> In this case, when zram.ko module or no /dev/zram0 device found, >> test should exit gracefully. > > Here with this case, when test run manually it prints "CONFIG_ZRAM is > not set" but with run_kselftests.sh script file it gonna FAIL with > non-zero exit code. but it is not a real failure. > How to handle this case ? > Right. One way to do this is write wrapper script zram.sh that does these checks first and then invokes the zram01.sh and zram02.sh This way you can do the pre-reqs checks first and then run the tests. Please take a look at tests that do this. e.g: net/test_bpf.sh thanks, -- Shuah -- Shuah Khan Sr. Linux Kernel Developer Open Source Innovation Group Samsung Research America (Silicon Valley) shua...@osg.samsung.com | (970) 217-8978 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/