#!/bin/sh # Copyright (c) 2024 DTB # Copyright (c) 2024 Emma Tebibyte # SPDX-License-Identifier: FSFAP # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice and this # notice are preserved. This file is offered as-is, without any warranty. ! dj -h # This test is theoretically Linux-dependent; write(2) should return -1 on # error. # Right now dj(1) interprets the return value of write(2) as the amount of # bytes written. This can decrement the stored quantity of bytes written, # which is an int, so doesn't underflow but goes negative. dj(1) tries to # again to write(2) if an error occurs in which no bytes are written, so in # total two write(2)s are attempted and so the written byte quantity is -2. # This is a bug and will change, but for now is at least documented. dj -Hi /dev/zero -o /dev/full \ | xargs -I out "$BIN/strcmp" '1+0 > 0+0; 1024 > -2' out # Read nothing from /dev/null, write nothing to /dev/null. dj -Hi /dev/null -o /dev/null \ | xargs -I out "$BIN/strcmp" '0+0 > 0+0; 0 > 0' out