summaryrefslogtreecommitdiff
path: root/tests/file_name.at
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2010-11-09 14:38:28 -0800
committerBen Pfaff <blp@nicira.com>2010-11-10 10:56:01 -0800
commite1aff6f9f7103ee59e2501d3e6c705a685b20aeb (patch)
treee081b78ff112641da3581a5d433fe26b9920aac8 /tests/file_name.at
parentc214278b0d0e9b574a1f505f14a47d3d8d81aea1 (diff)
downloadopenvswitch-e1aff6f9f7103ee59e2501d3e6c705a685b20aeb.tar.gz
util: New function base_name().
Diffstat (limited to 'tests/file_name.at')
-rw-r--r--tests/file_name.at26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/file_name.at b/tests/file_name.at
new file mode 100644
index 000000000..e0b43dca3
--- /dev/null
+++ b/tests/file_name.at
@@ -0,0 +1,26 @@
+AT_BANNER([test dir_name and base_name functions])
+
+m4_define([CHECK_FILE_NAME],
+ [AT_SETUP([components of "$1" are "$2", "$3"])
+ AT_KEYWORDS([dir_name base_name])
+ AT_CHECK([test-file_name "AS_ESCAPE($1)"], [0], [$2
+$3
+])
+ AT_CLEANUP])
+
+# These are the test cases given in POSIX for dirname() and basename().
+CHECK_FILE_NAME([/usr/lib], [/usr], [lib])
+CHECK_FILE_NAME([/usr/], [/], [usr])
+CHECK_FILE_NAME([usr], [.], [usr])
+CHECK_FILE_NAME([/], [/], [/])
+CHECK_FILE_NAME([.], [.], [.])
+CHECK_FILE_NAME([..], [.], [..])
+CHECK_FILE_NAME([//], [//], [//]) # / is also allowed
+CHECK_FILE_NAME([//foo], [//], [foo]) # / is also allowed for dirname
+CHECK_FILE_NAME([], [.], [.])
+
+# Additional test cases.
+CHECK_FILE_NAME([dir/file], [dir], [file])
+CHECK_FILE_NAME([dir/file/], [dir], [file])
+CHECK_FILE_NAME([dir/file//], [dir], [file])
+CHECK_FILE_NAME([///foo], [/], [foo])