# Test Case: FIFO ACL and xattr read-only VOPs

**Test ID**: TC139-fifo-acl-xattr-readonly
**Fixture**: `basic.erofs`, `/fifo-node`

## Objective

Verify FIFO stat, ACL, and xattr reads without opening FIFO data, and require
read-only errors for all mutations. The transformer must record the regular
placeholder to FIFO `i_mode` change and ACL body fields.

## Manual steps

```sh
stat -f 'type=%HT mode=%Sp size=%z inode=%i' /mnt/repo22-g4/fifo-node
getfacl -n /mnt/repo22-g4/fifo-node
lsextattr system /mnt/repo22-g4/fifo-node
lsextattr user /mnt/repo22-g4/fifo-node
getextattr -qq -x system posix_acl_access /mnt/repo22-g4/fifo-node
getextattr -qq -x user fifo_note /mnt/repo22-g4/fifo-node
truss -o /tmp/tc139-acl.truss setfacl -m u::rwx /mnt/repo22-g4/fifo-node
truss -o /tmp/tc139-set.truss setextattr user repo22 changed \
  /mnt/repo22-g4/fifo-node
truss -o /tmp/tc139-del.truss rmextattr system posix_acl_access \
  /mnt/repo22-g4/fifo-node
```

## Expected results

Stat reports FIFO, reads return the exact ACL and `fifo-readonly-xattr`, and
all three mutations return `EROFS` (30). Nothing blocks or logs a trap. Clean up.
