add tests for file module predicates
reproduce failing `directory_exists/1` with working directory passed as first argument reproduce failing `delete_directory/1` with ./test directory passed as first argument reproduce failing `file_size/1` with 2 bytes files passed as first argument reproduce failing `file_exists/1` with existing file passed as first argument reproduce failing `file_modification_time/1`, `file_access_time/1` and `file_creation_time/1` with existing file passed as first argument reproduce failing `directory_files/2` with existing directory passed as first argument reproduce failing `delete_file/1` with existing file passed as first argument reproduce failing `make_directory/1` with non-existing directory passed as first argument reproduce failing `make_directory_path/1` with non-existing path passed as first argument reproduce failing `path_canonical/2` with non-canonical path passed as first argument reproduce failing `rename_file/2` with existing file passed as first argument, target file as second arg revised `directory_exists/1` test case renamed test files, test directories use `path_segments/2`, remove path separators do not write file size to current output revised `directory_files/2` test revised `path_canonical/2` test revised `file_exists/1` test removed hardcoded expected size extracted hardcoded directory argument remove path prefix containing path separator revised expected ls cmd exit code so that it is platform-agnostic Signed-off-by: Thierry Marianne <thierry@marianne.io>
This commit is contained in:
30
tests-pl/issue_directory_files.pl
Normal file
30
tests-pl/issue_directory_files.pl
Normal file
@@ -0,0 +1,30 @@
|
||||
:- use_module(library(files)).
|
||||
:- use_module(library(iso_ext)).
|
||||
:- use_module(library(lists)).
|
||||
:- use_module(library(os), [setenv/2, getenv/2, shell/2]).
|
||||
|
||||
check :-
|
||||
act(TargetDirectory, Files),
|
||||
ground(TargetDirectory),
|
||||
length(Files, N),
|
||||
write(N).
|
||||
|
||||
act(TargetDirectory, Files) :-
|
||||
getenv("TARGET_DIRECTORY", TargetDirectory),
|
||||
directory_files(TargetDirectory, Files).
|
||||
|
||||
main :-
|
||||
path_segments(Path, ["directory_files_test_parent", "directory_files_test_file"]),
|
||||
call_cleanup(
|
||||
(setenv("TARGET_DIRECTORY", "directory_files_test_parent"),
|
||||
shell("test -d directory_files_test_parent || mkdir directory_files_test_parent", 0),
|
||||
append(["test -e ", Path, " || touch ", Path], Cmd),
|
||||
shell(Cmd, 0),
|
||||
check),
|
||||
(append(["rm -f ", Path, " || true"], Cmd1),
|
||||
shell(Cmd1, 0),
|
||||
shell("rmdir directory_files_test_parent || true", 0),
|
||||
shell("ls directory_files_test_parent", 1))
|
||||
).
|
||||
|
||||
:- initialization(main).
|
||||
Reference in New Issue
Block a user