1#!perl -w 2# -*-perl-*- 3 4# Test that creating non-"user."-prefixed attributes fails. 5# XXX: Probably Linux-specific 6 7use strict; 8use Test::More; 9 10BEGIN { 11 my $tlib = $0; 12 $tlib =~ s|/[^/]*$|/lib|; 13 push(@INC, $tlib); 14} 15use t::Support; 16 17if (t::Support::should_skip()) { 18 plan skip_all => 'Tests unsupported on this OS/filesystem'; 19} else { 20 plan tests => 8; 21} 22 23use File::Temp qw(tempfile); 24use File::Path; 25use File::ExtAttr qw(setfattr getfattr delfattr); 26 27my $TESTDIR = ($ENV{ATTR_TEST_DIR} || '.'); 28my ($fh, $filename) = tempfile( DIR => $TESTDIR ); 29close $fh or die "can't close $filename $!"; 30 31# Create a directory. 32my $dirname = "$filename.dir"; 33eval { mkpath($dirname); }; 34if ($@) { 35 warn "Couldn't create $dirname: $@"; 36} 37 38#todo: try wierd characters in here? 39# try unicode? 40my $key = "alskdfjadf2340zsdflksjdfa09eralsdkfjaldkjsldkfj"; 41my $val = "ZZZadlf03948alsdjfaslfjaoweir12l34kealfkjalskdfas90d8fajdlfkj./.,f"; 42 43foreach ( $filename, $dirname ) { 44 print "# using $_\n"; 45 46 #set it 47 setfattr($_, "$key", $val, { namespace => 'nonuser' }); 48 my $err = int $!; 49 is ($err, $!{EOPNOTSUPP}); 50 51 #read it back 52 is (getfattr($_, "$key", { namespace => 'nonuser' }), undef); 53 54 #delete it 55 delfattr($_, "$key", { namespace => 'nonuser' }); 56 $err = int $!; 57 is ($err, $!{EOPNOTSUPP}); 58 59 #check that it's gone 60 is (getfattr($_, "$key", { namespace => 'nonuser' }), undef); 61} 62 63END { 64 unlink $filename if $filename; 65 rmdir $dirname if $dirname; 66}; 67