#!/usr/bin/env python3

import tempfile
import os
import sys

from posix_parity import mergerfs_mount


def main():
    try:
        with mergerfs_mount() as (mount, _):
            (fd, filepath) = tempfile.mkstemp(dir=mount)

            os.ftruncate(fd, 10)

            st1 = os.fstat(fd)
            if st1.st_size != 10:
                os.close(fd)
                os.unlink(filepath)
                print("ftruncate before unlink: expected size 10, got {}".format(st1.st_size), end='')
                return 1

            os.unlink(filepath)

            os.ftruncate(fd, 20)

            st2 = os.fstat(fd)
            if st2.st_size != 20:
                os.close(fd)
                print("ftruncate after unlink: expected size 20, got {}".format(st2.st_size), end='')
                return 1

            os.close(fd)
            return 0
    except RuntimeError as exc:
        print(str(exc), end="")
        return 77


if __name__ == "__main__":
    raise SystemExit(main())
