jj/cli/tests
Yuya Nishihara ded48ff6e7 local_working_copy: do not create file or write in directory named .jj or .git
I originally considered adding deny-list-based implementation, but the Windows
compatibility rules are super confusing and I don't have a machine to find out
possible aliases. This patch instead adds directory equivalence tests.

In order to test file entity equivalence, we first need to create a file or
directory of the requested name. It's harmless to create an empty .jj or .git
directory, but materializing .git file or symlink can temporarily set up RCE
situation. That's why new empty file is created to test the path validity. We
might want to add some optimization for safe names (e.g. ASCII, not contain
"git" or "jj", not contain "~", etc.)

That being said, I'm not pretty sure if .git/.jj in sub directory must be
checked. It's not safe to cd into the directory and run "jj", but the same
thing can be said to other tools such as "cargo". Perhaps, our minimum
requirement is to protect our metadata (= the root .jj and .git) directories.

Despite the crate name (and internal use of std::fs::File),
same_file::is_same_file() can test equivalence of directories. This is
documented and tested, so I've removed my custom implementation, which was
slightly simpler but lacks Windows support.
2024-11-06 15:03:41 -08:00
..
common tests: set $COLUMNS when running CLI tests 2024-09-05 08:56:04 -07:00
cli-reference@.md.snap cli: util: sort sub commands lexicographically 2024-11-04 13:33:37 +09:00
runner.rs tests: rename test_annotate_command.rs to test_file_annotate_command.rs 2024-11-05 14:49:57 +09:00
test_abandon_command.rs abandon: add --restore-descendants flag 2024-09-24 10:52:06 +02:00
test_acls.rs diff: remove duplicated source message from AccessDenied error 2024-10-23 23:51:21 +09:00
test_advance_bookmarks.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_alias.rs bookmark: add "b" alias 2024-09-17 18:24:26 +02:00
test_backout_command.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_bookmark_command.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_builtin_aliases.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_checkout.rs Enable the new graph nodes by default. 2024-07-16 12:54:24 +02:00
test_commit_command.rs cli: add --author argument for commit and describe 2024-09-22 12:40:46 +02:00
test_commit_template.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_concurrent_operations.rs repo: teach OpStore about the root commit id 2024-10-08 13:21:03 +09:00
test_config_command.rs cli: add jj config unset 2024-10-30 06:50:15 +01:00
test_copy_detection.rs copy-tracking: add a command line driver with a simple test 2024-07-03 20:26:30 -04:00
test_debug_command.rs revset: move RevsetCommitRef::Root to RevsetExpression 2024-11-04 09:20:46 +09:00
test_describe_command.rs cli: get author timestamp of description template in consistent way 2024-09-24 07:17:33 +09:00
test_diff_command.rs diff: Allow setting the default level of context in config. 2024-10-25 17:56:56 +01:00
test_diffedit_command.rs diffedit: add --restore-descendants flag 2024-09-24 09:30:28 +02:00
test_duplicate_command.rs templates: make op_summary more readable 2024-10-13 20:06:03 -07:00
test_edit_command.rs Enable the new graph nodes by default. 2024-07-16 12:54:24 +02:00
test_evolog_command.rs templates: Add new template alias builtin_log_compact_full_description 2024-10-26 14:01:18 -03:00
test_file_annotate_command.rs cli: don't use format_*() in annotate template, truncate author, omit commit id 2024-11-05 14:49:57 +09:00
test_file_chmod_command.rs cli: reorder updating and reporting for consistency. 2024-09-22 15:02:21 +01:00
test_file_show_command.rs tests: rename test_file_print_command.rs to_file_show_command.rs 2024-10-04 20:52:59 +09:00
test_file_track_untrack_commands.rs cli: make paths to auto-track configurable, add jj track 2024-09-09 07:49:55 -07:00
test_fix_command.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_generate_md_cli_help.rs test_generate_cli_reference: fixup to 52c415e, remove mysterious comment 2024-06-15 20:30:40 -07:00
test_git_clone.rs local_working_copy: do not create file or write in directory named .jj or .git 2024-11-06 15:03:41 -08:00
test_git_colocated.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_git_fetch.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_git_import_export.rs templates: make op_summary more readable 2024-10-13 20:06:03 -07:00
test_git_init.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_git_private_commits.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_git_push.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_git_remotes.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_git_submodule.rs tests: avoid deprecated jj init --git/--git-repo 2024-05-17 13:55:20 -07:00
test_gitignores.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_global_opts.rs cli: insert dummy -h/--help flag when parsing early args 2024-11-03 13:32:12 +09:00
test_help_command.rs help: Add a keyword feature 2024-10-31 16:55:18 -03:00
test_immutable_commits.rs id_prefix: propagate error from disambiguation index 2024-10-09 14:07:48 +09:00
test_init_command.rs bookmarks: add support for git.auto-local-bookmark (to match docs) 2024-10-30 08:01:02 -07:00
test_interdiff_command.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_log_command.rs templates: Add new template alias builtin_log_compact_full_description 2024-10-26 14:01:18 -03:00
test_move_command.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_new_command.rs bookmarks: update some leftover uses of the word "branch" 2024-09-11 19:19:31 -07:00
test_next_prev_commands.rs ui: write prompt messages to stderr 2024-10-07 19:47:18 -04:00
test_operations.rs templates: Add new template alias builtin_log_compact_full_description 2024-10-26 14:01:18 -03:00
test_parallelize_command.rs style: add semicolon at the end of expressions used as statements 2024-10-04 22:29:13 +02:00
test_rebase_command.rs rebase -s: add support for --insert-after and --insert-before options 2024-10-16 11:26:59 +08:00
test_repo_change_report.rs cli: reorder updating and reporting for consistency. 2024-09-22 15:02:21 +01:00
test_resolve_command.rs cli: reorder updating and reporting for consistency. 2024-09-22 15:02:21 +01:00
test_restore_command.rs restore: add --restore-descendants flag 2024-09-24 14:26:54 +02:00
test_revset_output.rs cli: add pointer to the documentation in case of fileset syntax error 2024-10-04 17:09:43 +02:00
test_root.rs formatting only: switch to Item level import ganularity 2024-08-22 14:52:54 -04:00
test_shell_completion.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_show_command.rs templates: Add new template alias builtin_log_compact_full_description 2024-10-26 14:01:18 -03:00
test_simplify_parents_command.rs simplify-parents: add a command to remove redundant parents 2024-10-07 20:15:33 -04:00
test_sparse_command.rs windows: avoid UNC paths in run_ui_editor 2024-07-04 11:30:20 +10:00
test_split_command.rs split: do not prevent all changes from going into the first commit 2024-09-27 13:33:05 +02:00
test_squash_command.rs cli: reorder updating and reporting for consistency. 2024-09-22 15:02:21 +01:00
test_status_command.rs conflicts: Highlight change ids in rebase advice 2024-09-13 12:57:56 +02:00
test_tag_command.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_templater.rs templates: Add new template alias builtin_log_compact_full_description 2024-10-26 14:01:18 -03:00
test_undo.rs everything: Rename branches to bookmarks 2024-09-11 18:54:45 +02:00
test_unsquash_command.rs unsquash: deprecate in favor of squash and diffedit 2024-09-26 16:34:48 +02:00
test_util_command.rs repo: teach OpStore about the root commit id 2024-10-08 13:21:03 +09:00
test_working_copy.rs cli: make paths to auto-track configurable, add jj track 2024-09-09 07:49:55 -07:00
test_workspaces.rs repo: teach OpStore about the root commit id 2024-10-08 13:21:03 +09:00