view tests/basename.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

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

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

# Removal of extra /'s
testing "basename /-only" "basename ///////" "/\n" "" ""
testing "basename trailing /" "basename a//////" "a\n" "" ""
testing "basename combined" "basename /////a///b///c///d/////" "d\n" "" ""

# Standard suffix behavior.
testing "basename suffix" "basename a/b/c/d.suffix .suffix" "d\n" "" ""

# A suffix cannot be the entire result.
testing "basename suffix=result" "basename .txt .txt" ".txt\n" "" ""

# Deal with suffix appearing in the filename
testing "basename reappearing suffix 1" "basename a.txt.txt .txt" "a.txt\n" "" ""
testing "basename reappearing suffix 2" "basename a.txt.old .txt" "a.txt.old\n" "" ""

# A suffix should be a real suffix, only a the end.
testing "basename invalid suffix" "basename isthisasuffix? suffix" "isthisasuffix?\n" "" ""