51 lines
1.6 KiB
Text
Executable file
51 lines
1.6 KiB
Text
Executable file
# -*- perl -*-
|
|
use strict;
|
|
use warnings;
|
|
use tests::tests;
|
|
my ($cwd_removable) = check_expected (IGNORE_EXIT_CODES => 1,
|
|
{NO => <<'EOF', YES => <<'EOF'});
|
|
(dir-rm-cwd) begin
|
|
(dir-rm-cwd) open "/"
|
|
(dir-rm-cwd) mkdir "a"
|
|
(dir-rm-cwd) open "/a"
|
|
(dir-rm-cwd) verify "/a" is empty
|
|
(dir-rm-cwd) "/" and "/a" must have different inumbers
|
|
(dir-rm-cwd) chdir "a"
|
|
(dir-rm-cwd) try to remove "/a"
|
|
(dir-rm-cwd) remove failed
|
|
(dir-rm-cwd) try to remove "../a" (must fail)
|
|
(dir-rm-cwd) try to remove ".././a" (must fail)
|
|
(dir-rm-cwd) try to remove "/./a" (must fail)
|
|
(dir-rm-cwd) open "/a"
|
|
(dir-rm-cwd) open "."
|
|
(dir-rm-cwd) "/a" and "." must have same inumber
|
|
(dir-rm-cwd) "/" and "/a" must have different inumbers
|
|
(dir-rm-cwd) chdir "/a"
|
|
(dir-rm-cwd) open "."
|
|
(dir-rm-cwd) "." must have same inumber as before
|
|
(dir-rm-cwd) chdir "/"
|
|
(dir-rm-cwd) try to remove "a" (must fail: still open)
|
|
(dir-rm-cwd) verify "/a" is empty
|
|
(dir-rm-cwd) end
|
|
EOF
|
|
(dir-rm-cwd) begin
|
|
(dir-rm-cwd) open "/"
|
|
(dir-rm-cwd) mkdir "a"
|
|
(dir-rm-cwd) open "/a"
|
|
(dir-rm-cwd) verify "/a" is empty
|
|
(dir-rm-cwd) "/" and "/a" must have different inumbers
|
|
(dir-rm-cwd) chdir "a"
|
|
(dir-rm-cwd) try to remove "/a"
|
|
(dir-rm-cwd) remove successful
|
|
(dir-rm-cwd) open "/a" (must fail)
|
|
(dir-rm-cwd) open "." (must fail)
|
|
(dir-rm-cwd) open ".." (must fail)
|
|
(dir-rm-cwd) create "x" (must fail)
|
|
(dir-rm-cwd) verify "/a" is empty
|
|
(dir-rm-cwd) end
|
|
EOF
|
|
open (CAN_RMDIR_CWD, ">tests/filesys/extended/can-rmdir-cwd")
|
|
or die "tests/filesys/extended/can-rmdir-cwd: create: $!\n";
|
|
print CAN_RMDIR_CWD "$cwd_removable";
|
|
close (CAN_RMDIR_CWD);
|
|
pass;
|