[BACK]Return to common.dmapi CVS log [TXT][DIR] Up to [Development] / xfs-cmds / xfstests

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
Branch: MAIN
Changes since 1.3: +28 -1 lines

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 ;'
}