|
|
| File: [Development] / xfs-cmds / xfstests / common.dmapi (download)
Revision 1.4, Mon Jun 4 06:13:28 2007 UTC (10 years, 4 months ago) by ddiss.longdrop.melbourne.sgi.com
This test enables dmapi return_on_destroy and captures dmapi events generated by two create/removes. One with file attibutes set, one without. A dmapi destroy event should be generated in both cases, however PV960928 has shown that it may not be when attributes are not set. Merge of master-melb:xfs-cmds:28771a by kenmcd. new filter for dmapi print_event |
##/bin/sh
#
# Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved.
#
# dmapi functions
#
# Commands relitive to dmapi qa
DMAPI_QASUITE1_DIR=$here/dmapi/src/suite1/
DMAPI_QASUITE2_DIR=$here/dmapi/src/suite2/
DMAPI_COMMON_DIR=$here/dmapi/src/common/
DMAPI_LS_TO_COPY_PATH=$DMAPI_QASUITE2_DIR/bindir/ls_to_copy
_dmapi_scratch_mount () {
if [ `echo "$MOUNT_OPTIONS" | grep -c dmapi` -gt 0 -o \
`echo "$MOUNT_OPTIONS" | grep -c dmi` -gt 0 ] ; then
#already got dmapi options set
_scratch_mount
dmapi_mount_result=$?
else
_scratch_mount "-o dmapi,mtpt=$SCRATCH_MNT"
dmapi_mount_result=$?
fi
if [ $dmapi_mount_result -ne 0 ] ; then
_notrun "Assuming DMAPI modules are not loaded"
fi
}
_filter_dmapi_print_event() {
$PERL_PROG -ne '
# replace session/file specific output with generic placeholders
s/token\s+\d+/token TOKEN/g ;
s/sequence\s+\d+/sequence SEQ/g ;
s/^\s+parent\s+dir\s+\w+/parent dir PARENT_DIR/g ;
s/^\s+name\s+.*/name FILE_NAME/g ;
s/^\s+mode\s+bits\s+mode\s+\d+:\s+/mode bits mode MODE: /g ;
s/perm\s+[\w|-]+\s[\w|-]+\s[\w|-]+/perm PERMISSIONS/g ;
s/,\s+type\s+.*/, type FILE_TYPE/g ;
s/^\s+object\s+\w+/object OBJECT/g ;
s/^\s+new\s+object\s+\w+/new object OBJECT/g ;
s/^\s+handle\s+\w+/handle HANDLE/g ;
s/^\s+attrcopy\s+\w+/attrcopy COPY/g ;
s/^\s+attrname\s+\w+/attrname NAME/g ;
# when print_event is killed, the following is output. trim it
s/^\s*print_event: Processing any undelivered event messages.*\n//g ;
s/^\s*print_event: Shutting down the session.*\n//g ;
# trim blank lines
s/^\s*\n//g ;
print ;'
}