1*6a54128fSAndroid Build Coastguard Workerif ! test -x $DEBUGFS_EXE; then 2*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $test_description: skipped (no debugfs)" 3*6a54128fSAndroid Build Coastguard Worker return 0 4*6a54128fSAndroid Build Coastguard Workerfi 5*6a54128fSAndroid Build Coastguard Worker 6*6a54128fSAndroid Build Coastguard WorkerOUT=$test_name.log 7*6a54128fSAndroid Build Coastguard WorkerEXP=$test_dir/expect 8*6a54128fSAndroid Build Coastguard WorkerVERIFY_FSCK_OPT=-yf 9*6a54128fSAndroid Build Coastguard Worker 10*6a54128fSAndroid Build Coastguard WorkerTEST_DATA=$test_name.tmp 11*6a54128fSAndroid Build Coastguard WorkerVERIFY_DATA=$test_name.ver.tmp 12*6a54128fSAndroid Build Coastguard Worker 13*6a54128fSAndroid Build Coastguard Workerecho "debugfs edit extended attributes" > $OUT.new 14*6a54128fSAndroid Build Coastguard Worker 15*6a54128fSAndroid Build Coastguard Workerdd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1 16*6a54128fSAndroid Build Coastguard Worker 17*6a54128fSAndroid Build Coastguard Workerecho "mke2fs -Fq -b 1024 test.img 512" >> $OUT.new 18*6a54128fSAndroid Build Coastguard Worker 19*6a54128fSAndroid Build Coastguard Worker$MKE2FS -Fq -b 1024 $TMPFILE 512 > /dev/null 2>&1 20*6a54128fSAndroid Build Coastguard Workerstatus=$? 21*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 22*6a54128fSAndroid Build Coastguard Worker 23*6a54128fSAndroid Build Coastguard Workerecho "ea_set / user.joe smith" >> $OUT.new 24*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_set / user.joe smith" $TMPFILE >> $OUT.new 2>&1 25*6a54128fSAndroid Build Coastguard Workerstatus=$? 26*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 27*6a54128fSAndroid Build Coastguard Worker 28*6a54128fSAndroid Build Coastguard Workerecho "ea_set / user.moo FEE_FIE_FOE_FUMMMMMM" >> $OUT.new 29*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_set / user.moo FEE_FIE_FOE_FUMMMMMM" $TMPFILE >> $OUT.new 2>&1 30*6a54128fSAndroid Build Coastguard Workerstatus=$? 31*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 32*6a54128fSAndroid Build Coastguard Worker 33*6a54128fSAndroid Build Coastguard Workerecho "ea_list /" >> $OUT.new 34*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_list /" $TMPFILE >> $OUT.new 2>&1 35*6a54128fSAndroid Build Coastguard Workerstatus=$? 36*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 37*6a54128fSAndroid Build Coastguard Worker 38*6a54128fSAndroid Build Coastguard Workerecho "ea_get / user.moo" >> $OUT.new 39*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_get / user.moo" $TMPFILE >> $OUT.new 2>&1 40*6a54128fSAndroid Build Coastguard Workerstatus=$? 41*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 42*6a54128fSAndroid Build Coastguard Worker 43*6a54128fSAndroid Build Coastguard Workerecho "ea_get / nosuchea" >> $OUT.new 44*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_get / nosuchea" $TMPFILE >> $OUT.new 2>&1 45*6a54128fSAndroid Build Coastguard Workerstatus=$? 46*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 47*6a54128fSAndroid Build Coastguard Worker 48*6a54128fSAndroid Build Coastguard Workerecho "ea_rm / user.moo" >> $OUT.new 49*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_rm / user.moo" $TMPFILE >> $OUT.new 2>&1 50*6a54128fSAndroid Build Coastguard Workerstatus=$? 51*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 52*6a54128fSAndroid Build Coastguard Worker 53*6a54128fSAndroid Build Coastguard Workerecho "ea_rm / nosuchea" >> $OUT.new 54*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_rm / nosuchea" $TMPFILE >> $OUT.new 2>&1 55*6a54128fSAndroid Build Coastguard Workerstatus=$? 56*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 57*6a54128fSAndroid Build Coastguard Worker 58*6a54128fSAndroid Build Coastguard Workerecho "ea_list /" >> $OUT.new 59*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_list /" $TMPFILE >> $OUT.new 2>&1 60*6a54128fSAndroid Build Coastguard Workerstatus=$? 61*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 62*6a54128fSAndroid Build Coastguard Worker 63*6a54128fSAndroid Build Coastguard Workerecho "ea_get / user.moo" >> $OUT.new 64*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_get / user.moo" $TMPFILE >> $OUT.new 2>&1 65*6a54128fSAndroid Build Coastguard Workerstatus=$? 66*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 67*6a54128fSAndroid Build Coastguard Worker 68*6a54128fSAndroid Build Coastguard Workerecho "ea_rm / user.joe" >> $OUT.new 69*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_rm / user.joe" $TMPFILE >> $OUT.new 2>&1 70*6a54128fSAndroid Build Coastguard Workerstatus=$? 71*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 72*6a54128fSAndroid Build Coastguard Worker 73*6a54128fSAndroid Build Coastguard Workerecho "ea_list /" >> $OUT.new 74*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_list /" $TMPFILE >> $OUT.new 2>&1 75*6a54128fSAndroid Build Coastguard Workerstatus=$? 76*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 77*6a54128fSAndroid Build Coastguard Worker 78*6a54128fSAndroid Build Coastguard Workerecho "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567" > $TEST_DATA 79*6a54128fSAndroid Build Coastguard Workerecho "ea_set -f $TEST_DATA / user.file_based_xattr" >> $OUT.new 80*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_set -f $TEST_DATA / user.file_based_xattr" $TMPFILE >> $OUT.new 2>&1 81*6a54128fSAndroid Build Coastguard Workerstatus=$? 82*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 83*6a54128fSAndroid Build Coastguard Worker 84*6a54128fSAndroid Build Coastguard Workerecho "ea_list /" >> $OUT.new 85*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_list /" $TMPFILE >> $OUT.new 2>&1 86*6a54128fSAndroid Build Coastguard Workerstatus=$? 87*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 88*6a54128fSAndroid Build Coastguard Worker 89*6a54128fSAndroid Build Coastguard Workerecho "ea_get / user.file_based_xattr" >> $OUT.new 90*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_get / user.file_based_xattr" $TMPFILE >> $OUT.new 2>&1 91*6a54128fSAndroid Build Coastguard Workerstatus=$? 92*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 93*6a54128fSAndroid Build Coastguard Worker 94*6a54128fSAndroid Build Coastguard Workerecho "ea_get -f $VERIFY_DATA / user.file_based_xattr" >> $OUT.new 95*6a54128fSAndroid Build Coastguard Worker$DEBUGFS -w -R "ea_get -f $VERIFY_DATA / user.file_based_xattr" $TMPFILE >> $OUT.new 2>&1 96*6a54128fSAndroid Build Coastguard Workerstatus=$? 97*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 98*6a54128fSAndroid Build Coastguard Worker 99*6a54128fSAndroid Build Coastguard Workerecho "Compare big attribute" >> $OUT.new 100*6a54128fSAndroid Build Coastguard Workerdiff -u $TEST_DATA $VERIFY_DATA >> $OUT.new 101*6a54128fSAndroid Build Coastguard Worker 102*6a54128fSAndroid Build Coastguard Workerecho e2fsck $VERIFY_FSCK_OPT -N test_filesys >> $OUT.new 103*6a54128fSAndroid Build Coastguard Worker$FSCK $VERIFY_FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1 104*6a54128fSAndroid Build Coastguard Workerstatus=$? 105*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT.new 106*6a54128fSAndroid Build Coastguard Workersed -f $cmd_dir/filter.sed $OUT.new > $OUT 107*6a54128fSAndroid Build Coastguard Worker 108*6a54128fSAndroid Build Coastguard Worker# 109*6a54128fSAndroid Build Coastguard Worker# Do the verification 110*6a54128fSAndroid Build Coastguard Worker# 111*6a54128fSAndroid Build Coastguard Worker 112*6a54128fSAndroid Build Coastguard Workerrm -f $TMPFILE $TEST_DATA $VERIFY_DATA $OUT.new 113*6a54128fSAndroid Build Coastguard Workercmp -s $OUT $EXP 114*6a54128fSAndroid Build Coastguard Workerstatus=$? 115*6a54128fSAndroid Build Coastguard Worker 116*6a54128fSAndroid Build Coastguard Workerif [ "$status" = 0 ] ; then 117*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $test_description: ok" 118*6a54128fSAndroid Build Coastguard Worker touch $test_name.ok 119*6a54128fSAndroid Build Coastguard Workerelse 120*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $test_description: failed" 121*6a54128fSAndroid Build Coastguard Worker diff $DIFF_OPTS $EXP $OUT > $test_name.failed 122*6a54128fSAndroid Build Coastguard Workerfi 123*6a54128fSAndroid Build Coastguard Worker 124*6a54128fSAndroid Build Coastguard Workerunset VERIFY_FSCK_OPT NATIVE_FSCK_OPT OUT EXP TEST_DATA VERIFY_DATA 125