view tests/link.test @ 1650:a740a876c76c draft

Cleanup pass on printf. Alas, passing a union as the last argument to printf does not appear to work reliably, and there's no obvious way to manually assemble varargs in a portable manner. So I have to repeat the printf once for each data type. Oh well.
author Rob Landley <rob@landley.net>
date Sun, 11 Jan 2015 01:22:36 -0600
parents 8700cbe1cb29
children
line wrap: on
line source

#!/bin/bash

# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>

[ -f testing.sh ] && . testing.sh

#testing "name" "command" "result" "infile" "stdin"

echo "" >foo
testing "link fails on non-existent file" "link foo/foo baz || echo GOOD" "GOOD\n" "" ""
rm -f foo bar

echo file1 > file
testing "ln create_hardlink" "link file hlink && [ file -ef hlink ] &&
          echo 'yes'; rm  -rf hlink" "yes\n" "" ""

echo hlink1 > hlink
set +e
testing "ln preserves_hardlinks" "link file hlink 2>/dev/null || echo 'yes'; rm -rf hlink" \
          "yes\n" "" ""

echo file1 > file
testing "ln create_hardlink_and_remove_sourcefile" "link file hlink &&
          [ file -ef hlink ] && rm -rf file && [ -f hlink ] && echo 'yes'; rm -f file hlink" \
          "yes\n" "" ""