summaryrefslogtreecommitdiff
path: root/tests-clar/refs
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-09-17 07:11:32 +0200
committernulltoken <emeric.fermas@gmail.com>2012-09-25 07:49:15 +0200
commit77e06d7e8547e82336489b7cdeb04294ed3d6015 (patch)
treec1715edc9ba6ae7ac17a23d4f4f46b36da7ac8ba /tests-clar/refs
parentc030ada7ff7f9c93a2287ca2f57173d66fbff88a (diff)
downloadlibgit2-77e06d7e8547e82336489b7cdeb04294ed3d6015.tar.gz
refs: introduce git_reference_is_valid_name()
Diffstat (limited to 'tests-clar/refs')
-rw-r--r--tests-clar/refs/create.c2
-rw-r--r--tests-clar/refs/isvalidname.c23
-rw-r--r--tests-clar/refs/lookup.c2
-rw-r--r--tests-clar/refs/normalize.c27
-rw-r--r--tests-clar/refs/read.c4
5 files changed, 36 insertions, 22 deletions
diff --git a/tests-clar/refs/create.c b/tests-clar/refs/create.c
index 2e42cb607..af5b203a3 100644
--- a/tests-clar/refs/create.c
+++ b/tests-clar/refs/create.c
@@ -27,7 +27,7 @@ void test_refs_create__symbolic(void)
git_oid id;
git_buf ref_path = GIT_BUF_INIT;
- const char *new_head_tracker = "another-head-tracker";
+ const char *new_head_tracker = "ANOTHER_HEAD_TRACKER";
git_oid_fromstr(&id, current_master_tip);
diff --git a/tests-clar/refs/isvalidname.c b/tests-clar/refs/isvalidname.c
new file mode 100644
index 000000000..99761de32
--- /dev/null
+++ b/tests-clar/refs/isvalidname.c
@@ -0,0 +1,23 @@
+#include "clar_libgit2.h"
+
+void test_refs_isvalidname__can_detect_invalid_formats(void)
+{
+ cl_assert_equal_i(false, git_reference_is_valid_name("refs/tags/0.17.0^{}"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("TWO/LEVELS"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("ONE.LEVEL"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("HEAD/"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("NO_TRAILING_UNDERSCORE_"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("_NO_LEADING_UNDERSCORE"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("HEAD/aa"));
+ cl_assert_equal_i(false, git_reference_is_valid_name("lower_case"));
+ cl_assert_equal_i(false, git_reference_is_valid_name(""));
+}
+
+void test_refs_isvalidname__wont_hopefully_choke_on_valid_formats(void)
+{
+ cl_assert_equal_i(true, git_reference_is_valid_name("refs/tags/0.17.0"));
+ cl_assert_equal_i(true, git_reference_is_valid_name("refs/LEVELS"));
+ cl_assert_equal_i(true, git_reference_is_valid_name("HEAD"));
+ cl_assert_equal_i(true, git_reference_is_valid_name("ONE_LEVEL"));
+ cl_assert_equal_i(true, git_reference_is_valid_name("refs/stash"));
+}
diff --git a/tests-clar/refs/lookup.c b/tests-clar/refs/lookup.c
index ab563ac2b..71ab1b7b8 100644
--- a/tests-clar/refs/lookup.c
+++ b/tests-clar/refs/lookup.c
@@ -25,7 +25,7 @@ void test_refs_lookup__with_resolve(void)
cl_assert(git_reference_cmp(a, b) == 0);
git_reference_free(b);
- cl_git_pass(git_reference_lookup_resolved(&b, g_repo, "head-tracker", 5));
+ cl_git_pass(git_reference_lookup_resolved(&b, g_repo, "HEAD_TRACKER", 5));
cl_assert(git_reference_cmp(a, b) == 0);
git_reference_free(b);
diff --git a/tests-clar/refs/normalize.c b/tests-clar/refs/normalize.c
index db1096476..a144ef5c0 100644
--- a/tests-clar/refs/normalize.c
+++ b/tests-clar/refs/normalize.c
@@ -39,17 +39,7 @@ void test_refs_normalize__can_normalize_a_direct_reference_name(void)
ensure_refname_normalized(
GIT_REF_FORMAT_NORMAL, "refs/heads/v@ation", "refs/heads/v@ation");
ensure_refname_normalized(
- GIT_REF_FORMAT_NORMAL, "/refs///heads///a", "refs/heads/a");
-}
-
-void test_refs_normalize__can_normalize_some_specific_one_level_direct_reference_names(void)
-{
- ensure_refname_normalized(
- GIT_REF_FORMAT_NORMAL, "HEAD", "HEAD");
- ensure_refname_normalized(
- GIT_REF_FORMAT_NORMAL, "MERGE_HEAD", "MERGE_HEAD");
- ensure_refname_normalized(
- GIT_REF_FORMAT_NORMAL, "FETCH_HEAD", "FETCH_HEAD");
+ GIT_REF_FORMAT_NORMAL, "refs///heads///a", "refs/heads/a");
}
void test_refs_normalize__cannot_normalize_any_direct_reference_name(void)
@@ -63,6 +53,8 @@ void test_refs_normalize__cannot_normalize_any_direct_reference_name(void)
ensure_refname_invalid(
GIT_REF_FORMAT_NORMAL, "");
ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "/refs/heads/a/");
+ ensure_refname_invalid(
GIT_REF_FORMAT_NORMAL, "refs/heads/a/");
ensure_refname_invalid(
GIT_REF_FORMAT_NORMAL, "refs/heads/a.");
@@ -98,9 +90,9 @@ void test_refs_normalize__symbolic(void)
GIT_REF_FORMAT_ALLOW_ONELEVEL, "///");
ensure_refname_normalized(
- GIT_REF_FORMAT_ALLOW_ONELEVEL, "a", "a");
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "ALL_CAPS_AND_UNDERSCORES", "ALL_CAPS_AND_UNDERSCORES");
ensure_refname_normalized(
- GIT_REF_FORMAT_ALLOW_ONELEVEL, "a/b", "a/b");
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/MixedCasing", "refs/MixedCasing");
ensure_refname_normalized(
GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs///heads///a", "refs/heads/a");
@@ -128,10 +120,9 @@ void test_refs_normalize__jgit_suite(void)
ensure_refname_invalid(
GIT_REF_FORMAT_NORMAL, "master");
ensure_refname_normalized(
- GIT_REF_FORMAT_ALLOW_ONELEVEL, "heads/master", "heads/master");
+ GIT_REF_FORMAT_NORMAL, "heads/master", "heads/master");
/* ValidHead */
-
ensure_refname_normalized(
GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master", "refs/heads/master");
ensure_refname_normalized(
@@ -311,9 +302,9 @@ void test_refs_normalize__buffer_has_to_be_big_enough_to_hold_the_normalized_ver
char buffer_out[21];
cl_git_pass(git_reference_normalize_name(
- buffer_out, 21, "//refs//heads/long///name", GIT_REF_FORMAT_NORMAL));
+ buffer_out, 21, "refs//heads///long///name", GIT_REF_FORMAT_NORMAL));
cl_git_fail(git_reference_normalize_name(
- buffer_out, 20, "//refs//heads/long///name", GIT_REF_FORMAT_NORMAL));
+ buffer_out, 20, "refs//heads///long///name", GIT_REF_FORMAT_NORMAL));
}
#define ONE_LEVEL_AND_REFSPEC \
@@ -332,7 +323,7 @@ void test_refs_normalize__refspec_pattern(void)
ensure_refname_invalid(
GIT_REF_FORMAT_REFSPEC_PATTERN, "foo");
ensure_refname_normalized(
- ONE_LEVEL_AND_REFSPEC, "foo", "foo");
+ ONE_LEVEL_AND_REFSPEC, "FOO", "FOO");
ensure_refname_normalized(
GIT_REF_FORMAT_REFSPEC_PATTERN, "foo/bar", "foo/bar");
diff --git a/tests-clar/refs/read.c b/tests-clar/refs/read.c
index f33658754..6ab6bf586 100644
--- a/tests-clar/refs/read.c
+++ b/tests-clar/refs/read.c
@@ -6,7 +6,7 @@
static const char *loose_tag_ref_name = "refs/tags/e90810b";
static const char *non_existing_tag_ref_name = "refs/tags/i-do-not-exist";
-static const char *head_tracker_sym_ref_name = "head-tracker";
+static const char *head_tracker_sym_ref_name = "HEAD_TRACKER";
static const char *current_head_target = "refs/heads/master";
static const char *current_master_tip = "a65fedf39aefe402d3bb6e24df4d4f5fe4547750";
static const char *packed_head_name = "refs/heads/packed";
@@ -221,7 +221,7 @@ void test_refs_read__unfound_return_ENOTFOUND(void)
{
git_reference *reference;
- cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&reference, g_repo, "test/master"));
+ cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&reference, g_repo, "TEST_MASTER"));
cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&reference, g_repo, "refs/test/master"));
cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&reference, g_repo, "refs/tags/test/master"));
cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&reference, g_repo, "refs/tags/test/farther/master"));