view scripts/test/rmdir.test @ 1087:b73a61542297 draft

I've finally gotten 'cpio' into a shape where it could be useable. This version can archive and extract directories, sockets, FIFOs, devices, symlinks, and regular files. Supported options are -iot, -H FMT (which is a dummy right now). It only writes newc, and could read newc or newcrc. This does NOT implement -d, which essentially is equivalent to mkdir -p $(dirname $FILE) for every file that needs it. Hard links are not supported, though it would be easy to add them given a hash table or something like that. I also have not implemented the "<n> blocks" output on stderr. If desired, I can add it pretty simply. There is one assumption this makes: that the mode of a file, as mode_t, is bitwise equivalent to the mode as defined for the cpio format. This is true of Linux, but is not mandated by POSIX. If it is compiled for a system where that is false, the archives will not be portable.
author Isaac Dunham <ibid.ag@gmail.com>
date Mon, 14 Oct 2013 11:15:22 -0500
parents 3d7526f6115b
children
line wrap: on
line source

#!/bin/bash

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

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

mkdir one
testing "rmdir" "rmdir one && [ ! -d one ] && echo yes" "yes\n" "" ""

touch walrus
testing "rmdir file" \
	"rmdir walrus 2> /dev/null || [ -f walrus ] && echo yes" "yes\n" "" ""

mkdir one two
testing "rmdir one two" \
	"rmdir one two 2> /dev/null && [ ! -d one ] && [ ! -d two ] && echo yes" \
	"yes\n" "" ""

mkdir one two three
testing "rmdir one missing two file three" \
	"rmdir one missing two walrus three 2> /dev/null || [ ! -d three ] && echo yes" \
	"yes\n" "" ""
rm walrus

mkdir one
chmod 000 one
testing "rmdir mode 000" "rmdir one && [ ! -d one ] && echo yes" "yes\n" "" ""

mkdir temp
touch temp/thing
testing "rmdir non-empty" \
	"rmdir temp 2>/dev/null || [ -d temp ] && echo yes" "yes\n" "" ""
testing "rmdir -p dir/file" \
	"rmdir -p temp/thing 2>/dev/null || [ -f temp/thing ] && echo yes" \
	"yes\n" "" ""

mkdir -p temp/one/two/three
testing "rmdir -p part of path" \
	"rmdir -p temp/one/two/three 2>/dev/null || [ -d temp ] && [ ! -e temp/one ] && echo yes" \
	"yes\n" "" ""
rm -rf temp


mkdir -p one/two/three
testing "rmdir -p one/two/three" \
	"rmdir -p one/two/three && [ ! -e one ] && echo yes" "yes\n" "" ""

mkdir -p one/two/three
testing "rmdir -p one/two/three/" \
	"rmdir -p one/two/three/ && [ ! -e one ] && echo yes" "yes\n" "" ""

#mkdir -p one/two/three
#chmod 000 one/two/three one/two one
#testing "rmdir -p one/two/three" \
#	"rmdir -p one/two/three && [ ! -e one ] && echo yes" "yes\n" "" ""