All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.