toybox/tests/ln.test
<<
>>
Prefs
   1#!/bin/bash
   2
   3# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
   4# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
   5
   6[ -f testing.sh ] && . testing.sh
   7
   8#testing "name" "command" "result" "infile" "stdin"
   9#set -x
  10
  11echo file1 > file
  12testing "create_hardlink" "ln file hlink && [ file -ef hlink ] &&
  13          echo 'yes'" "yes\n" "" ""
  14testing "create_softlink" "ln -s file slink && [ -L slink ] &&
  15          readlink slink" "file\n" "" ""
  16rm slink hlink
  17
  18echo hlink1 > hlink
  19testing "force_create_hardlink" "ln -f file hlink &&
  20          [ file -ef hlink ] && cat hlink 2>/dev/null" "file1\n" "" ""
  21
  22echo slink1 > slink
  23testing "force_create_symlink" "ln -f -s file slink &&
  24          [ -L slink ] && readlink slink" "file\n" "" ""
  25rm slink hlink
  26
  27echo hlink1 > hlink
  28set +e
  29testing "preserves_hardlinks" "ln file hlink 2>/dev/null || echo 'yes'" \
  30          "yes\n" "" ""
  31
  32echo slink1 > slink
  33set +e
  34testing "preserves_symlinks" "ln -s file slink 2>/dev/null || echo 'yes'" \
  35          "yes\n" "" ""
  36rm slink hlink
  37
  38mkdir dir
  39testing "multilevel_symbolic_links" "ln -s dir slink &&
  40          ln -s file slink && [ -L slink -a -L slink/file ] &&
  41          readlink slink && readlink slink/file" "dir\nfile\n" "" ""
  42rm slink
  43
  44testing "no_dereference" "ln -s dir slink &&
  45          ln -n -s file slink 2>/dev/null || [ -L slink ] && readlink slink" \
  46          "dir\n" "" ""
  47rm slink
  48
  49testing "-T acts like -n" "ln -s dir slink &&
  50          ln -Tsf file slink || [ -L slink ] && readlink slink" "file\n" "" ""
  51rm slink
  52
  53testing "-T with dir" "ln -Ts file dir 2>/dev/null || echo yes" "yes\n" "" ""
  54rm -rf file dir slink
  55
  56testing "-t" "ln -st . one/two three && readlink two three" "one/two\nthree\n" \
  57  "" ""
  58
  59touch file1 file2 && mkdir dir
  60testing "create_multiple_hardlinks" "ln file* dir/ &&
  61   [ file1 -ef dir/file1 -a file2 -ef dir/file2 ] && echo 'yes'" "yes\n" "" ""
  62rm -rf file* dir
  63
  64touch file1 file2 && mkdir dir
  65testing "create_multiple_softlinks" "ln -s file* dir/ &&
  66          [ -L dir/file1 -a -L dir/file2 ] && readlink dir/file1 &&
  67          readlink dir/file2" "file1\nfile2\n" "" ""
  68rm -rf file* dir
  69
  70echo file1 > file
  71testing "create_softlink_and_remove_sourcefile" "ln -s file slink &&
  72          [ -L slink ] && rm file && cat slink 2>/dev/null || echo 'yes' " \
  73          "yes\n" "" ""
  74rm -f file slink
  75
  76echo file1 > file
  77testing "create_hardlink_and_remove_sourcefile" "ln file hlink &&
  78          [ file -ef hlink ] && rm file && [ -f hlink ] && echo 'yes'" \
  79          "yes\n" "" ""
  80rm -f file hlink
  81