#!/bin/sh
# run on the DragonFly guest (root unless noted)
dd if=/dev/zero of=/tmp/fat.img bs=1m count=8
vnconfig -c /dev/vn0 /tmp/fat.img
newfs_msdos /dev/vn0
mount_msdos /dev/vn0 /mnt
cd /mnt && touch C W1 W2 X1 X2 X3 && cd /
/root/fattime_poc /mnt/C  1763721600        # control: MATCH
/root/fattime_poc /mnt/W1 4295030400        # DF-2955: 2106-02-08 -> 1970-01-01
/root/fattime_poc /mnt/W2 4354750800        # DF-2955: 2107-12-31 -> 1971-11-23
/root/fattime_poc /mnt/X1 4354819200        # DF-2956: 2108-01-01 -> 1980-01-01
/root/fattime_poc /mnt/X3 140737488355327   # DF-2956: year 4.4M  -> 2023-11-23
cd /; umount /mnt
/root/findentry /tmp/fat.img W2             # MDate=0xff9f (valid on disk!)
/root/findentry /tmp/fat.img X1             # MDate=0x0021 (wrapped 1980)
# unprivileged variant:
mount_msdos -u 1001 -g 1001 /dev/vn0 /mnt
su -m testu -c '/root/../tmp/fattime_poc /mnt/mine 4354750800'  # (copy poc to /tmp first)
