1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
Commit Graph

1599 Commits

Author SHA1 Message Date
Petr Rockai
b726d66882 test: Use the new runner in make check. 2015-02-05 13:47:16 +01:00
Petr Rockai
1ec2023cbf test: Build the new test runner. 2015-02-05 13:47:16 +01:00
Petr Rockai
f476655fee test: Import first draft of a new test runner. 2015-02-03 08:49:35 +01:00
Zdenek Kabelac
71e88f761d tests: add --force to sfdisk
Avoid udev sync troubles for now.
2015-01-30 16:46:06 +01:00
Zdenek Kabelac
d021284bcf tests: test stacked raid 2015-01-30 12:33:52 +01:00
Zdenek Kabelac
4f1309080a thin: preserve chunksize with lvconvert
When repairing thin pool or swapping thin pool metadata,
preserve  chunk_size property and avoid to be automatically changed
later in the code to better match thin pool metadata size.
2015-01-28 15:15:52 +01:00
Zdenek Kabelac
93b9015760 raid: fix raid image splitting
When raid leg is extracted, now the preload code handles this state
correctly and put proper new table entry into dm tree,
so the activation of extracted leg and removed metadata works
after commit.
2015-01-28 13:45:18 +01:00
Peter Rajnoha
8804023825 tests: pvscan --cache DevicePath does not fail if the device is just filtered
It's not an error if the device is filtered out and hence cleared from
lvmetad cache - "pvscan --cache DevPath" has now the same behaviour in
this case as "pvscan --cache major:minor" (which is more consistent).

Before, the tests expected failure return code for "pvscan --cache DevicePath"
if the device was filtered (which is a different situation if the device
is missing in the system completely!).
2015-01-12 15:16:57 +01:00
Peter Rajnoha
99d895014d dev-type: filter out partitioned device-mapper devices as unsuitable for use as PVs
Normally, if there are partitions defined on top of device-mapper
device, there should be a device-mapper device created for each
partiton on top of the old one and once the underlying DM device
is used by another devices (partition mappings in this case),
it can't be used as a PV anymore.

However, sometimes, it may happen the partition mappings are
missing - either the partitioning tool is not creating them if
it does not contain full support for device-mapper devices or
the mappings were removed.

Better safe than sorry - check for partition header on DM devs
and filter them out as unsuitable for PVs in case the check is
positive. Whatever the user is doing, let's do our best to prevent
unwanted corruption (...by running pvcreate on top of such device
that would corrupt the partition header).
2015-01-12 14:10:44 +01:00
Petr Rockai
e97023804a pvremove: Avoid metadata re-reads & related error messages. 2015-01-06 14:27:30 +01:00
Peter Rajnoha
57af48d734 report: fix segfault on NULL value hit in cache_settings field
We have to use empty list, not NULL if we want to denote that the list
has no items. Otherwise, the code further can segfault as it expects
there's always a sane value (= some list), including empty list,
but never NULL.
2014-12-18 17:26:12 +01:00
Petr Rockai
00ad13eb71 report: Add cache_policy and cache_settings (LV) segment fields. 2014-12-17 14:43:12 +01:00
Zdenek Kabelac
f3bd9a2797 raid: properly rename split image
When we split leg from raid - we take a proper new lock for a new LV.
However for now activation checks only 'existince' of device UUID,
but it's not validating device has a proper name.

As a quick fix call suspend()/resume() to rename after split mirror.
2014-12-05 13:39:42 +01:00
Petr Rockai
5b2726fc61 lvcreate: Implement --cachepolicy/--cachesettings. 2014-11-27 20:22:03 +01:00
Zdenek Kabelac
4bfdb01f78 toollib: fix regression in parsing /dev/mapper/vg-lv
Commit b0dde9e8f0 introduced regression in parsing
/dev/mapper prefix - and tried to check for '/' one char behind.
2014-11-26 17:29:35 +01:00
Zdenek Kabelac
2de11c9e9e thin: add missing 64KB rounding
When chunk size needs to be estimated, the code missed to round
to proper 64kb boundaries  (or power of 2 for older thin pool driver).
So for some data and metadata size (i.e. 10GB and 4MB) it resulted
in incorrect chunk size (not being a multiple of 64KB)

Fix it by adding proper rounding and also use 1 routine for 2 places
where the same calculation is made.

Fix also incorrect printed warning that has used 'ffs()'
(which returns first 'least significant' bit in word)
and it was not really giving any useful size info and replace it
with properly estimated chunk size.
2014-11-26 09:29:25 +01:00
Zdenek Kabelac
74e6135c4f tests: use proper LVMTEST prefix for VG name
Cleaner needs prefix to do its jobs and clean any left VG from python
test as well.
2014-11-24 14:39:04 +01:00
Zdenek Kabelac
1e80265c36 lvconvert: earlier detection of conflicting names
Detect same LV names for lvconvert prior opening VG.
i.e. lvconvert --thinpool vg/lvol0  -T lvol0
2014-11-24 14:39:04 +01:00
Zdenek Kabelac
8eb111dfb8 pool: prevent pool conversion with same name
When same name is given for converted volume and pool volume,
stop further command processing.
2014-11-23 00:49:04 +01:00
Zdenek Kabelac
0782309713 tests: reduce thin test 2014-11-22 18:51:02 +01:00
Zdenek Kabelac
4607cbcb0d tests: use old virt snaps in the test
Don't use thin with its thin requirements for the test.
2014-11-22 18:51:02 +01:00
Petr Rockai
71271cf905 test: Also test repeated --cachesettings in lvchange-cache. 2014-11-20 16:51:07 +01:00
Petr Rockai
c75ae0846e cache: Implement 'default' as a policy settings value to clear the record. 2014-11-20 16:51:07 +01:00
Petr Rockai
4b9b8e1282 toollib: Split --cachesettings from --cachepolicy. 2014-11-20 16:51:07 +01:00
Petr Rockai
310beb73a8 test: Add a test for lvchange --cachepolicy. 2014-11-20 16:51:07 +01:00
Zdenek Kabelac
8d8c1b6624 tests: use snapshot targets 2014-11-19 23:24:18 +01:00
Zdenek Kabelac
c75548300d tests: prepare control node before clvmd
Make sure there is 'control' node before clvmd is started.
Somehow  'clvmd' is not allowed by selinux to create one.

TODO: Check is selinux policy is right here...
2014-11-19 23:22:52 +01:00
Zdenek Kabelac
542b03ee00 tests: deactivate repaired before swap 2014-11-17 08:44:53 +01:00
Zdenek Kabelac
740fcdae7d tests: thin repair testing
More checks for thin related tools.
Add same functionality for cache related tools.
2014-11-17 00:41:33 +01:00
Zdenek Kabelac
3a1c609ac4 tests: reduce number of sync waiting
Lets assume faster systems, if we have too big raid arrays,
reduce them.
2014-11-17 00:34:44 +01:00
Zdenek Kabelac
776934aa08 tests: skip another older kernel from raid456 2014-11-17 00:32:49 +01:00
Zdenek Kabelac
27182e1ddb tests: explicit raid sync 2014-11-14 18:12:44 +01:00
Zdenek Kabelac
8cb79dad0b pool: fix removal of pool metadata spare
Since we support device stack of pools over pool
(thin-pool with cache data volume) the existing code
is no longer able to detect orphan _pmspare.

So instead do a _pmspare check after volume removal,
and remove spare afterwards.
2014-11-13 13:09:07 +01:00
Zdenek Kabelac
094596cfd2 tests: reach cache params 2014-11-10 22:05:49 +01:00
Zdenek Kabelac
10ebabdd2a tests: cache snapshot 2014-11-10 22:05:49 +01:00
Zdenek Kabelac
cebbda0931 tests: duplicate update of config 2014-11-04 15:29:22 +01:00
Zdenek Kabelac
847b2aa5b4 tests: thin 2014-11-03 14:19:34 +01:00
Zdenek Kabelac
e4e96f6b19 tests: usage of -m0 -Mn
Test -m0 passed with types.
Check --readahead and thins.
2014-11-03 14:19:34 +01:00
Zdenek Kabelac
e09ee21fd4 tests: update raid sync 2014-10-31 00:37:35 +01:00
Zdenek Kabelac
47d50a8f27 tests: wait for raid sync 2014-10-31 00:31:54 +01:00
Zdenek Kabelac
e7c130430a tests: explicitely use old snapshots 2014-10-31 00:28:25 +01:00
Zdenek Kabelac
8926230f6e tests: lvcreate snapshot usage update 2014-10-30 23:58:49 +01:00
Zdenek Kabelac
b58a0f5cd3 tests: use aux func to disable device 2014-10-30 23:58:49 +01:00
Zdenek Kabelac
da61e6355e tests: raid syncaction test
Add sync wait for syncaction of raid1 test.
--syncaction requires raid to be in sync first.
2014-10-30 23:58:49 +01:00
Peter Rajnoha
7049eeeb83 test: for issue fixed in previous commit 2f7f6932dc 2014-10-27 11:53:01 +01:00
Zdenek Kabelac
e223c801fc pools: workaround hints
Missing code for stacked hint estimation
2014-10-26 19:45:17 +01:00
Zdenek Kabelac
c28a7706ed tests: update cache creation tests 2014-10-26 18:37:13 +01:00
Zdenek Kabelac
7bbf3cf306 tests: lvcreate-update
Test with old mirror type.
2014-10-26 18:37:13 +01:00
Zdenek Kabelac
70616187b3 tests: pytest update 2014-10-26 18:37:13 +01:00
Zdenek Kabelac
c3bb9629a8 tests: syncaction needs kernel fix
Add 'should' as we currently cannot pass this test.

FIXME:
Add properly wrapper to not use 'should' with fixed kernel.
2014-10-24 16:39:32 +02:00
Zdenek Kabelac
e1dede6f6b tests: new lvcreate functionality
Fixed syntax parsing means that some commands that used to work are now
failing. Particullary this case:

$ invalid lvcreate -l1 --type thin vg/pool
> Needs to fail becase thin type LV needs  --virtualsize

$ invalid lvcreate --type snapshot vg/lv1
> Needs to fail because old-snapshot segment type needs --size

Some reported error messages have been also updated.
2014-10-24 16:39:32 +02:00
Zdenek Kabelac
9642f013a1 tests: lvcreate usage 2014-10-24 16:39:32 +02:00
Petr Rockai
22a6b0e40b lvchange: Allow appropriate actions on cache (in addition to thin) pools. 2014-10-13 16:21:41 +02:00
Petr Rockai
d623034e62 test: Fix lvconvert-raid-allocation's use of lvconvert --repair. 2014-10-07 16:12:04 +02:00
Zdenek Kabelac
62802ddae0 tests: typos 2014-10-07 10:19:33 +02:00
Zdenek Kabelac
236db9fc0d tests: put devs into "" 2014-10-07 10:19:33 +02:00
Zdenek Kabelac
75c4d268e9 tests: check for cache and raid
Skip some tests on systems without cache or raid.
2014-10-07 10:19:33 +02:00
Zdenek Kabelac
c59ef73206 tests: move cache raid to separate file 2014-10-07 10:19:33 +02:00
Petr Rockai
b836525d9c test: Creating a cache on top of active RAID works now. 2014-10-07 09:32:24 +02:00
Petr Rockai
b66f16fd63 lvconvert: Allow --repair and --splitmirrors on reserved-name LVs. 2014-10-07 08:58:24 +02:00
David Teigland
86dad329be test: Add process-each toollib tests. 2014-10-07 01:15:43 +01:00
Zdenek Kabelac
fa517221a1 tests: lvconvert cache usage of thin pool
Checked stacking usage of thin pool data volume being cached.
2014-10-06 15:31:44 +02:00
Zdenek Kabelac
742d250cc5 tests: lvconvert thin pool
More tests.
2014-10-06 15:31:44 +02:00
Zdenek Kabelac
c243cf6581 tests: lvconvert cache
Many new tests
2014-10-06 15:31:44 +02:00
Zdenek Kabelac
52821572d5 tests: lvcreate external origin
Fix unsupportable case.
We cannot create thinpool and snapshot at the same time.
(-L could not have 2 meanings).
2014-10-06 15:31:33 +02:00
Zdenek Kabelac
de0e6029f1 tests: lvcreate thin-pool support --name 2014-10-06 15:23:08 +02:00
Zdenek Kabelac
4baf4b8cf9 tests: lvcreate cache interface updates 2014-10-06 15:23:08 +02:00
Petr Rockai
072e25a965 test: Show an activation bug in lvcreate of a cache over raid. 2014-10-06 08:11:42 +02:00
Petr Rockai
d2f901f04f lvconvert: Forward --splitmirror to a cache origin when applicable. 2014-10-06 08:11:06 +02:00
Peter Rajnoha
d3fb69c3f3 cleanup: remove symlink to profile in test dir for CLEAN target 2014-10-02 09:30:38 +02:00
Zdenek Kabelac
21aa850b43 tests: add helper funcionality for using gdb
When there is need for using gdb within test suite
just prefix command with LVM_DBG and run test in
standard shell (for stdin).
2014-09-24 10:54:48 +02:00
Zdenek Kabelac
9acbb0695f tests: drop * from dmsetup
We cannot use shell expansion for dmsetup here.
2014-09-24 10:54:48 +02:00
Zdenek Kabelac
98414ca7dd vgchange: support clustered conversion for active lv
If we want to support conversion of VG to clustered type,
we currently need to relock active LV to get proper DLM lock.

So add extra loop after change of VG clustered attribute
to exlusively activate all active top level LVs.

When doing change -cy -> -cn  we should validate LVs are not
active on other cluster nodes - we could be sure about this only
when with local exclusive activation - for other types
we require user to deactivate volumes first.

As a workaround for this limitation there is always
locking_type = 0 which amongs other skip the detection
of active LVs.

FIXME:
 clvmd should handle looks for cluster locking type all the time.
2014-09-17 14:41:42 +02:00
Zdenek Kabelac
4a853361b0 vgchange: disable cluster convert for active LVs
While we could probably reacquire some type of lock when
going from non-clustered to clustered vg, we don't have any
single road back to drop the lock and keep LV active.

For now keep it safe and prohibit conversion when LV
is active in the VG.
2014-09-16 11:42:41 +02:00
Zdenek Kabelac
10a448eb2f tests: update lv_no_exists
On successful exit path remove debug.log file.
2014-09-15 13:51:19 +02:00
Zdenek Kabelac
f435bef957 test: test there is no leak of LV on error path 2014-09-15 13:51:19 +02:00
Zdenek Kabelac
4748f4a9e4 tests: test for rename of snapshot 2014-09-10 22:59:13 +01:00
Petr Rockai
671d0ea1b1 lvmetad: Differentiate between filtered and truly missing devices.
We used to print an error message whenever we tried to deal with devices that
lvmetad knew about but were rejected by a client-side filter. Instead, we now
check whether the device is actually absent or only filtered out and only print
a warning in the latter case.
2014-09-10 22:58:22 +01:00
Petr Rockai
5f9b30d178 test: Add a test for MD component detection in pvscan --cache. 2014-09-10 22:58:12 +01:00
Zdenek Kabelac
55aa3cc813 tests: test for rename of snapshot 2014-09-09 20:17:47 +02:00
Zdenek Kabelac
70e998754e tests: thin and volume_list testing 2014-08-26 14:13:07 +02:00
Zdenek Kabelac
c37ca279e3 tests: fix volume list test
Proper use of \" escaping and shell vars.
2014-08-26 14:13:07 +02:00
Zdenek Kabelac
473a4a6548 tests: proper /dev access
Commit 5ebff6cc9f seemed to introduce
new 'for' loop but the mode is not yet used.
But the access to /dev dir needs to go through $DM_DEV_DIR
and whole path needs to be in "".
2014-08-20 14:37:41 +02:00
Peter Rajnoha
20503ff067 tests: update report-select test for latest changes 2014-08-13 17:20:09 +02:00
Petr Rockai
03a88da868 test: Add a test for lvscan --cache. 2014-08-04 17:03:17 +02:00
Marian Csontos
0dc3684b87 test: Skip lvextend-thin when thin not available 2014-07-31 22:56:19 +02:00
Petr Rockai
c4484d9050 test: Add a test for lvextend -l+100%FREE of a striped thin pool. 2014-07-30 16:17:29 +02:00
Zdenek Kabelac
8d63d94d85 tests: still unusable kernel 2014-07-23 00:29:32 +02:00
Zdenek Kabelac
22be7c4417 tests: support cluster run
needs exclusive activation
2014-07-23 00:25:49 +02:00
Zdenek Kabelac
3a8bb8d3a4 tests: use exclusive activation 2014-07-22 23:44:06 +02:00
Zdenek Kabelac
653fd7bee3 tests: new lvconvert features 2014-07-22 22:41:41 +02:00
Zdenek Kabelac
ee11bb8416 tests: use full option name
Don't overuse shortcut support -
since poolmetadatasize was the only allowed option
it's been equivalent to poolmetadata
2014-07-22 22:41:41 +02:00
Zdenek Kabelac
27574d0e41 tests: use bigger metadata
Until resolved - use bigger then 4MB cache pool metadata.
2014-07-17 16:27:39 +02:00
Zdenek Kabelac
d7065f154e tests: updates for new lvconvert 2014-07-11 13:32:52 +02:00
Zdenek Kabelac
56c5ad7b19 lvconvert: snapshot prompts to confirm conversion
Since the type passed LV is changed and content of data detroyed,
query user with prompt to confirm this operation.
Also add a proper wiping of header.

Using '--yes' will skip this prompt:

lvconvert -s --yes vg/lv vg/lvcow
2014-07-11 12:49:55 +02:00
Jonathan Brassow
f33d75e2e5 test: Test failing due to too few PVs
Commit 33d69162e4 reduced the number of
PVs to a level where the test could not function.  (It is impossible
to replace 3 PVs of a 4-way RAID1 LV if there are only 5 PVs.)
2014-07-10 18:53:46 -05:00
Peter Rajnoha
1e5ec893c7 tests: LV's zero field now reported as binary field 2014-07-10 15:30:28 +02:00
Peter Rajnoha
6dc7b783c8 metadata: fix regression causing PVs not in VGs to be marked as allocatable
If the PV is not yet in a VG, it's not allocatable.
A regression introduced by commit 0283c439ec
(_pv_create) and later commit a7ca101517
(pv_read).
2014-07-07 14:07:21 +02:00
Zdenek Kabelac
c6811dd512 tests: ensure data hits cow 2014-07-02 15:10:10 +02:00
Zdenek Kabelac
d1094ec4c6 tests: replace cat with $(<
Use shell built-in $(<
Print lvm.conf in use for test.
2014-07-02 10:45:44 +02:00
Zdenek Kabelac
b22ab4dab0 tests: avoid hiding results in local
There is a difference between:

local a=$(shell)

and

local a
a=$(shell)

The first return exit code from shells' local command.
2014-07-02 10:45:43 +02:00
Jonathan Brassow
ed3c2537b8 raid: Allow repair to reuse PVs from same image that suffered a PV failure
When repairing RAID LVs that have multiple PVs per image, allow
replacement images to be reallocated from the PVs that have not
failed in the image if there is sufficient space.

This allows for scenarios where a 2-way RAID1 is spread across 4 PVs,
where each image lives on two PVs but doesn't use the entire space
on any of them.  If one PV fails and there is sufficient space on the
remaining PV in the image, the image can be reallocated on just the
remaining PV.
2014-06-25 22:26:06 -05:00
Jonathan Brassow
b35fb0b15a raid/misc: Allow creation of parallel areas by LV vs segment
I've changed build_parallel_areas_from_lv to take a new parameter
that allows the caller to build parallel areas by LV vs by segment.
Previously, the function created a list of parallel areas for each
segment in the given LV.  When it came time for allocation, the
parallel areas were honored on a segment basis.  This was problematic
for RAID because any new RAID image must avoid being placed on any
PVs used by other images in the RAID.  For example, if we have a
linear LV that has half its space on one PV and half on another, we
do not want an up-convert to use either of those PVs.  It should
especially not wind up with the following, where the first portion
of one LV is paired up with the second portion of the other:
------PV1-------  ------PV2-------
[ 2of2 image_1 ]  [ 1of2 image_1 ]
[ 1of2 image_0 ]  [ 2of2 image_0 ]
----------------  ----------------
Previously, it was possible for this to happen.  The change makes
it so that the returned parallel areas list contains one "super"
segment (seg_pvs) with a list of all the PVs from every actual
segment in the given LV and covering the entire logical extent range.

This change allows RAID conversions to function properly when there
are existing images that contain multiple segments that span more
than one PV.
2014-06-25 21:20:41 -05:00
Jonathan Brassow
1f1675b059 test: Test addition to show incorrect allocator behavior
If a RAID LV has images that are spread across more than one PV
and you allocate a new image that requires more than one PV,
parallel_areas is only honored for one segment.  This commit
adds a test for this condition.
2014-06-21 15:33:52 -05:00
Zdenek Kabelac
93597bcbdc tests: add udev sync point
Missed synchronization with udev may lead to error on vgcreate,
if previous vgremove was not handled fast enough by udev.
2014-06-20 11:14:29 +02:00
Zdenek Kabelac
bc0a1ca83d tests: remove dmeventd usage
This test is testing --use-policies on cmdline.
So monitoring must not be used.
2014-06-19 12:48:21 +02:00
Jonathan Brassow
57faf97e6f test: Clean-up pvmove-basic for atomic pvmove test
The way I was testing for the existence of pvmove mimages was
incorrect for rhel5.  This patch makes it more generic/universal.
2014-06-18 15:40:06 -05:00
Peter Rajnoha
0548a82e63 cleanup: gcc warnings and report-select test vs snap_percent 0%
Fix gcc warnings:
libdm-report.c:1952:5: warning: "end_op_flag_hit" may be used uninitialized in this function [-Wmaybe-uninitialized]
libdm-report.c:2232:28: warning: "custom" may be used uninitialized in this function [-Wmaybe-uninitialized]

And snap_percent is not 0% in dm < 1.10.0 so
don't test comparison with 0% here.
2014-06-18 13:26:47 +02:00
Jonathan Brassow
5ebff6cc9f pvmove: Enable all-or-nothing (atomic) pvmoves
pvmove can be used to move single LVs by name or multiple LVs that
lie within the specified PV range (e.g. /dev/sdb1:0-1000).  When
moving more than one LV, the portions of those LVs that are in the
range to be moved are added to a new temporary pvmove LV.  The LVs
then point to the range in the pvmove LV, rather than the PV
range.

Example 1:
	We have two LVs in this example.  After they were
	created, the first LV was grown, yeilding two segments
	in LV1.  So, there are two LVs with a total of three
	segments.

	Before pvmove:
	      ---------  ---------   ---------
	      | LV1s0 |  | LV2s0 |   | LV1s1 |
	      ---------  ---------   ---------
	         |           |           |
	   -------------------------------------
	PV | 000 - 255 | 256 - 511 | 512 - 767 |
	   -------------------------------------

	After pvmove inserts the temporary pvmove LV:
	          ---------   ---------   ---------
	          | LV1s0 |   | LV2s0 |   | LV1s1 |
	          ---------   ---------   ---------
	              |           |           |
	        -------------------------------------
	pvmove0 |   seg 0   |   seg 1   |   seg 2   |
	        -------------------------------------
	              |           |           |
	        -------------------------------------
	PV      | 000 - 255 | 256 - 511 | 512 - 767 |
	        -------------------------------------

	Each of the affected LV segments now point to a
	range of blocks in the pvmove LV, which purposefully
	corresponds to the segments moved from the original
	LVs into the temporary pvmove LV.

The current implementation goes on from here to mirror the temporary
pvmove LV by segment.  Further, as the pvmove LV is activated, only
one of its segments is actually mirrored (i.e. "moving") at a time.
The rest are either complete or not addressed yet.  If the pvmove
is aborted, those segments that are completed will remain on the
destination and those that are not yet addressed or in the process
of moving will stay on the source PV.  Thus, it is possible to have
a partially completed move - some LVs (or certain segments of LVs)
on the source PV and some on the destination.

Example 2:
	What 'example 1' might look if it was half-way
	through the move.
	             ---------   ---------   ---------
	             | LV1s0 |   | LV2s0 |   | LV1s1 |
	             ---------   ---------   ---------
	                 |           |           |
	           -------------------------------------
	pvmove0    |   seg 0   |   seg 1   |   seg 2   |
	           -------------------------------------
	                 |           |           |
	                 |     -------------------------
	source PV        |     | 256 - 511 | 512 - 767 |
	                 |     -------------------------
	                 |           ||
	           -------------------------
	dest PV    | 000 - 255 | 256 - 511 |
	           -------------------------

This update allows the user to specify that they would like the
pvmove mirror created "by LV" rather than "by segment".  That is,
the pvmove LV becomes an image in an encapsulating mirror along
with the allocated copy image.

Example 3:
	A pvmove that is performed "by LV" rather than "by segment".

	                   ---------   ---------
	                   | LV1s0 |   | LV2s0 |
	                   ---------   ---------
	                       |           |
	                 -------------------------
	        pvmove0  |  * LV-level mirror *  |
	                 -------------------------
                             /                \
	   pvmove_mimage0   /          pvmove_mimage1
	   -------------------------   -------------------------
	   |   seg 0   |   seg 1   |   |   seg 0   |   seg 1   |
	   -------------------------   -------------------------
	        |            |               |           |
	   -------------------------   -------------------------
	   | 000 - 255 | 256 - 511 |   | 000 - 255 | 256 - 511 |
	   -------------------------   -------------------------
	           source PV                    dest PV

The thing that differentiates a pvmove done in this way and a simple
"up-convert" from linear to mirror is the preservation of the
distinct segments.  A normal up-convert would simply allocate the
necessary space with no regard for segment boundaries.  The pvmove
operation must preserve the segments because they are the critical
boundary between the segments of the LVs being moved.  So, when the
pvmove copy image is allocated, all corresponding segments must be
allocated.  The code that merges ajoining segments that are part of
the same LV when the metadata is written must also be avoided in
this case.  This method of mirroring is unique enough to warrant its
own definitional macro, MIRROR_BY_SEGMENTED_LV.  This joins the two
existing macros: MIRROR_BY_SEG (for original pvmove) and MIRROR_BY_LV
(for user created mirrors).

The advantages of performing pvmove in this way is that all of the
LVs affected can be moved together.  It is an all-or-nothing approach
that leaves all LV segments on the source PV if the move is aborted.
Additionally, a mirror log can be used (in the future) to provide tracking
of progress; allowing the copy to continue where it left off in the event
there is a deactivation.
2014-06-17 22:59:36 -05:00
Peter Rajnoha
b16f5633ab test: fix report_select test to work in cluster
The snapshot LV is used to check selection of percent values.
The orig volume must be activated exclusively in cluster.
2014-06-17 18:34:46 +02:00
Peter Rajnoha
ef43a50926 tests: update lvcreate-thin for latest changes
With recent changes introduced with the report selection support,
the content of lv_modules field is of string list type (before
it was just string type).

String list elements are always ordered now so update lvcreate-thin
test to expect the elements to be ordered.
2014-06-17 18:20:08 +02:00
Peter Rajnoha
0d8e94ce2e tests: select: add test for report selection feature 2014-06-17 16:27:21 +02:00
Peter Rajnoha
cfed0d09e8 report: select: refactor: move percent handling code to libdm for reuse 2014-06-17 16:27:21 +02:00
Zdenek Kabelac
378fa9d158 tests: check new snapshot skills 2014-06-17 13:43:05 +02:00
Zdenek Kabelac
8403bbd4ad tests: detect version of thin_restore command
Skip test when missing.
2014-06-17 13:43:05 +02:00
Zdenek Kabelac
6fb19f37fe tests: wait for udev
Before test exits, wait for udev.
2014-06-17 13:43:04 +02:00
Jonathan Brassow
962a40b981 cache: Properly rename origin LV tree when adding "_corig"
When creating a cache LV with a RAID origin, we need to ensure that
the sub-LVs of that origin properly change their names to include
the "_corig" extention of the top-level LV.  We do this by first
performing a 'lv_rename_update' before making the call to
'insert_layer_for_lv'.
2014-06-16 18:15:39 -05:00
Zdenek Kabelac
cf4d5ead02 test: pvs bz1108394 2014-06-12 11:56:06 +02:00
Zdenek Kabelac
c230ae95ab tests: change to inittest 2014-06-11 17:46:55 +02:00
Zdenek Kabelac
3f81b7c55c tests: update vgchange -c
Vgchange now detects runnig clvmd - so update test to reflect this.
2014-06-11 11:11:10 +02:00
Peter Rajnoha
6766cdc8a1 tests: some more renames lib/test -> lib/inittest 2014-06-11 11:07:32 +02:00
Zdenek Kabelac
5c5177c37c tests: rename test to inittest
We are getting into problem when we use 'test' for commands like
should/not/...

So avoid overloading test name and change it to inittest.
2014-06-10 10:51:27 +02:00
Zdenek Kabelac
9f68aadb74 tests: make timeouts longer
Add more time for tests, since debug kernels are getting slower...
and we add more and more tests.

However many test should be shortened to avoid testing disk-perfomance
and focus on lvm functionality...
(Often we should probably test with inactive volumes when we check
metadata operation of lvm2)

We may need to support option for 'DEEP' longer testing.

Also something like LVM_TEST_TIMEOUT_FACTOR might be useful
though it would be much better if test suite could approximete
from system perfomance test lenght...
2014-06-10 10:51:26 +02:00
Petr Rockai
4bb1efe2fb test: Reflect that --sysinit only treats lvmetad specially with -aay (not -ay). 2014-06-08 23:37:08 +02:00
Petr Rockai
ee200ddfc3 pvremove: Update lvmcache => avoid spurious error messages. 2014-06-08 22:57:04 +02:00
Petr Rockai
150165591f test: Try harder to vgremove in lvmetad-lvm1.sh. 2014-06-08 22:01:02 +02:00
Petr Rockai
b3bdd41092 lvm1: Fail vg_write graciously when devices are missing. 2014-06-08 21:57:18 +02:00
Petr Rockai
60443d6a5d test: Fix the vgck test after vg_write change. 2014-06-08 21:10:47 +02:00
Petr Rockai
f58a7f305b test: Fail devices silently in lvconvert-repair-transient.sh. 2014-06-08 21:10:47 +02:00
Petr Rockai
eda4c3a41d test: Make it possible to enable/disable devices silently. 2014-06-08 21:10:47 +02:00
Peter Rajnoha
14f482077d cleanup: default.profile is not used (and it was split in two and renamed anyway) 2014-06-06 10:24:50 +02:00
Zdenek Kabelac
de12310c45 tests: disable python failing test
Aborts and needs fixes...
2014-06-05 23:07:23 +02:00
Zdenek Kabelac
7b8133e0b2 tests: fix test compare
Comparing 64T can't use -eq
2014-06-05 23:06:45 +02:00
Zdenek Kabelac
eb7ca96b59 tests: adapt test for newline delimit
content of DEVICES is now delimited by newlines
2014-06-05 23:05:52 +02:00
Zdenek Kabelac
c4e0c61272 tests: typo 2014-06-05 17:49:35 +02:00
Zdenek Kabelac
54da0ea61a tests: use get_devs
Check how get_devs is usable with shell array DEVICES
2014-06-05 17:49:35 +02:00
Zdenek Kabelac
77d4e317a4 tests: use manglename none for dmsetup 2014-06-05 17:49:34 +02:00
Zdenek Kabelac
9196942312 tests: add get_devs function
Instead of rereading device list via cat - keep
the list in bash array. (Also solves problem
with spaces in device path)

Move usage of  "$path" out of lvm shell usage,
since we don't support such thing there...
2014-06-05 17:49:34 +02:00
Zdenek Kabelac
223bdc5eb2 tests: use shell arrays to keep device names
Better preserving spaces in device path name,
though admitely rest of test suite need
more repairs...
2014-06-05 17:49:34 +02:00
Zdenek Kabelac
21db25b3c4 tests: fix use of double apostrophes in get
Need to put "" around parameters.
2014-06-05 17:49:34 +02:00
Jonathan Brassow
4454a580df test: use direct I/O when injecting bad data into RAID images
When directly corrupting RAID images for the purpose of testing,
we must use direct I/O (or a 'sync' after the 'dd') to ensure that
the writes are not caught in the buffer cache in a way that is not
reachable by the top-level RAID device.
2014-05-30 17:26:10 -05:00
Zdenek Kabelac
8212dac849 tests: rename test 2014-05-28 15:41:06 +02:00
Zdenek Kabelac
171a668e81 tests: dd needs to hit disk
Unsure if this is feature or bug of syncaction,
but it needs to be present physically on the media
and it ignores content of buffer cache...

(maybe lvchange should implicitely fsync all disks
that are members of raid array before starting test??)
2014-05-28 15:33:41 +02:00
Zdenek Kabelac
ba3e6e7c32 tests: raid syncaction activation race
Demonstrace problem of syncaction being called right after activation.
2014-05-28 15:33:41 +02:00
Zdenek Kabelac
a67774c1fa tests: detect same uuid on PV
Check we know how to handle same UUID
Test  currently does NOT work on lvmetad
(or it's unclear it even should - thus test error
is currently lowered to 'test warning')

TODO: replace lib/test with a better shell script name
2014-05-27 17:09:05 +02:00
Zdenek Kabelac
b3539907f5 tests: support thin_restore configurable
Currently this tool is used only in tests.
2014-05-26 23:30:09 +02:00
Zdenek Kabelac
b0ff3359f2 tests: update aux disable_dev
disable_dev can't use transaction - since it may lead occasionaly to
weird error - example could be nomda-missing.sh test case.
Here occasionaly device instead of being removed was left as
error device and testing different code path (which is unfortunatelly
buggy)

When we want to test 'error' device -  'aux error_dev()' should be used.
2014-05-26 22:57:28 +02:00
Zdenek Kabelac
cfe18d85c1 tests: improve command coverage 2014-05-23 23:35:42 +02:00
Zdenek Kabelac
b7476e91ef tests: add unusable kernel for raid5 testing 2014-05-23 23:35:42 +02:00
Zdenek Kabelac
c5c3995ed5 tests: increase min version for raid testing
Seems smaller version are causing weird kernel lookups.
2014-05-23 23:35:42 +02:00
Zdenek Kabelac
ec9da34d86 tests: check more things with vgchange 2014-05-22 12:01:44 +02:00
Zdenek Kabelac
65b0948c1e tests: swap tests 2014-05-22 12:01:44 +02:00
Zdenek Kabelac
1208e92b34 tests: add check vg_attr_bit
Similar function like  'check lv_attr_bit'
2014-05-22 12:01:44 +02:00
Zdenek Kabelac
406ce3760b tests: detect raid presence 2014-05-22 12:01:44 +02:00
Zdenek Kabelac
b2da0f0a5b tests: raid and dmeventd 2014-05-21 23:14:42 +02:00
Zdenek Kabelac
37b4dc7775 tests: more pvchange tests 2014-05-21 23:14:42 +02:00
Zdenek Kabelac
79f4665243 tests: more vgcfgrestore testing
Check '-l' and archiving.
2014-05-21 23:14:41 +02:00
Zdenek Kabelac
9c4953df1b tests: restore disable_dev behavior
Notify needs to go  with major:minor before device disappears.
2014-05-21 16:59:38 +02:00
Zdenek Kabelac
8db67d2aff tests: skips on unsupported systems 2014-05-21 16:48:06 +02:00
Zdenek Kabelac
c34c33d9ba tests: notify loop needs maj:min
Missed in previous commit.
2014-05-21 12:00:32 +02:00
Zdenek Kabelac
cbdb8fa589 tests: notify lvmetad after udev transation
Delay udev notification after the point udev transaction
is finished - since otherwise some device may still
be found missing until udev transaction is finished.
2014-05-21 11:43:24 +02:00
Zdenek Kabelac
b57b4db889 tests: checking mirror_remove_missing
FIXME:

Seems like conversion of log is not supported in clustered VG
and needs to be fixed.
2014-05-20 22:50:52 +02:00
Zdenek Kabelac
f919a255b7 tests: lvconvert needs --yes 2014-05-20 22:50:33 +02:00
Zdenek Kabelac
08fd244506 tests: rebuild paths when Makefile is updated 2014-05-20 21:50:30 +02:00
Zdenek Kabelac
2e9792121f tests: add have_cache and have_raid
Need to be aware of build options, when system would be
configure without raid or cache support
2014-05-20 21:50:30 +02:00
Zdenek Kabelac
7f92c3a13e tests: wait before down-convert 2014-05-20 21:50:29 +02:00
Zdenek Kabelac
205be24768 tests: update lvconvert test
Split raid test to separate file
Add --yes flag to automated testing
2014-05-20 21:50:29 +02:00
Peter Rajnoha
83f468be4e tests: update profiles.sh test for latest changes 2014-05-20 16:27:09 +02:00
Zdenek Kabelac
ecccb75904 tests: drop nosync
Mirrors currently do not support any conversion,
when they are created no-sync.
2014-05-19 13:22:46 +02:00
Zdenek Kabelac
76c06c7252 tests: speedup
Avoid some expencive raid/mirror synchronization when testing
just allocation sizes.
Use lv_attr_bit
2014-05-15 12:08:35 +02:00
Zdenek Kabelac
7b766b0648 tests: updates
Move thin test out of listing.
2014-05-13 10:28:55 +02:00
Zdenek Kabelac
6f057e3c66 tests: replance hostname call 2014-05-12 16:24:40 +02:00
Zdenek Kabelac
4e559103d5 tests: lets the test continue
unwanted start of dmeventd was caused by seg_monitor status.
2014-04-30 10:26:31 +02:00
Zdenek Kabelac
26989e0cd7 tests: improve coverage
Test more code paths for lvscan & lvdisplay
2014-04-28 12:42:57 +02:00
Jonathan Brassow
3bce3ad52a test: Add the new vgsplit RAID test file forgotten in the last commit 2014-04-25 16:59:09 -05:00
Jonathan Brassow
c671be434c test: Move the RAID vgsplit test into a separate file 2014-04-25 16:57:43 -05:00
Jonathan Brassow
3c4234f825 vgsplit: Make RAID 4/5/6 fail cleanly when too few PV specified
While the 'raid1/10' segment types were being handled inadvertently
by '_move_mirrors()', the parity RAIDs were not being properly checked
to ensure that the user had specified all necessary PVs when moving
them.  Thus, internal errors were being triggered when only part of
a RAID LV was moved to the new VG.  I've added a new function,
'_move_raid()', which properly checks over any affected RAID LVs and
ensures that all the necessary PVs are being moved.
2014-04-25 16:24:50 -05:00
Jonathan Brassow
4dffb9fca9 test/vgsplit-operation.sh: Add vgsplit tests for RAID
vgsplit of RAID volumes was problematic because the metadata area
and data areas were always on the same PVs.  This problem is similar
to one that was just fixed for mirrors that had log and images sharing
a PV (commit 9ac858f).  We can now add RAID LVs to the tests for
vgsplit.

Note that there still seems to be an issue when specifying an
incomplete set of PVs when moving RAID LVs.
2014-04-25 16:22:40 -05:00
Jonathan Brassow
9ac858fe6b vgsplit: Make vgsplit work on mirrors with leg and log on same PV
Given a named mirror LV, vgsplit will look for the PVs that compose it
and move them to a new VG.  It does this by first looking at the log
and then the legs.  If the log is on the same device as one of the mirror
images, a problem occurs.  This is because the PV is moved to the new VG
as the log is processed and thus cannot be found in the current VG when
the image is processed.  The solution is to check and see if the PV we are
looking for has already been moved to the new VG.  If so, it is not an
error.
2014-04-25 14:53:34 -05:00
Alasdair G Kergon
0ee9d59b48 test: configurable write timeout
Hard-coded 3 minutes is far too short when investigating problems.
2014-04-24 22:44:22 +01:00
Alasdair G Kergon
9676ee9ba9 test: Fix default.profile path.
It's a generated file.
2014-04-24 18:52:29 +01:00
Zdenek Kabelac
22037ee328 tests: fix creation of scsi debug
Use proper '||' test form to avoid unwanted test abort
on failure.
(i.e. running failing test profiles-thin.sh on a real /dev)
2014-04-24 14:42:27 +02:00
Marian Csontos
795944f178 test: add lvresize tests
- test for Bug 1088153
- test lvextend does not reduce nor lvreduce extend LV
2014-04-22 12:53:30 +02:00
Zdenek Kabelac
47a60369a0 unknown: fix mempool used for name allocation
Use cmd libmem mempool for name allocation, since mem mempool
is released after each clvmd command.
2014-04-18 16:38:47 +02:00
Zdenek Kabelac
3c82a37aee tests: correct test condition
Abort loop when PIDFILE is gone
2014-04-14 14:55:14 +02:00
Zdenek Kabelac
92ee51a4c3 tests: check there is really pvmove lv
Since the kill may take various amount of time,
(especially when running with valgrind)
check it's really pvmoved LV.

Restore initial restart of clvmd - it's currently
broken at various moments - basically killed lvm2
command may leave clvmd and confusing state leading
to reports of internal errors.
2014-04-14 13:02:28 +02:00
Zdenek Kabelac
4d48577ab9 tests: implement lv_attr_bit
Add easy check function for cheking lv_attr bits
2014-04-14 13:02:28 +02:00
Peter Rajnoha
35721ee134 tests: add test for pvcreate --dataalignment --dataalignmentoffset --restorefile compatibility
Also, avoid division by zero in the pvcreate's param validation
in case someone supplies "pvcreate --dataalignment 0".
2014-04-10 15:02:35 +02:00
Peter Rajnoha
05eb6a167e tests: add separate test file for bootloader area support and enhance tests
Enahnce bootloader area test to check whether restoring values from
backup works correctly.
2014-04-10 14:18:59 +02:00
Peter Rajnoha
b45d2768a8 tests: add some coverage for bootloader areas 2014-04-09 15:44:26 +02:00
Zdenek Kabelac
87e559f1ec tests: check prohibited names 2014-04-08 11:00:16 +02:00
Zdenek Kabelac
c95d43b28c tests: update lvcreate-cache 2014-04-01 20:54:10 +02:00
Peter Rajnoha
504c328e3d tests: add profiles-thin and prepare_profiles helper fn 2014-04-01 15:52:54 +02:00
Petr Rockai
490226fc47 pvs: Wipe persistent filters when given a device argument. 2014-04-01 14:46:22 +02:00
Peter Rajnoha
a30219a8c0 tests: update profiles.sh for recent changes 2014-04-01 11:48:49 +02:00
Zdenek Kabelac
367e4551a1 tests: add more rename test
Drop test, which are now in other files (listings.sh)
2014-03-31 12:05:35 +02:00
Zdenek Kabelac
ee8708cc8e tests: more listing tests 2014-03-31 12:05:35 +02:00
Zdenek Kabelac
8f9150c241 tests: add more pvdisplay tests 2014-03-30 23:45:00 +02:00
Zdenek Kabelac
1216aa7826 tests: workaround clvmd .cache consistency
May need futher fixes, but it's needed only on non-udev systems
(systems which still needs .cache - just like test suite)
2014-03-30 23:45:00 +02:00
Zdenek Kabelac
2c8f0c9800 tests: more vgexport tests
cover more options
2014-03-30 23:45:00 +02:00
Zdenek Kabelac
5aa2e5ec8c tests: update pvs test
TODO:
It seems commit 7e685e6c70
has changed the old logic, when  'pvs device_name' used
to work. (regression from 2.02.104)
Currently put in extra pvscan.
2014-03-28 17:06:13 +01:00
Zdenek Kabelac
3181dc72e7 tests: more coverage for pvchange
Change metadataignore
Argless pvchange
Alocatability for orphans
2014-03-28 11:38:50 +01:00
Zdenek Kabelac
2a79971004 tests: check pvchange changes uuid 2014-03-28 10:41:59 +01:00
Zdenek Kabelac
09b180cfc2 tests: expect failing pvs when missing PV 2014-03-28 10:41:59 +01:00
Zdenek Kabelac
a512ea6a6a tests: updates 2014-03-28 00:41:19 +01:00
Zdenek Kabelac
bd805ff048 tests: move some tests to better places
Some tests already have separate test scripts - so move
those tests to listing and vgcfgbackup files.
2014-03-28 00:41:19 +01:00
Zdenek Kabelac
5b44a036b1 tests: support invalid and fail results
Allow more detailed check for failing exit code:

invalid  -  expects 3
fail - expects 5
2014-03-28 00:41:19 +01:00
Zdenek Kabelac
4ebdfcfb59 tests: more pvchange options examined 2014-03-27 13:13:22 +01:00
Zdenek Kabelac
04a6918518 tests: cover more commands
Visit more code lines.
2014-03-27 13:13:09 +01:00
Zdenek Kabelac
a2614c6866 tests: missed exclusive activation 2014-03-26 00:22:23 +01:00
Zdenek Kabelac
5b900dbef5 tests: pass list devs to allocate from 2014-03-26 00:05:46 +01:00
Zdenek Kabelac
1259ae5954 tests: cover code from more commands 2014-03-26 00:05:46 +01:00
Zdenek Kabelac
4b30863e85 tests: check forced backup 2014-03-26 00:05:46 +01:00
Zdenek Kabelac
4adbb85c37 tests: disable test for broken kernel raid targe
Since using raid5 - validate it's usable on the system
2014-03-26 00:04:59 +01:00
Zdenek Kabelac
fb471a372d tests: remove also 3.14 fc21 kernels 2014-03-26 00:04:59 +01:00
Zdenek Kabelac
8471fb01d8 tests: wipe signature
Check for usable blkid.
2014-03-25 11:23:00 +01:00
Zdenek Kabelac
3c9204a75a tests: update 2014-03-25 11:23:00 +01:00
Zdenek Kabelac
36d87eddcf tests: use exclusive activation
pvmove in cluster needs exlusive activation or cmirrord running.
2014-03-25 11:23:00 +01:00
Zdenek Kabelac
db1d4ba4ac tests: argless pvremove 2014-03-25 11:23:00 +01:00
Zdenek Kabelac
04861b9bed tests: more pvresize tests
Maybe move to separate pvresize test,
remove vgck size this is already executed elsewhere.
2014-03-25 11:22:59 +01:00
Zdenek Kabelac
db04d3e6d2 tests: relocate vgimport test
It seem like a better-fit here.
2014-03-25 11:22:59 +01:00
Zdenek Kabelac
c0c55846b0 tests: wait for clvmd.pid file
Just like with dmeventd and lvmetad.
Do few indent changes around.
2014-03-21 22:29:28 +01:00
Zdenek Kabelac
8b1916fd5a tests: simplify 2014-03-21 22:29:28 +01:00
Zdenek Kabelac
de5683d8d9 tests: add quotes around device paths 2014-03-21 22:29:27 +01:00
Petr Rockai
f12ee43f2e polldaemon: Re-initialise lvmcache properly on fork (fixes RHBZ 1073670). 2014-03-19 16:25:12 +01:00
Zdenek Kabelac
aed36c12f8 tests: use check lv_tree_on
Use internal /lib function.
Reduce extent size for test to create smaller devices.
2014-03-18 10:28:09 +01:00
Zdenek Kabelac
81166a84be tests: more fedora kernels unusable for testing raid456 2014-03-18 10:28:08 +01:00
Zdenek Kabelac
31b1d06ddd tests: replace skip_if_mirror_recovery_broken
Use mirror_recovery_works instead with easier to follow logic.
2014-03-17 16:33:29 +01:00
Zdenek Kabelac
19fd6040c2 tests: quotes for LVM_TEST vars 2014-03-17 16:32:29 +01:00
Zdenek Kabelac
e3d208f7c2 tests: put vars in quotes
This shell var has space in middle
2014-03-17 16:30:52 +01:00
Zdenek Kabelac
a2c544dc91 tests: make test usable in cluster
Origin needs exclusive activation
2014-03-17 15:18:20 +01:00
Zdenek Kabelac
ae2d80dd7e tests: update error message check 2014-03-17 15:18:02 +01:00
Zdenek Kabelac
e398901ed1 tests: zero and error type tests 2014-03-17 14:31:45 +01:00
Zdenek Kabelac
fe8603dd60 tests: lvconvert snapshot testing 2014-03-17 14:31:45 +01:00
Zdenek Kabelac
27d556de9e tests: enhance snapshot test
Improve cleanup routine and use it also for vg removal.
2014-03-17 14:31:45 +01:00
Zdenek Kabelac
1a0fea104b tests: put test envvar into braces
Ensure we not fail on space.
2014-03-17 14:31:45 +01:00
Zdenek Kabelac
95f74af404 tests: skip mangling test
Mangling is only using dmsetup commands,
so there is no lvm command and no contact with
clvmd nor lvmetad so skip this test there.
2014-03-17 14:31:45 +01:00
Zdenek Kabelac
909e2207bd tests: test spare volume removal 2014-03-17 14:31:44 +01:00
Zdenek Kabelac
404593c710 tests: more coverage 2014-03-17 14:31:44 +01:00
Zdenek Kabelac
7d3fa6fc32 tests: skip more Fedora kernels for raid456 2014-03-17 14:31:44 +01:00
Zdenek Kabelac
0fc17fe1ce tests: add more help text and paths quotes
Add LVM_VALGRDIN help text
Use proper quotes for  abs_  paths
(Assignment in makefile doesn't need them, only shell usage)
2014-03-17 14:31:44 +01:00
Peter Rajnoha
12eb284eec tests: fix name-mangling test
We need to use "--verifyudev" for dmsetup mangle command used in
the name-mangling test since without the --verifyudev, we'd end up
with the failed rename.

Also, add direct check for the dev nodes - node with old name must
be gone and node with new name must be present. Before, we checked
just the output of the command.

One bug popped up here when renaming with udev and libdevmapper
fallback checking the udev when target mangle mode is "none"
(fixme added in the libdevmapper's node rename code).
2014-03-17 11:51:30 +01:00
Zdenek Kabelac
58e812a13f tests: use DMEVENTD_PIDFILE
Test for compiled-in pidfile location
(so we are not based on assumption /var/run or /run link exists)
2014-03-14 11:16:24 +01:00
Zdenek Kabelac
900cb6717b tests: quick update of location of pid file
Until better fix is put in - replace with /run.
2014-03-14 10:40:48 +01:00
Zdenek Kabelac
8b14ebb2f1 tests: another kernel with unusable kmem_check 2014-03-12 16:17:36 +01:00
Zdenek Kabelac
a2c64e21fd tests: check we are no reading pool device 2014-03-12 00:26:47 +01:00
Zdenek Kabelac
dd690d5fd1 tests: add inactive pool creation test 2014-03-12 00:25:59 +01:00
Zdenek Kabelac
5dc9402774 tests: dmeventd valgrind testing 2014-03-10 12:24:11 +01:00
Zdenek Kabelac
c7262d5b38 tests: aux adds kill_sleep_kill_
Move common code to subfunction
2014-03-10 12:24:11 +01:00
Zdenek Kabelac
1c18fc42ec tests: drop unused make_ioerror 2014-03-10 12:24:11 +01:00
Zdenek Kabelac
6cc75d1497 tests: workaround bash bug
Seems new bash4.3 is somewhat buggy
https://bugzilla.redhat.com/show_bug.cgi?id=1074202

Put in cheap workaround for now.
2014-03-10 12:24:10 +01:00
Zdenek Kabelac
4eed2c8142 tests: skip valgrind testing when assigned to 0
When LVM_VALGRIND_CLVMD/LVMETAD is set to 0  skip testing.
(Proviosly any value caused to run valgrind testing,
so now '0' skips testing))
2014-03-10 12:24:10 +01:00
Zdenek Kabelac
41e1b12e03 tests: skip another kernel
This kernel has still buggy kmem_cache debugging so skip it for raid456.
2014-03-10 12:24:10 +01:00
Zdenek Kabelac
d913fcbd46 tests: improve wait for open
Add loop to detect open device from 'sleep <'
2014-03-10 12:24:10 +01:00
Zdenek Kabelac
fa23234e71 tests: reuse existing check dev_md5sum
Create md5sum in reusable way and use exiting check function.
2014-03-10 12:24:10 +01:00
Zdenek Kabelac
ef1d910dee tests: updates for new test
snaphost needs exclusive origin for cluster
older md5 needs 2 space char
2014-03-06 18:01:21 +01:00
Zdenek Kabelac
6b561a7a3b tests: check created snapshot has good max size
Testing if we are creating large enough old-snapshot
(so the COW max size is correct)
https://bugzilla.redhat.com/show_bug.cgi?id=1035871
2014-03-06 17:30:10 +01:00
Zdenek Kabelac
d0673b0ddc tests: detect old-snap metadata consitency
Add some test for correctness of snapshot metadata.
Based upon original test from Mikulas.
Needs correctly working kernel snapshot target.
2014-03-06 17:30:10 +01:00
Peter Rajnoha
cfc9e178bf tests: fix name-mangling test and remove udev transaction in dmsetup wrapper 2014-03-06 14:46:50 +01:00
Petr Rockai
3c9887467f test: Use correct path to /dev in lvchange-raid.sh. 2014-03-05 10:22:39 +01:00
Zdenek Kabelac
08aedff1fc tests: testing usable of /dev/kmsg
It's not so easy to recongnize unusable /dev/kmsg
Reorder the code in a way if the first regular read of /dev/kmsg
fail, fallback to klogctl interface.

Call drain_dmesg also for the case there is no user log output.
2014-03-04 17:54:33 +01:00
Zdenek Kabelac
9a99cb8c79 tests: hide error message
Make the logging looks normal for this case
2014-03-04 16:41:07 +01:00
Zdenek Kabelac
a01e2ff81c tests: print kernel version 2014-03-04 16:27:00 +01:00
Zdenek Kabelac
b47bdb4dca tests: check readability of /dev/kmsg
Looks like there are systems with /dev/kmsg device,
which is however not readable

Fix check for result value of klogctl and use only positive value.
2014-03-04 16:27:00 +01:00
Zdenek Kabelac
30810de1b0 tests: reinstantiate support for klogctl
Add a bit more complexity here - Switch to use /dev/kmsg
which has been introduced in 3.5 kernels and could run without
lossing lines from /proc/kmsg.

On older systems user may set env var LVM_TEST_CAN_CLOBBER_DMESG=1
to get kernel messages via klogctl() call (which deletes dmesg buffer)
otherwise no logging of kernel messages is provided.
2014-03-04 15:18:19 +01:00
Petr Rockai
cb77bdc253 test: Make teardown (more) resistant to funny DM device names. 2014-03-04 11:16:00 +01:00
Zdenek Kabelac
d739e16d85 tests: restore .txt suffix 2014-03-03 19:30:48 +01:00
Zdenek Kabelac
719261a33a tests: speedup kmsg processing
Since there could be multiple readers of kmsg (test & journald) it needs
to be fast, to capture things like sysrq trace.

But to capture whole output it would need to prioritize reading of kmsg,
thus we would first log kernel messages and followed by command output.

As a trade-off always log command output first and use large drain
buffer so is captures most of messages, but occasionaly miss some
lines.
2014-03-03 19:30:47 +01:00
Zdenek Kabelac
52007a9191 tests: split raid test
Use separate files for raid1, raid456, raid10.
They need different target versions to work, so support
more precise test selection.

Optimize duplicate tests of target avalability and skip
unsupported test cases sooner.
2014-03-03 11:23:57 +01:00
Marian Csontos
445c0a5585 test: Remove incorrect evaluation 2014-03-03 08:31:33 +01:00
Zdenek Kabelac
6df716332c tests: detect nc or socat
Since shell is not in -o pipefail mode here,
we need to generate separate failure ahead of tee.
2014-03-02 21:48:28 +01:00
Zdenek Kabelac
6c377f5b3c tests: restore usage of reading kmsg
Basically reverts commit af8580d756.
"test: Use klogctl in the harness instead of reading /var/log/messages."

Problem is - this interface clears dmesg buffer
(just like call of dmesg -c)
Thus after running lvm2 test suitedmesg is empty - while all the
messages are usually logged in the journal/message, it's still not nice to
clear dmesg buffer.

It's not a pure revert, but switch to use /proc/kmsg directly instead of
reading /var/log/messages.
2014-03-02 21:30:26 +01:00
Zdenek Kabelac
33d69162e4 tests: split raid test
Use separate test file for raid456
Change test for broken kernel which has broken raid456 support.
2014-03-02 21:27:26 +01:00
Zdenek Kabelac
3ff10f5e61 tests: disable test which leaks node
This test is not detected as fault but leak device node
on a real /dev.
Added FIXME.
2014-03-02 21:27:26 +01:00
Zdenek Kabelac
75b5855ca1 tests: report selinux mode 2014-03-02 21:27:26 +01:00
Zdenek Kabelac
a2af5855c5 tests: use longer sleep
Eplore why 30sec is not enough for hydra and try higher value.
2014-03-02 21:27:25 +01:00
Petr Rockai
fade191aed test: Test that we cope with stray device nodes. 2014-03-02 20:53:43 +01:00
Petr Rockai
3b958984f1 test: Properly synchronize direct dmsetup calls. 2014-03-02 20:53:43 +01:00
Zdenek Kabelac
72ecf8e591 tests: detect reiserfs support
Since reiserfs is not commonly available detect its presence in kernel.
Stop reporting skipped test as WARNING.
2014-03-01 14:08:59 +01:00
Petr Rockai
daa897fe90 test: Fix stat calls in lvmetad-pvscan-filter. 2014-02-28 23:33:30 +01:00
Petr Rockai
1bb29bb402 test: Downgrade lvmetad-lvm1 failure to a warning. 2014-02-28 23:33:17 +01:00
Petr Rockai
6733ac86d7 test: Fix the failing branch in aux lvmetad_talk. 2014-02-28 23:30:17 +01:00
Petr Rockai
f3b9fe6024 test: Add lvmetad_talk and lvmetad_dump to aux. 2014-02-28 11:23:53 +01:00
Petr Rockai
8e814eb899 test: Fix notify_lvmetad for symlinked devices. 2014-02-28 11:23:53 +01:00
Petr Rockai
bf29eabdba lvmetad: Keep the cache consistent when a PV moves around.
In cases where PV appears on a new device without disappearing from an old one
first, the device->pvid pointers could become ambiguous. This could cause the
ambiguous PV to be lost from the cache when a different PV comes up on one of
the ambiguous devices.
2014-02-28 11:23:52 +01:00
Petr Rockai
a368698672 lvmetad: Hide corrupt MDAs from the cache.
This is probably not optimal, but makes the lvmetad case mimic non-lvmetad code
more closely. It also fixes vgremove of a partially corrupt VG with lvmetad, as
_vg_write_raw (and consequently, entire vg_write) currently panics when it
encounters a corrupt MDA. Ideally, we'd be able to explicitly control when it is
safe to ignore them.
2014-02-28 11:23:52 +01:00
Jonathan Brassow
38ab4c31a6 test: warn rather than fail when %FREE isn't working right
%FREE allocation has been broken for RAID.  At 100%FREE, there is
still an extent left for certain tests.  For now, change the test
to warn rather than completely fail.
2014-02-27 22:47:30 -06:00
Zdenek Kabelac
a7dc422bde tests: remove extra vgremove
These vgremove calls were not correct.
2014-02-27 14:53:33 +01:00
Zdenek Kabelac
c23cd12023 tests: quote dev 2014-02-27 14:49:49 +01:00
Zdenek Kabelac
f4afd07700 tests: drop remove
Generates waaaaay too much log from lvmetad test.

TODO: once we will be able to remove more LVs with a single
write - we may restore....
2014-02-27 14:48:32 +01:00
Zdenek Kabelac
47b15b805e tests: updates
Add some vgremove calls.
Remove uneeded test for some unused commands.
Add tests for missing commands.
2014-02-27 13:01:04 +01:00
Zdenek Kabelac
d00fc1de78 snapshot: correct previous snapshot commit
Condition was swapped - however since it's been based on 'random'
memory content it's been missed as attribute has not been set.

So now we have quite a few possible results when testing.

We have old status without separate metadata and
we have kernels with fixed snapshot leak bug.

(in-release update)
2014-02-27 13:00:49 +01:00
Zdenek Kabelac
40e6176d25 snapshots: fix incorrect calculation of cow size
Code uses target driver version for better estimation of
max size of COW device for snapshot.

The bug can be tested with this script:
VG=vg1
lvremove -f $VG/origin
set -e
lvcreate -L 2143289344b -n origin $VG
lvcreate -n snap -c 8k -L 2304M -s $VG/origin
dd if=/dev/zero of=/dev/$VG/snap bs=1M count=2044 oflag=direct

The bug happens when these two conditions are met
* origin size is divisible by (chunk_size/16) - so that the last
  metadata area is filled completely
* the miscalculated snapshot metadata size is divisible by extent size -
  so that there is no padding to extent boundary which would otherwise
  save us

Signed-off-by:Mikulas Patocka <mpatocka@redhat.com>
2014-02-26 14:25:09 +01:00
Zhiqing Zhang
014ba37cb1 lvresize: fix stripe size validation
While stripe size is twice the physical extent size,
the original code will not reduce stripe size to maximum
(physical extent size).

Signed-off-by: Zhiqing Zhang <zhangzq.fnst@cn.fujitsu.com>
2014-02-26 13:25:50 +01:00
Zdenek Kabelac
b5e03c88b8 tests: support for older snapshot target version
TODO: unsure about 1.10...
2014-02-26 11:17:39 +01:00
Zdenek Kabelac
aef6016011 tests: improve read-only test for snapshot
Switch to use ext2 to make it usable on older systems.
Previous test has not been able to catching problem.

Multiple tests are now put in.

FIXME: validate what is doing kernel target when
the header is undeleted and same chunk size is used.

It seems snapshot target successfully resumes and
just complains COW is not big enough:

kernel: dm-8: rw=0, want=40, limit=24
kernel: attempt to access beyond end of device

When chunk size is different it fails instantly.

For checking this with lvm2 and this test case use this patch:

--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -769,7 +769,7 @@ static int _read_activation_params(struct
lvcreate_params *lp,
        lp->permission = arg_uint_value(cmd, permission_ARG,
                                        LVM_READ | LVM_WRITE);

-       if (lp->snapshot) {
+       if (0 && lp->snapshot) {
                /* Snapshot has to zero COW header */
                lp->zero = 1;
                lp->wipe_signatures = 0;

---
and switch to use  -c 4 for both snapshots
2014-02-26 10:19:46 +01:00
Zdenek Kabelac
2b044452e3 snapshot: zero cow header for read-only snapshot
When read-only snapshot was created, tool was skipping header
initialization of cow device.  If it happened device has been
already containing header from some previous snapshot, it's
been 'reused' for a newly created snapshot instead of being cleared.
2014-02-26 00:22:46 +01:00
Zdenek Kabelac
3e49753e6c tests: cache needs 1.3 2014-02-25 09:36:07 +01:00
Zdenek Kabelac
8083143822 tests: add extra wait
Parallel upconvert & downconvert is now tested separately
in lvconvert-mirror-updown.sh
2014-02-24 21:13:36 +01:00
Zdenek Kabelac
dc839fb361 tests: check for python before other tests 2014-02-24 21:13:36 +01:00
Zdenek Kabelac
32138969f9 tests: enhance thin test
Add more tests to also check validaty of transaction_id
and also detect we are not leaving active unusable thin pool LVs.
2014-02-24 21:13:36 +01:00
Zdenek Kabelac
9c9f4515ae tests: add some quotes
Use quotes for DM_DEV_DIR
2014-02-24 21:13:36 +01:00
Zdenek Kabelac
f8780e2d79 tests: drop mirror from filter 2014-02-24 21:13:36 +01:00
Jonathan Brassow
ee89ac7b88 pvmove: Disallow pvmove of cache LVs
Skip over LVs that have a cache LV in their tree of LV dependencies
when performing a pvmove.

This means that users cannot move a cache pool or a cache LV's origin -
even when that cache LV is used as part of another LV (e.g. a thin pool).

The new test (pvmove-cache-segtypes.sh) currently builds up various LV
stacks that incorporate cache LVs.  pvmove tests are then performed to
ensure that cache related LVs are /not/ moved.  Once pvmove is enabled
for cache, those tests will switch to ensuring that the LVs /are/
moved.
2014-02-24 12:25:18 -06:00
Jonathan Brassow
fdb7356d6a test: Add cache[pool] support to lv_tree_devices_ test suite function. 2014-02-24 10:40:00 -06:00
Jonathan Brassow
46223c4284 test: move RAID10 tests from lvcreate-raid.sh to lvcreate-raid10.sh 2014-02-21 18:28:16 -06:00
Petr Rockai
294671fa62 test: Only try raid10 on dm-raid versions that support it. 2014-02-21 19:47:06 +01:00
Zdenek Kabelac
5e83682ccf tests: add small test for clustered conversion of mirror
Test currently fails with make check_cluster - so uses 'should'

CLVMD[4f435880]: Feb 19 23:27:36 Send local reply
format_text/archiver.c:230   WARNING: This metadata update is NOT backed up
metadata/mirror.c:1105   Failed to initialize log device
metadata/mirror.c:1145         <backtrace>
lvconvert.c:1547         <backtrace>
lvconvert.c:3084         <backtrace>
2014-02-19 23:34:07 +01:00
Jonathan Brassow
00ce01e52d cache-pool: Change segtype name from cache_pool to cache-pool
Thin pools use "thin-pool" for the segment type name.  To be consistent,
we use "cache-pool" instead of "cache_pool".
2014-02-19 09:26:03 -06:00
Zdenek Kabelac
c71a3bcbc0 activation: lv_activation_skip remove always same arg.
Remove 'skip' argument passed into the function.
We always used '0' - as this is the only supported
option (-K) and there is no complementary option.

Also add some testing for behaviour of skipping.
2014-02-19 11:33:39 +01:00
Zdenek Kabelac
fdcd95a3b3 tests: check locking is not lost during thin_check 2014-02-18 14:58:41 +01:00
Zdenek Kabelac
0e0f91b6dd tests: use exclusive activation for mirror case
Since mirror doesn't take exclusive lock implicitely yet,
enforce it for cluster testing.
2014-02-18 10:39:29 +01:00
Jonathan Brassow
6a00a7e33d RAID: Allow implicit stripe (and parity) when creating RAID LVs
There are typically 2 functions for the more advanced segment types that
deal with parameters in lvcreate.c: _get_*_params() and _check_*_params().
(Not all segment types name their functions according to this scheme.)
The former function is responsible for reading parameters before the VG
has been read.  The latter is for sanity checking and possibly setting
parameters after the VG has been read.

This patch adds a _check_raid_parameters() function that will determine
if the user has specified 'stripe' or 'mirror' parameters.  If not, the
proper number is computed from the list of PVs the user has supplied or
the number that are available in the VG.  Now that _check_raid_parameters()
is available, we move the check for proper number of stripes from
_get_* to _check_*.

This gives the user the ability to create RAID LVs as follows:
# 5-device RAID5, 4-data, 1-parity (i.e. implicit '-i 4')
~> lvcreate --type raid5 -L 100G -n lv vg /dev/sd[abcde]1

# 5-device RAID6, 3-data, 2-parity (i.e. implicit '-i 3')
~> lvcreate --type raid6 -L 100G -n lv vg /dev/sd[abcde]1

# If 5 PVs in VG, 4-data, 1-parity RAID5
~> lvcreate --type raid5 -L 100G -n lv vg

Considerations:
This patch only affects RAID.  It might also be useful to apply this to
the 'stripe' segment type.  LVM RAID may include RAID0 at some point in
the future and the implicit stripes would apply there.  It would be odd
to have RAID0 be able to auto-determine the stripe count while 'stripe'
could not.

The only draw-back of this patch that I can see is that there might be
less error checking.  Rather than informing the user that they forgot
to supply an argument (e.g. '-i'), the value would be computed and it
may differ from what the user actually wanted.  I don't see this as a
problem, because the user can check the device count after creation
and remove the LV if they have made an error.
2014-02-17 20:18:23 -06:00
Zdenek Kabelac
0be6caba6e tests: drop more debug.log
Avoid login result from last lvm command when target_at_least fails.
2014-02-17 22:25:53 +01:00
Zdenek Kabelac
18cac16540 tests: more clustered testing 2014-02-17 22:25:53 +01:00
Zdenek Kabelac
37cf201906 tests: on older system use mirror type 2014-02-17 22:25:53 +01:00
Zdenek Kabelac
8eedb18c73 tests: add short delay
Give some extra delay so the file will be opened.
2014-02-17 22:25:53 +01:00
Zdenek Kabelac
25cea92338 thin: fix merge of old snaphost
Fix merging of old snapshot into thinvolume origin.
Add also internal error for the error case when
merging requests activation of merged LV.
2014-02-17 22:25:53 +01:00
Jonathan Brassow
fa4812bf7b cache: Fix cache LV not being instantiated in kernel
When an origin exists and the 'lvcreate' command is used to create
a cache pool + cache LV, the table is loaded into the kernel but
never instantiated (suspend/resume was never called).  A user running
LVM commands would never know that the kernel did not have the
proper state unless they also ran the dmsetup 'table/status' command.
The solution is to suspend/resume the cache LV to make the loaded
tables become active.
2014-02-14 16:04:31 -06:00
Jonathan Brassow
4b6e3b5e5e allocation: Allow approximate allocation when specifying size in percent
Introduce a new parameter called "approx_alloc" that is set when the
desired size of a new LV is specified in percentage terms.  If set,
the allocation code tries to get as much space as it can but does not
fail if can at least get some.

One of the practical implications is that users can now specify 100%FREE
when creating RAID LVs, like this:
~> lvcreate --type raid5 -i 2 -l 100%FREE -n lv vg
2014-02-13 21:10:28 -06:00
Zdenek Kabelac
d68e5d5ab9 tests: utilize check and get
Replace some in-test use of lvs commands with their check
and get equivalent.

Advantage is these 'checking' commands are not necessarily always
valiadated via extensive valgrind testing and also the output noice
is significantly reduces since the output of check/get is suppressed.
2014-02-11 19:00:07 +01:00
Zdenek Kabelac
177db48c11 tests: add check lv_not_exists 2014-02-11 19:00:06 +01:00
Zdenek Kabelac
4ed831e7ef tests: remove debug.log in enable_dev
In aux functions we may drop debug log from
last running lvm command - so we do not
get debug log from properly executed command,
when we fail here.
2014-02-11 19:00:06 +01:00
Jonathan Brassow
96626f64fa cache: Code to allow the create/remove of cache LVs
This patch allows users to create cache LVs with 'lvcreate'.  An origin
or a cache pool LV must be created first.  Then, while supplying the
origin or cache pool to the lvcreate command, the cache can be created.

Ex1:
Here the cache pool is created first, followed by the origin which will
be cached.
~> lvcreate --type cache_pool -L 500M -n cachepool vg /dev/small_n_fast
~> lvcreate --type cache -L 1G -n lv vg/cachepool /dev/large_n_slow

Ex2:
Here the origin is created first, followed by the cache pool - allowing
a cache LV to be created covering the origin.
~> lvcreate -L 1G -n lv vg /dev/large_n_slow
~> lvcreate --type cache -L 500M -n cachepool vg/lv /dev/small_n_fast

The code determines which type of LV was supplied (cache pool or origin)
by checking its type.  It ensures the right argument was given by ensuring
that the origin is larger than the cache pool.

If the user wants to remove just the cache for an LV.  They specify
the LV's associated cache pool when removing:
~> lvremove vg/cachepool

If the user wishes to remove the origin, but leave the cachepool to be
used for another LV, they specify the cache LV.
~> lvremove vg/lv

In order to remove it all, specify both LVs.

This patch also includes tests to create and remove cache pools and
cache LVs.
2014-02-04 16:50:16 -06:00
Zdenek Kabelac
ef557b8091 tests: update test
Remove some unneeded traces and outputs.
2014-02-04 14:49:38 +01:00
Zdenek Kabelac
42fa0e6dd1 tests: validate acceptable external origin size 2014-01-29 14:59:09 +01:00
Zdenek Kabelac
e9d9852c55 thin: more validation of thin name
Avoid starting conversion of the LV to the thin pool and thin volume
at the same time.  Since this is mostly a user mistake, do not try
to just convert to one of those type, since we cannot assume if the
user wanted LV to become thin volume or thin pool.

Before the fix tool reported pretty strange internal error:
Internal error: Referenced LV lvol1_tdata not listed in VG mvg.

Fixed output:
lvconvert --thinpool lvol0 -T mvg/lvol0
Can't use same LV mvg/lvol0 for thin pool and thin volume.
2014-01-28 13:21:39 +01:00
Zdenek Kabelac
bc5f40ee1c tests: check for mkfs
Test mkfs.ext3 presence for test.
Test also on singlenode cluster.
Speed up a bit slowed down device.
2014-01-28 10:40:08 +01:00
Zdenek Kabelac
c0bd436dcb thin: disable extension of reduced thin with etx.origin
Since we are currently incapable of providing zeroes for
reextended thin volume area, let's disable extension of
such already reduce thin volumes.

(in-release change)
2014-01-28 10:40:08 +01:00
Zdenek Kabelac
6b73d21ba9 locking: avoid dropping locks
When lvm2 command forks, it calls reset_locking(),
which as an unwanted side effect unlinked lock file from filesystem.

Patch changes the behavior to just close locked file descriptor
in children - so the lock is being still properly hold in the parent.
2014-01-27 12:13:29 +01:00
Zdenek Kabelac
f18ee04fab lvmetad: respect LVM_LVMETAD_PIDFILE settings in lvm
Test LVM_LVMETAD_PIDFILE for pid for lvm command.
Fix WHATS_NEW envvar name usage
Fix init order in prepare_lvmetad to respect set vars
and avoid clash with system settings.
Update test to really test the 'is running' message.
2014-01-24 15:59:38 +01:00
Zdenek Kabelac
c1df1f3a81 tests: thin external origin resize 2014-01-23 14:22:34 +01:00
Zdenek Kabelac
efe36fcd43 tests: more testing for online thin metadata resize
Some more tests for online resize, but it's still disabled
by default, since kernel doesn't work yet for this feature.
2014-01-21 13:53:10 +01:00
Zdenek Kabelac
79768b2e9c tests: update testing for xfs 2014-01-20 12:02:33 +01:00
Petr Rockai
e892ac7398 test: Increase the overall timeout to 3 hours. 2014-01-08 17:11:32 +01:00
Petr Rockai
d52c4154c5 test: Time out the entire testsuite after an hour. 2014-01-08 17:11:32 +01:00
Petr Rockai
af8580d756 test: Use klogctl in the harness instead of reading /var/log/messages. 2014-01-08 17:11:32 +01:00
Petr Rockai
1937715d2c test: Add a regression test for pvcreate -ff. 2014-01-08 15:24:43 +01:00
Zdenek Kabelac
2b7f7d0ab4 tests: use compiled lvm for clvmd executed lvs 2014-01-08 13:52:05 +01:00
Zdenek Kabelac
434d95cef3 tests: clear inactive table before resuming in teardown 2013-12-18 10:40:36 +01:00
Zdenek Kabelac
904a02335f tests: hide expected error message
Test typically enables disabled device - so it mostly expects
error target will be reloaded here - thus hide confusing message.
2013-12-17 14:08:54 +01:00
Zdenek Kabelac
fd73b2b7b9 tests: skip pool-label test for lvmetad
Unsupported by lvmetad.
2013-12-17 14:08:54 +01:00
Petr Rockai
56af6cae08 test: Turn check_full into check_system complementary with normal check. 2013-12-15 17:26:28 +01:00
Petr Rockai
97fbbbc150 test: Make the harness optionally less verbose (QUIET=1). 2013-12-15 16:44:47 +01:00
Zdenek Kabelac
c9fe05eee2 tests: count interrupted test as failed 2013-12-10 11:21:40 +01:00
Zdenek Kabelac
e3b7fa4b8d thin: thin metadata resize unsupported with 1.9
Thin kernel target 1.9 still does not support online resize of
thin pool metadata properly - so disable it with expectation
for much higher version - and reenable after fixing kernel.
2013-12-10 11:17:37 +01:00
Alasdair G Kergon
16eab3ec08 config: shorten new sig wiping option string
Rename wipe_signatures_on_new_logical_volumes_when_zeroing  to
wipe_signatures_when_zeroing_new_lvs.
2013-12-09 09:35:47 +00:00
Zdenek Kabelac
2b3adf4eea tests: more limits for python test
It will be most probably more problem with
incomplete initialization of lvm.conf settings
when lvm2app is in use.

Skip cluster & lvmetad test for now.
2013-12-06 10:37:49 +01:00
Zdenek Kabelac
f460d6d9b5 tests: python test needs dmeventd
Until lvm2app respects all lvm.conf setting,
this test require dmeventd.
2013-12-06 10:08:34 +01:00
Zdenek Kabelac
b494881e68 tests: sysrq only when stuck with no output.
If we are stuck in user for too long without output,
grab kernel stack traces.
If we just produce too many lines of output, it's
not probably kernel related bug.
2013-12-05 12:40:47 +01:00
Zdenek Kabelac
c7b733cd6c tests: do not run lvmetad tests without lvmetad
Skip tests when lvmetad is not compiled.
2013-12-05 12:40:47 +01:00
Zdenek Kabelac
aa75698a17 tests: harness prints debug.log
When the test is interrupted because debug.log has got to big,
and the test doesn't react on SIGINT - and needs to be only
killed with SIGKILL - it's still valuable to print at least
a portion of this debug.log (currently 4MB).

LVM_TEST_UNLIMITED  could be set to avoid this limitation
(i.e. when busy-looping lvm command needs to be running
for gdb attachment)
2013-12-05 11:18:15 +01:00
Zdenek Kabelac
76ca82df82 tests: drop RUN... already have this var elsewhere 2013-12-04 21:37:33 +01:00
Zdenek Kabelac
d9461ae89b tests: replace built-in popen
It seems some older bashes have problems to properly execute
both pipes - so replace this code with separate temporary files.
2013-12-04 19:50:53 +01:00
Zdenek Kabelac
e06cfd7437 tests: reuse timeout code for too long debug.log
Jump to the same code used for timeout when no output
is made for long time.

Increase the allowed debug.log size to 32MB.
2013-12-04 19:48:29 +01:00
Zdenek Kabelac
c144305d3e tests: update pvmove-test
Do not lock test when trying to grab cluster lock.
There seems to be still something weird in this test
so it still needs some inspection.
2013-12-04 17:10:31 +01:00
Zdenek Kabelac
7c6b14b74f tests: monitor debug.log size
Show testing directory from test and monitor it in
harness - so when it gets too big - kill test.
2013-12-04 17:10:31 +01:00
Zdenek Kabelac
1592bb216e test: thin snapshot merge
Testing thin snapshot merge cases.
TODO: Probably still misses some cases.
2013-12-04 14:30:26 +01:00
Peter Rajnoha
163666e513 tests: one LV should be active and one inactive in covercmd test 2013-12-04 09:38:00 +01:00
Peter Rajnoha
6232cac86c vgdisplay: select only active volumes groups if -A option is used
Where "active" means "at least one LV is active in the volume group".
2013-12-03 14:43:00 +01:00
Alasdair G Kergon
84394c0219 lvmetad: extend socket/pid file handling
Make it easier to run a live lvmetad in debugging mode and
to avoid conflicts if multiple test instances need to be run
alongside a live one.

No longer require -s when -f is used: use built-in default.
Add -p to lvmetad to specify the pid file.
No longer disable pidfile if -f used to run in foreground.
If specified socket file appears to be genuine but stale, remove it
before use.
On error, only remove lvmetad socket file if created by the same
process.  (Previous code removes socket even while a running instance
is using it!)
2013-11-29 20:56:29 +00:00
Peter Rajnoha
3f8083107e tests: add test for lvcreate signature wiping 2013-11-28 15:47:20 +01:00
Peter Rajnoha
08bab406b5 tests: wipe fs signature manually in pvcreate-operation test
So that the next pvcreate that is called does not issue any
warnings/prompts about existing signature (when blkid wiping is used).
2013-11-28 14:10:55 +01:00
Peter Rajnoha
c24b558c8c tests: initialize signature wiping
Do not use signature wiping for newly created LVs in tests - we're
reusing the devs in tests and such detection could just interfere
inappropriately. We'd need to modify all tests to anwer the prompt
whether any signature found should be removed or not or we'd need
to use "-y" option for all lvcreates in tests. It's better to disable
this feature then and let's do a separate test to test this signature
wiping functionality.
2013-11-28 13:27:52 +01:00
Zdenek Kabelac
47110f7e27 tests: add WARNED test to final list
WARNED result should not be forgotten - it's supposed
to be fixed...

keep enum alphabetically sorted
2013-11-22 21:00:56 +01:00
Tony Asleson
5588a56391 python_lvm_unit.py: Add test for new name validate methods
Test naming validate names for VG and LV names.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
2013-11-19 14:40:47 -06:00
Tony Asleson
370520a310 python_lvm_unit.py: Clean-up method names & scope
Changed naming of methods from camel case to all lower case with
underscores per guidelines.  Changed any methods that can be
static methods to static.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
2013-11-19 14:40:45 -06:00
Tony Asleson
e54e70dc66 python-lvm: Update and enable unit test case
Added tests for lvm.pvCreate and enable the test suite.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
2013-11-19 14:40:37 -06:00
Tony Asleson
ec7f632ce0 python-lvm: Test case change for vg.reduce
Fix reduce as newly changed vg reduce fails when you
try to remove the last pv in the vg.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
2013-11-19 14:40:32 -06:00
Zdenek Kabelac
b0b061cdbc tests: skip raid test on 3.12.0
3.12.0 kernel prevents raid test to be usable,
leaving unremovable devices in table.

This needs to be fixed ASAP, meanwhile disable test to make
test machines at least usable.
2013-11-19 11:49:33 +01:00
Zdenek Kabelac
fe609141a8 tests: on 32bit test with <16T devs
Add  'can_use_16T' to detect systems where we could
safely use 16T devices without causing system deadlocks.

16T size leads on those to endless loops in udevd
- it calls blkid which tries cached read from such device
- this ends in endless loop.

Related problems:
https://bugzilla.redhat.com/show_bug.cgi?id=1015028
2013-11-19 10:55:14 +01:00
Petr Rockai
b8a6b8f467 test: Force label-based reporting in pv-duplicate.sh. 2013-11-18 17:53:06 +01:00
Petr Rockai
ae337d472e report: Print UUIDs for missing PVs when possible. 2013-11-17 22:36:13 +01:00
Petr Rockai
71b6565529 report: Convert pv_mda_size to a type "label" field. 2013-11-17 21:43:06 +01:00
Petr Rockai
a8aa8d4b5c report: Make PV UUID into a "label" type field. 2013-11-17 21:43:06 +01:00
Petr Rockai
fc02f24178 test: Fix fallout from pv_read changes. 2013-11-17 21:41:27 +01:00
Petr Rockai
0a59305c44 test: Add a test for the failing pv_read optimisation. 2013-11-17 21:41:26 +01:00
Zdenek Kabelac
803f8ca714 tests: used -n for fsck 2013-11-15 12:38:37 +01:00
Zdenek Kabelac
3716e95354 tests: indent 2013-11-15 12:38:37 +01:00
Zdenek Kabelac
37b7c67079 thin: report thin device id
Support   lvs -o+thin_id  to report thin device id.
This device_id is connection between kernel and lvm2 user space thin
metadata.
2013-11-15 12:38:37 +01:00
Zdenek Kabelac
14b852609b tests: testing thin lvchange
Test various thin change operation,
including activation logic - which is somewhat
limited with singlenode emulation.

More tests needs to be added.
2013-11-01 13:05:05 +01:00
Zdenek Kabelac
d4e5140b52 tests: fix old-style gcc warning 2013-10-25 10:37:30 +02:00
Jonathan Brassow
7763607f36 TEST: Test was trying to kill 2 devices in RAID5 instead of RAID6
Segment type being used for test should have been 'raid6'.
2013-10-18 09:33:37 -05:00
Zdenek Kabelac
9f406ce252 tests: drop settle for old systems
Reverts previously added udevsettle call.

Seems to be unrelated, while udev on old system may take over 10
minutes, to finish it's very slow and CPU intensive work, it doesn't
interact directly with created device, only access /dev/mapper/control
node via dmsetup, so the device is ocasionaly blocked by something else.
2013-10-17 22:54:12 +02:00
Zdenek Kabelac
7f4452a41e tests: older losetup allows only single device name
Stay compatible with only 1 arg for losetup -d
2013-10-17 17:52:42 +02:00
Zdenek Kabelac
d9e44112c5 tests: fix last commit
It must not fail here during execution, so always check in a way
that '||' is used for call of settle.
2013-10-17 16:59:30 +02:00
Zdenek Kabelac
66f4698a93 tests: workaround udevd compromising tests
Patch helps a bit when lvm2 is build with disabled udev_sync support,
but udevd runs in the system - so it randomly influences unrelated tests
even - so before every test wait at least till udevd is settled.
2013-10-17 16:19:06 +02:00
Zdenek Kabelac
93a07a1b84 tests: fix exporting content of make vars
Further tune script, so it works correctly with
usable and unusable thin tools.
2013-10-17 11:57:35 +02:00
Zdenek Kabelac
f9725503f8 tests: use bash for bash script
This script needs bash
2013-10-17 11:57:34 +02:00
Zdenek Kabelac
9b13cb8687 tests: correct LVM_TEST_THIN_CHECK_CMD
missed to use proper shell variable
2013-10-16 15:10:03 +02:00
Zdenek Kabelac
73971e1e7b tests: test repairability of thin pool
Initial testing of thin pool's metadata with thin repairing tools.
Try to use tools from configuration settings, but allow them
to be overriden by settings of these variables:
LVM_TEST_THIN_CHECK_CMD,
LVM_TEST_THIN_DUMP_CMD,
LVM_TEST_THIN_REPAIR_CMD

FIXME: test reveals some more important bugs:
  pvremove -ff also needs --yes
  vgremove -ff doesn not remove metadata when there are no real LVs.
  vgreduce is not able to reduce VG with pool without pool's PVs
2013-10-16 10:54:59 +02:00
Zdenek Kabelac
7ab5f29a9c tests: add wait
We need to wait till kill really kills sleep
2013-10-16 10:53:03 +02:00
Zdenek Kabelac
0f55d7cccc tests: lvcreate and snapshot update
Test creation really in cluster.
Update test to check removal when snapshot device is being held open.
2013-10-14 00:29:03 +02:00
Zdenek Kabelac
9f8f6bfefe tests: harness updates
Reshape code a bit to make sockepair 'swappable' with plain old pipe
call.

Display status for FAILED error.

Increase buffer to hold always at least 1 page size.

Print error results with capitals.
2013-10-14 00:26:59 +02:00
Petr Rockai
17f3b8280b test: Correctly trigger inconsistent metadata repair in lvmcache-exercise.
Since lvconvert --repair sets handles_missing_pvs, it will not repair
inconsistent metadata automatically. Calling lvs instead should do the trick.
2013-10-09 14:44:15 +02:00
Petr Rockai
fbb6de845e test: Make comma a separator as in make check T=lvconvert,lvcreate 2013-10-09 14:02:34 +02:00
Zdenek Kabelac
830d233b17 tests: needed --type mirror
Avoid testing raids here (would need kernel module)
2013-10-08 16:56:09 +02:00
Zdenek Kabelac
2ee969e851 tests: reappering device
Simulation of problem for:
https://bugzilla.redhat.com/show_bug.cgi?id=995440
2013-10-08 16:19:14 +02:00
Zdenek Kabelac
273373bf53 tests: lvconvert more thin extorg conversions
Add test for conversion of pool and thin lv at the same time.
2013-10-08 13:42:10 +02:00
Zdenek Kabelac
7edf61186b tests: vgrename duplicate rename
Test for rename of duplicated vgname (with different UUID)
2013-10-08 13:42:09 +02:00