From: Richard D. <ric...@us...> - 2006-08-19 18:27:22
|
Update of /cvsroot/file-extattr/File-ExtAttr/t In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv7869/t Added Files: 15create.t 16replace.t 17createreplace.t Log Message: Add create and replace flags (to replace usage of XATTR_CREATE, XATTR_REPLACE); bugfix: setfattr returns 0 on failure now --- NEW FILE: 16replace.t --- #!perl -T # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Linux-xattr.t' ########################## # change 'tests => 2' to 'tests => last_test_to_print'; use strict; use Test::More tests => 10; use File::Temp qw(tempfile); use File::ExtAttr qw(setfattr getfattr delfattr); use IO::File; my $TESTDIR = ($ENV{ATTR_TEST_DIR} || '.'); my ($fh, $filename) = tempfile( DIR => $TESTDIR ); close $fh || die "can't close $filename $!"; #todo: try wierd characters in here? # try unicode? my $key = "alskdfjadf2340zsdflksjdfa09eralsdkfjaldkjsldkfj"; my $val = "ZZZadlf03948alsdjfaslfjaoweir12l34kealfkjalskdfas90d8fajdlfkj./.,f"; ########################## # Filename-based tests # ########################## print "# using $filename\n"; #create it is (setfattr($filename, "$key", $val, { create => 1 }), 1); #replace it is (setfattr($filename, "$key", $val, { replace => 1 }), 1); #read it back is (getfattr($filename, "$key"), $val); #delete it ok (delfattr($filename, "$key")); #check that it's gone is (getfattr($filename, "$key"), undef); ########################## # IO::Handle-based tests # ########################## $fh = new IO::File("<$filename") || die "Unable to open $filename"; print "# using file descriptor ".$fh->fileno()."\n"; #create it is (setfattr($fh, "$key", $val, { create => 1 }), 1); #replace it is (setfattr($fh, "$key", $val, { replace => 1 }), 1); #read it back is (getfattr($fh, "$key"), $val); #delete it ok (delfattr($fh, "$key")); #check that it's gone is (getfattr($fh, "$key"), undef); END {unlink $filename if $filename}; --- NEW FILE: 15create.t --- #!perl -T # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Linux-xattr.t' ########################## # change 'tests => 2' to 'tests => last_test_to_print'; use strict; use Test::More tests => 10; use File::Temp qw(tempfile); use File::ExtAttr qw(setfattr getfattr delfattr); use IO::File; my $TESTDIR = ($ENV{ATTR_TEST_DIR} || '.'); my ($fh, $filename) = tempfile( DIR => $TESTDIR ); close $fh || die "can't close $filename $!"; #todo: try wierd characters in here? # try unicode? my $key = "alskdfjadf2340zsdflksjdfa09eralsdkfjaldkjsldkfj"; my $val = "ZZZadlf03948alsdjfaslfjaoweir12l34kealfkjalskdfas90d8fajdlfkj./.,f"; ########################## # Filename-based tests # ########################## print "# using $filename\n"; #create it is (setfattr($filename, "$key", $val, { create => 1 }), 1); #create it again -- should fail is (setfattr($filename, "$key", $val, { create => 1 }), 0); #read it back is (getfattr($filename, "$key"), $val); #delete it ok (delfattr($filename, "$key")); #check that it's gone is (getfattr($filename, "$key"), undef); ########################## # IO::Handle-based tests # ########################## $fh = new IO::File("<$filename") || die "Unable to open $filename"; print "# using file descriptor ".$fh->fileno()."\n"; #create it is (setfattr($fh, "$key", $val, { create => 1 }), 1); #create it again -- should fail is (setfattr($fh, "$key", $val, { create => 1 }), 0); #read it back is (getfattr($fh, "$key"), $val); #delete it ok (delfattr($fh, "$key")); #check that it's gone is (getfattr($fh, "$key"), undef); END {unlink $filename if $filename}; --- NEW FILE: 17createreplace.t --- #!perl -T # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Linux-xattr.t' ########################## # change 'tests => 2' to 'tests => last_test_to_print'; use strict; use Test::More tests => 4; use File::Temp qw(tempfile); use File::ExtAttr qw(setfattr getfattr delfattr); use IO::File; my $TESTDIR = ($ENV{ATTR_TEST_DIR} || '.'); my ($fh, $filename) = tempfile( DIR => $TESTDIR ); close $fh || die "can't close $filename $!"; #todo: try wierd characters in here? # try unicode? my $key = "alskdfjadf2340zsdflksjdfa09eralsdkfjaldkjsldkfj"; my $val = "ZZZadlf03948alsdjfaslfjaoweir12l34kealfkjalskdfas90d8fajdlfkj./.,f"; ########################## # Filename-based tests # ########################## print "# using $filename\n"; #create and replace it -- should fail undef $@; eval { setfattr($filename, "$key", $val, { create => 1, replace => 1 }); }; isnt ($@, undef); #check that it's not been created is (getfattr($filename, "$key"), undef); ########################## # IO::Handle-based tests # ########################## $fh = new IO::File("<$filename") || die "Unable to open $filename"; print "# using file descriptor ".$fh->fileno()."\n"; my $key2 = $key.'2'; #create and replace it -- should fail undef $@; eval { setfattr($fh, $key2, $val, { create => 1, replace => 1 }); }; isnt ($@, undef); #check that it's not been created is (getfattr($fh, $key2), undef); END {unlink $filename if $filename}; |