Index: cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.basename.d =================================================================== --- cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.basename.d +++ cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.basename.d @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #pragma D option quiet +#pragma D option dynvarsize=2m /* * This test verifies that the basename() and dirname() functions are working @@ -54,12 +55,16 @@ dir[i++] = "f"; dir[i++] = "f/"; dir[i++] = "/////"; + /* + * This one is treated differently because the implementations are + * different in Solaris and BSD (and Linux) dir[i++] = ""; + */ end = i; i = 0; - printf("#!/usr/bin/ksh\n\n"); + printf("#!/usr/bin/env ksh\n\n"); } tick-1ms @@ -69,13 +74,13 @@ dir[i], basename(dir[i])); printf(" echo \"basename(\\\"%s\\\") is \\\"%s\\\"; ", dir[i], basename(dir[i])); - printf("expected \\\"`basename \"%s\"`\"\\\"\n", dir[i]); + printf("expected \\\"`basename \"%s\"`\\\"\"\n", dir[i]); printf("fi\n\n"); printf("if [ `dirname \"%s\"` != \"%s\" ]; then\n", dir[i], dirname(dir[i])); printf(" echo \"dirname(\\\"%s\\\") is \\\"%s\\\"; ", dir[i], dirname(dir[i])); - printf("expected \\\"`dirname \"%s\"`\"\\\"\n", dir[i]); + printf("expected \\\"`dirname \"%s\"`\\\"\"\n", dir[i]); printf("fi\n\n"); i++; } @@ -83,5 +88,19 @@ tick-1ms /i == end/ { + dir[i] = ""; + printf("if [ \"`basename \"%s\"`\" != \"%s\" -a \".\" != \"%s\" ]; then\n", + dir[i], basename(dir[i]), basename(dir[i])); + printf(" echo \"basename(\\\"%s\\\") is \\\"%s\\\"; ", + dir[i], basename(dir[i])); + printf("expected \\\"`basename \"%s\"`\\\" or \\\".\\\"\"\n", dir[i]); + printf("fi\n\n"); + printf("if [ `dirname \"%s\"` != \"%s\" ]; then\n", + dir[i], dirname(dir[i])); + printf(" echo \"dirname(\\\"%s\\\") is \\\"%s\\\"; ", + dir[i], dirname(dir[i])); + printf("expected \\\"`dirname \"%s\"`\\\"\"\n", dir[i]); + printf("fi\n\n"); + exit(0); } Index: cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.basename.d.out =================================================================== --- cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.basename.d.out +++ cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.basename.d.out @@ -1,163 +1,163 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh if [ `basename "/foo/bar/baz"` != "baz" ]; then - echo "basename(\"/foo/bar/baz\") is \"baz\"; expected \"`basename "/foo/bar/baz"`"\" + echo "basename(\"/foo/bar/baz\") is \"baz\"; expected \"`basename "/foo/bar/baz"`\"" fi if [ `dirname "/foo/bar/baz"` != "/foo/bar" ]; then - echo "dirname(\"/foo/bar/baz\") is \"/foo/bar\"; expected \"`dirname "/foo/bar/baz"`"\" + echo "dirname(\"/foo/bar/baz\") is \"/foo/bar\"; expected \"`dirname "/foo/bar/baz"`\"" fi if [ `basename "/foo/bar///baz/"` != "baz" ]; then - echo "basename(\"/foo/bar///baz/\") is \"baz\"; expected \"`basename "/foo/bar///baz/"`"\" + echo "basename(\"/foo/bar///baz/\") is \"baz\"; expected \"`basename "/foo/bar///baz/"`\"" fi if [ `dirname "/foo/bar///baz/"` != "/foo/bar" ]; then - echo "dirname(\"/foo/bar///baz/\") is \"/foo/bar\"; expected \"`dirname "/foo/bar///baz/"`"\" + echo "dirname(\"/foo/bar///baz/\") is \"/foo/bar\"; expected \"`dirname "/foo/bar///baz/"`\"" fi if [ `basename "/foo/bar/baz/"` != "baz" ]; then - echo "basename(\"/foo/bar/baz/\") is \"baz\"; expected \"`basename "/foo/bar/baz/"`"\" + echo "basename(\"/foo/bar/baz/\") is \"baz\"; expected \"`basename "/foo/bar/baz/"`\"" fi if [ `dirname "/foo/bar/baz/"` != "/foo/bar" ]; then - echo "dirname(\"/foo/bar/baz/\") is \"/foo/bar\"; expected \"`dirname "/foo/bar/baz/"`"\" + echo "dirname(\"/foo/bar/baz/\") is \"/foo/bar\"; expected \"`dirname "/foo/bar/baz/"`\"" fi if [ `basename "/foo/bar/baz//"` != "baz" ]; then - echo "basename(\"/foo/bar/baz//\") is \"baz\"; expected \"`basename "/foo/bar/baz//"`"\" + echo "basename(\"/foo/bar/baz//\") is \"baz\"; expected \"`basename "/foo/bar/baz//"`\"" fi if [ `dirname "/foo/bar/baz//"` != "/foo/bar" ]; then - echo "dirname(\"/foo/bar/baz//\") is \"/foo/bar\"; expected \"`dirname "/foo/bar/baz//"`"\" + echo "dirname(\"/foo/bar/baz//\") is \"/foo/bar\"; expected \"`dirname "/foo/bar/baz//"`\"" fi if [ `basename "/foo/bar/baz/."` != "." ]; then - echo "basename(\"/foo/bar/baz/.\") is \".\"; expected \"`basename "/foo/bar/baz/."`"\" + echo "basename(\"/foo/bar/baz/.\") is \".\"; expected \"`basename "/foo/bar/baz/."`\"" fi if [ `dirname "/foo/bar/baz/."` != "/foo/bar/baz" ]; then - echo "dirname(\"/foo/bar/baz/.\") is \"/foo/bar/baz\"; expected \"`dirname "/foo/bar/baz/."`"\" + echo "dirname(\"/foo/bar/baz/.\") is \"/foo/bar/baz\"; expected \"`dirname "/foo/bar/baz/."`\"" fi if [ `basename "/foo/bar/baz/./"` != "." ]; then - echo "basename(\"/foo/bar/baz/./\") is \".\"; expected \"`basename "/foo/bar/baz/./"`"\" + echo "basename(\"/foo/bar/baz/./\") is \".\"; expected \"`basename "/foo/bar/baz/./"`\"" fi if [ `dirname "/foo/bar/baz/./"` != "/foo/bar/baz" ]; then - echo "dirname(\"/foo/bar/baz/./\") is \"/foo/bar/baz\"; expected \"`dirname "/foo/bar/baz/./"`"\" + echo "dirname(\"/foo/bar/baz/./\") is \"/foo/bar/baz\"; expected \"`dirname "/foo/bar/baz/./"`\"" fi if [ `basename "/foo/bar/baz/.//"` != "." ]; then - echo "basename(\"/foo/bar/baz/.//\") is \".\"; expected \"`basename "/foo/bar/baz/.//"`"\" + echo "basename(\"/foo/bar/baz/.//\") is \".\"; expected \"`basename "/foo/bar/baz/.//"`\"" fi if [ `dirname "/foo/bar/baz/.//"` != "/foo/bar/baz" ]; then - echo "dirname(\"/foo/bar/baz/.//\") is \"/foo/bar/baz\"; expected \"`dirname "/foo/bar/baz/.//"`"\" + echo "dirname(\"/foo/bar/baz/.//\") is \"/foo/bar/baz\"; expected \"`dirname "/foo/bar/baz/.//"`\"" fi if [ `basename "foo/bar/baz/"` != "baz" ]; then - echo "basename(\"foo/bar/baz/\") is \"baz\"; expected \"`basename "foo/bar/baz/"`"\" + echo "basename(\"foo/bar/baz/\") is \"baz\"; expected \"`basename "foo/bar/baz/"`\"" fi if [ `dirname "foo/bar/baz/"` != "foo/bar" ]; then - echo "dirname(\"foo/bar/baz/\") is \"foo/bar\"; expected \"`dirname "foo/bar/baz/"`"\" + echo "dirname(\"foo/bar/baz/\") is \"foo/bar\"; expected \"`dirname "foo/bar/baz/"`\"" fi if [ `basename "/"` != "/" ]; then - echo "basename(\"/\") is \"/\"; expected \"`basename "/"`"\" + echo "basename(\"/\") is \"/\"; expected \"`basename "/"`\"" fi if [ `dirname "/"` != "/" ]; then - echo "dirname(\"/\") is \"/\"; expected \"`dirname "/"`"\" + echo "dirname(\"/\") is \"/\"; expected \"`dirname "/"`\"" fi if [ `basename "./"` != "." ]; then - echo "basename(\"./\") is \".\"; expected \"`basename "./"`"\" + echo "basename(\"./\") is \".\"; expected \"`basename "./"`\"" fi if [ `dirname "./"` != "." ]; then - echo "dirname(\"./\") is \".\"; expected \"`dirname "./"`"\" + echo "dirname(\"./\") is \".\"; expected \"`dirname "./"`\"" fi if [ `basename "//"` != "/" ]; then - echo "basename(\"//\") is \"/\"; expected \"`basename "//"`"\" + echo "basename(\"//\") is \"/\"; expected \"`basename "//"`\"" fi if [ `dirname "//"` != "/" ]; then - echo "dirname(\"//\") is \"/\"; expected \"`dirname "//"`"\" + echo "dirname(\"//\") is \"/\"; expected \"`dirname "//"`\"" fi if [ `basename "/."` != "." ]; then - echo "basename(\"/.\") is \".\"; expected \"`basename "/."`"\" + echo "basename(\"/.\") is \".\"; expected \"`basename "/."`\"" fi if [ `dirname "/."` != "/" ]; then - echo "dirname(\"/.\") is \"/\"; expected \"`dirname "/."`"\" + echo "dirname(\"/.\") is \"/\"; expected \"`dirname "/."`\"" fi if [ `basename "/./"` != "." ]; then - echo "basename(\"/./\") is \".\"; expected \"`basename "/./"`"\" + echo "basename(\"/./\") is \".\"; expected \"`basename "/./"`\"" fi if [ `dirname "/./"` != "/" ]; then - echo "dirname(\"/./\") is \"/\"; expected \"`dirname "/./"`"\" + echo "dirname(\"/./\") is \"/\"; expected \"`dirname "/./"`\"" fi if [ `basename "/./."` != "." ]; then - echo "basename(\"/./.\") is \".\"; expected \"`basename "/./."`"\" + echo "basename(\"/./.\") is \".\"; expected \"`basename "/./."`\"" fi if [ `dirname "/./."` != "/." ]; then - echo "dirname(\"/./.\") is \"/.\"; expected \"`dirname "/./."`"\" + echo "dirname(\"/./.\") is \"/.\"; expected \"`dirname "/./."`\"" fi if [ `basename "/.//"` != "." ]; then - echo "basename(\"/.//\") is \".\"; expected \"`basename "/.//"`"\" + echo "basename(\"/.//\") is \".\"; expected \"`basename "/.//"`\"" fi if [ `dirname "/.//"` != "/" ]; then - echo "dirname(\"/.//\") is \"/\"; expected \"`dirname "/.//"`"\" + echo "dirname(\"/.//\") is \"/\"; expected \"`dirname "/.//"`\"" fi if [ `basename "."` != "." ]; then - echo "basename(\".\") is \".\"; expected \"`basename "."`"\" + echo "basename(\".\") is \".\"; expected \"`basename "."`\"" fi if [ `dirname "."` != "." ]; then - echo "dirname(\".\") is \".\"; expected \"`dirname "."`"\" + echo "dirname(\".\") is \".\"; expected \"`dirname "."`\"" fi if [ `basename "f"` != "f" ]; then - echo "basename(\"f\") is \"f\"; expected \"`basename "f"`"\" + echo "basename(\"f\") is \"f\"; expected \"`basename "f"`\"" fi if [ `dirname "f"` != "." ]; then - echo "dirname(\"f\") is \".\"; expected \"`dirname "f"`"\" + echo "dirname(\"f\") is \".\"; expected \"`dirname "f"`\"" fi if [ `basename "f/"` != "f" ]; then - echo "basename(\"f/\") is \"f\"; expected \"`basename "f/"`"\" + echo "basename(\"f/\") is \"f\"; expected \"`basename "f/"`\"" fi if [ `dirname "f/"` != "." ]; then - echo "dirname(\"f/\") is \".\"; expected \"`dirname "f/"`"\" + echo "dirname(\"f/\") is \".\"; expected \"`dirname "f/"`\"" fi if [ `basename "/////"` != "/" ]; then - echo "basename(\"/////\") is \"/\"; expected \"`basename "/////"`"\" + echo "basename(\"/////\") is \"/\"; expected \"`basename "/////"`\"" fi if [ `dirname "/////"` != "/" ]; then - echo "dirname(\"/////\") is \"/\"; expected \"`dirname "/////"`"\" + echo "dirname(\"/////\") is \"/\"; expected \"`dirname "/////"`\"" fi -if [ `basename ""` != "." ]; then - echo "basename(\"\") is \".\"; expected \"`basename ""`"\" +if [ "`basename ""`" != "." -a "." != "." ]; then + echo "basename(\"\") is \".\"; expected \"`basename ""`\" or \".\"" fi if [ `dirname ""` != "." ]; then - echo "dirname(\"\") is \".\"; expected \"`dirname ""`"\" + echo "dirname(\"\") is \".\"; expected \"`dirname ""`\"" fi