xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
<root> / tests / fileops / gen_clone_name.c (7ea7cf1a4887f93f82b18124a479e008a5f20603) (1,378B) (mode 100644) [raw]
#include <stic.h>

#include "../../src/fops_misc.h"

TEST(slash_at_the_end)
{
	assert_string_equal("dir(1)", gen_clone_name(".", "dir/"));
}

TEST(no_ext)
{
	assert_string_equal("name(1)", gen_clone_name(".", "name"));
}

TEST(ext)
{
	assert_string_equal("name(1).ext", gen_clone_name(".", "name.ext"));
}

TEST(two_exts)
{
	assert_string_equal("name.ext1(1).ext2",
			gen_clone_name(".", "name.ext1.ext2"));
}

TEST(tar_as_2nd_ext)
{
	assert_string_equal("name(1).tar.ext2", gen_clone_name(".", "name.tar.ext2"));
}

TEST(name_inc)
{
	assert_string_equal("name(0)(1).tar.ext2",
			gen_clone_name(".", "name(0).tar.ext2"));
	assert_string_equal("name(-1)(1).tar.ext2",
			gen_clone_name(".", "name(-1).tar.ext2"));
	assert_string_equal("name(2).tar.ext2",
			gen_clone_name(".", "name(1).tar.ext2"));
}

TEST(dot_files)
{
	assert_string_equal(".name(1)", gen_clone_name(".", ".name"));
	assert_string_equal(".name(1).ext", gen_clone_name(".", ".name.ext"));
	assert_string_equal(".name(2)", gen_clone_name(".", ".name(1)"));

	assert_string_equal(".config(1).d", gen_clone_name(".", ".config.d"));
	assert_string_equal(".config(2).d", gen_clone_name(".", ".config(1).d"));
	assert_string_equal(".config(1).d(1)", gen_clone_name(".", ".config.d(1)"));
}

/* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */
/* vim: set cinoptions+=t0 filetype=c : */
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master