diff --git a/test.sh b/test.sh index 1eb6280..70cfae9 100644 --- a/test.sh +++ b/test.sh @@ -4,17 +4,13 @@ set -e # set -x # For debugging # If you ever mess this up: -# $ mknod /dev/loop-control c 10 237 -# $ chmod 600 /dev/loop-control -# $ chown root:root /dev/loop-control +# $ sudo mknod /dev/loop-control c 10 237 +# $ sudo chmod 600 /dev/loop-control +# $ sudo chown root:root /dev/loop-control # # For cleanup: -# $ find /dev -maxdepth 1 -type b -name 'loop[0-9]*' -exec rm -f {} \; +# $ sudo find /dev -maxdepth 1 -type b -name 'loop[0-9]*' -exec rm -f {} \; -if [ "$(id -u)" -ne 0 ]; then - echo "Run as root. We need permissions to write and setup a loop device." - exit 1 -fi DISKFILE="/tmp/disk.img" BINFILE="/tmp/file.bin" @@ -26,9 +22,9 @@ echo "Using device: ${LOOPDEV}" cleanup() { echo "Cleaning up..." set +e -x - losetup -d ${LOOPDEV} - rm ${LOOPDEV} - rm ${BINFILE} ${DISKFILE} + sudo losetup -d ${LOOPDEV} + sudo rm ${LOOPDEV} + sudo rm ${BINFILE} ${DISKFILE} } trap cleanup EXIT INT TERM @@ -40,31 +36,28 @@ if losetup ${LOOPDEV} >/dev/null 2>&1; then fi if [ ! -f ${DISKFILE} ]; then - echo "Creating ${DISKFILE}" dd if=/dev/zero of=${DISKFILE} bs=1M count=256 fi if [ ! -f ${BINFILE} ]; then - echo "Creating ${BINFILE}" dd if=/dev/urandom of=${BINFILE} bs=1M count=64 fi if [ ! -e ${LOOPDEV} ]; then - mknod ${LOOPDEV} b 7 ${LOOPNUM} # busybox needs this - losetup ${LOOPDEV} ${DISKFILE} + sudo losetup ${LOOPDEV} ${DISKFILE} fi -./writeimg -nd ${LOOPDEV} ${BINFILE} -./writeimg -vnd ${LOOPDEV} ${BINFILE} +sudo ./writeimg -nd ${LOOPDEV} ${BINFILE} +sudo ./writeimg -vnd ${LOOPDEV} ${BINFILE} -./writeimg -nd ${LOOPDEV} ./writeimg -./writeimg -vnd ${LOOPDEV} ./writeimg +sudo ./writeimg -nd ${LOOPDEV} ./writeimg +sudo ./writeimg -vnd ${LOOPDEV} ./writeimg -./writeimg -nd ${LOOPDEV} ./LICENSE -./writeimg -vnd ${LOOPDEV} ./LICENSE +sudo ./writeimg -nd ${LOOPDEV} ./LICENSE +sudo ./writeimg -vnd ${LOOPDEV} ./LICENSE # Redirect this to avoid confusion -! ./writeimg -vnd ${LOOPDEV} ./crc32.h 2>/dev/null +! sudo ./writeimg -vnd ${LOOPDEV} ./crc32.h 2>/dev/null GREEN="\e[32m" RESET="\e[0m" diff --git a/writeimg.c b/writeimg.c index 2219acb..f0139ad 100644 --- a/writeimg.c +++ b/writeimg.c @@ -278,11 +278,7 @@ int main(int argc, char *argv[]) { exit(EXIT_FAILURE); } -#ifdef __GLIBC__ if (ioctl(fd, BLKGETSIZE64, &device_size) < 0) { -#else /* With musl, ioctl's take ints, kheaders provide unsigned longs. Passes tests. */ - if (ioctl(fd, (int)BLKGETSIZE64, &device_size) < 0) { -#endif perror("ioctl"); close(fd); exit(EXIT_FAILURE);