public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Li Wang <liwang@redhat.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH] mkswap: make the test device size is aligned to pagesize
Date: Wed, 17 Aug 2016 11:39:46 +0800	[thread overview]
Message-ID: <20160817033946.GA6430@gmail.com> (raw)
In-Reply-To: <20160816121552.GC25092@rei.lan>

On Tue, Aug 16, 2016 at 02:15:52PM +0200, Cyril Hrubis wrote:
> Hi!
> > Sorry for the vague description. To be honest, mkswap.c(util-linux) is innocent
> > here. The error maker is mkswap_verify() in mkswap01.sh(ltp) testcase.
> > 
> > The key point of problem is not only mkswap01.sh (ltp) doesn't guarantee
> > test-device(LTP_DEV) size is aligned to PAGE_SIZE on all arches, but also
> > it increse/decrease test-device size not aligned too.
> > 
> > # tail -15 mkswap01.sh
> > mkswap_test "" "" "$TST_DEVICE"
> > mkswap_test "" "" "$TST_DEVICE" "$((DEVICE_SIZE-10000))"     <---
> > mkswap_test "-f" "" "$TST_DEVICE" "$((DEVICE_SIZE+10000))"   <---
> > ...
> > 
> > 
> > As we know that mkswap.c(util-linux) format test-device to aligned with its local
> > PAGE_SIZE by force. Therefore, the real 'filesize' of formated test-device will
> > be decreased in that phase. But final, the testcase just compare orignal 'filesize'
> > to 'diff'(swaptotal-after - swaptotal-before) and make conclusion to get PASS/FAIL.
> > That makes this test result is not reliable.
> 
> Now that makes sense.
> 
> But if that is the case we still have to align down the device size to
> the page size at the start of the test. Since the device can also be
> passed down to the runltp script as a parameter and we cannot make any
> assumptions about its size.

Hmm, yes, we have to face the problem.

A simple idea comes to my mind is that the loop device size should be
customized by specific testcase(mkswap01.sh).

That would be happy if function "tst_acquire_device() 'NUM'" can get
'NUM' MB block device for testing.

It means we have to modify another path which about tst_acquire_device().

What do you think? any proposals?

-----------
tst_acquire_device()
{
	local acq_dev_size=${1}

	if [ -z ${TST_TMPDIR} ]; then
		tst_brkm "Use 'tst_tmpdir' before 'tst_acquire_device'"
	fi

	if [ -n "${LTP_DEV}" ] && [ ! ${acq_dev_size} ]; then
		tst_resm TINFO "Using test device
		LTP_DEV='${LTP_DEV}'"
		if [ ! -b ${LTP_DEV} ]; then
			tst_brkm TBROK "${LTP_DEV} is not a block device"
		fi

		ROD_SILENT dd if=/dev/zero of="${LTP_DEV}" bs=1024 count=512 TST_DEVICE=${LTP_DEV}
		TST_DEVICE_FLAG=0
		return
	fi

	if [ ! ${acq_dev_size} ]; then
		ROD_SILENT dd if=/dev/zero of=test_dev.img bs=1024 count=153600
	else
		ROD_SILENT dd if=/dev/zero of=test_dev.img bs=1024 count=$((1024*$acq_dev_size))
	fi

	TST_DEVICE=$(losetup -f)
	if [ $? -ne 0 ]; then
		tst_brkm TBROK "Couldn't find free loop device"
	fi

	tst_resm TINFO "Found free device '${TST_DEVICE}'"

	ROD_SILENT losetup ${TST_DEVICE} test_dev.img

	TST_DEVICE_FLAG=1
}


Regards,
Li Wang

  reply	other threads:[~2016-08-17  3:39 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-27  9:58 [LTP] [PATCH] mkswap: make the test device size is aligned to pagesize Li Wang
2016-08-09 16:41 ` Cyril Hrubis
2016-08-15  9:25   ` Li Wang
2016-08-15 12:39     ` Cyril Hrubis
2016-08-16  3:24       ` Li Wang
2016-08-16 12:15         ` Cyril Hrubis
2016-08-17  3:39           ` Li Wang [this message]
2016-08-17 11:18             ` Cyril Hrubis
2016-08-18 11:08               ` Li Wang
2016-08-18 11:33                 ` Cyril Hrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160817033946.GA6430@gmail.com \
    --to=liwang@redhat.com \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox