summaryrefslogtreecommitdiff
path: root/tests-clar/refs/normalize.c
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-08-26 22:08:22 +0200
committernulltoken <emeric.fermas@gmail.com>2012-08-27 08:41:26 +0200
commit2e0c881670678d18b912b57dd5825fec00167aad (patch)
treeab3c71796cec05801fb608844b4b4cacadf7679f /tests-clar/refs/normalize.c
parent1168410426293aef8ce33becb277ff225595e183 (diff)
downloadlibgit2-2e0c881670678d18b912b57dd5825fec00167aad.tar.gz
refs: expose git_reference_normalize_name()
Diffstat (limited to 'tests-clar/refs/normalize.c')
-rw-r--r--tests-clar/refs/normalize.c346
1 files changed, 231 insertions, 115 deletions
diff --git a/tests-clar/refs/normalize.c b/tests-clar/refs/normalize.c
index 135d0a9b6..4e80e4b0b 100644
--- a/tests-clar/refs/normalize.c
+++ b/tests-clar/refs/normalize.c
@@ -4,70 +4,111 @@
#include "git2/reflog.h"
#include "reflog.h"
-
// Helpers
-static void ensure_refname_normalized(int is_oid_ref,
+static void ensure_refname_normalized(unsigned int flags,
const char *input_refname,
const char *expected_refname)
{
char buffer_out[GIT_REFNAME_MAX];
- if (is_oid_ref)
- cl_git_pass(git_reference__normalize_name_oid(buffer_out, sizeof(buffer_out), input_refname));
- else
- cl_git_pass(git_reference__normalize_name(buffer_out, sizeof(buffer_out), input_refname));
+ cl_git_pass(git_reference_normalize_name(buffer_out, sizeof(buffer_out), input_refname, flags));
- if (expected_refname)
- cl_assert(0 == strcmp(buffer_out, expected_refname));
+ cl_assert_equal_i(0, strcmp(buffer_out, expected_refname));
}
-static void ensure_refname_invalid(int is_oid_ref, const char *input_refname)
+static void ensure_refname_invalid(unsigned int flags, const char *input_refname)
{
char buffer_out[GIT_REFNAME_MAX];
- if (is_oid_ref)
- cl_git_fail(git_reference__normalize_name_oid(buffer_out, sizeof(buffer_out), input_refname));
- else
- cl_git_fail(git_reference__normalize_name(buffer_out, sizeof(buffer_out), input_refname));
+ cl_git_fail(git_reference_normalize_name(buffer_out, sizeof(buffer_out), input_refname, flags));
}
-#define OID_REF 1
-#define SYM_REF 0
-
+void test_refs_normalize__can_normalize_a_direct_reference_name(void)
+{
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_NORMAL, "refs/dummy/a", "refs/dummy/a");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_NORMAL, "refs/stash", "refs/stash");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_NORMAL, "refs/tags/a", "refs/tags/a");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/a/b", "refs/heads/a/b");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/a./b", "refs/heads/a./b");
+ 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");
+}
-void test_refs_normalize__direct(void)
+void test_refs_normalize__cannot_normalize_any_direct_reference_name(void)
{
- // normalize a direct (OID) reference name
- ensure_refname_invalid(OID_REF, "a");
- ensure_refname_invalid(OID_REF, "");
- ensure_refname_invalid(OID_REF, "refs/heads/a/");
- ensure_refname_invalid(OID_REF, "refs/heads/a.");
- ensure_refname_invalid(OID_REF, "refs/heads/a.lock");
- ensure_refname_normalized(OID_REF, "refs/dummy/a", NULL);
- ensure_refname_normalized(OID_REF, "refs/stash", NULL);
- ensure_refname_normalized(OID_REF, "refs/tags/a", "refs/tags/a");
- ensure_refname_normalized(OID_REF, "refs/heads/a/b", "refs/heads/a/b");
- ensure_refname_normalized(OID_REF, "refs/heads/a./b", "refs/heads/a./b");
- ensure_refname_invalid(OID_REF, "refs/heads/foo?bar");
- ensure_refname_invalid(OID_REF, "refs/heads\foo");
- ensure_refname_normalized(OID_REF, "refs/heads/v@ation", "refs/heads/v@ation");
- ensure_refname_normalized(OID_REF, "refs///heads///a", "refs/heads/a");
- ensure_refname_invalid(OID_REF, "refs/heads/.a/b");
- ensure_refname_invalid(OID_REF, "refs/heads/foo/../bar");
- ensure_refname_invalid(OID_REF, "refs/heads/foo..bar");
- ensure_refname_invalid(OID_REF, "refs/heads/./foo");
- ensure_refname_invalid(OID_REF, "refs/heads/v@{ation");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "a");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "/a");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "//a");
+ 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.lock");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/foo?bar");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads\foo");
+ 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");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/.a/b");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/foo/../bar");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/foo..bar");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/./foo");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "refs/heads/v@{ation");
}
void test_refs_normalize__symbolic(void)
{
- // normalize a symbolic reference name
- ensure_refname_normalized(SYM_REF, "a", "a");
- ensure_refname_normalized(SYM_REF, "a/b", "a/b");
- ensure_refname_normalized(SYM_REF, "refs///heads///a", "refs/heads/a");
- ensure_refname_invalid(SYM_REF, "");
- ensure_refname_invalid(SYM_REF, "heads\foo");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "heads\foo");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "///");
+
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "a", "a");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "a/b", "a/b");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs///heads///a", "refs/heads/a");
+
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "HEAD", "HEAD");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "MERGE_HEAD", "MERGE_HEAD");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "FETCH_HEAD", "FETCH_HEAD");
}
/* Ported from JGit, BSD licence.
@@ -77,31 +118,42 @@ void test_refs_normalize__jgit_suite(void)
// tests borrowed from JGit
/* EmptyString */
- ensure_refname_invalid(SYM_REF, "");
- ensure_refname_invalid(SYM_REF, "/");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "/");
/* MustHaveTwoComponents */
- ensure_refname_invalid(OID_REF, "master");
- ensure_refname_normalized(SYM_REF, "heads/master", "heads/master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_NORMAL, "master");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "heads/master", "heads/master");
/* ValidHead */
- ensure_refname_normalized(SYM_REF, "refs/heads/master", "refs/heads/master");
- ensure_refname_normalized(SYM_REF, "refs/heads/pu", "refs/heads/pu");
- ensure_refname_normalized(SYM_REF, "refs/heads/z", "refs/heads/z");
- ensure_refname_normalized(SYM_REF, "refs/heads/FoO", "refs/heads/FoO");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master", "refs/heads/master");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/pu", "refs/heads/pu");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/z", "refs/heads/z");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/FoO", "refs/heads/FoO");
/* ValidTag */
- ensure_refname_normalized(SYM_REF, "refs/tags/v1.0", "refs/tags/v1.0");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/tags/v1.0", "refs/tags/v1.0");
/* NoLockSuffix */
- ensure_refname_invalid(SYM_REF, "refs/heads/master.lock");
+ ensure_refname_invalid(GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master.lock");
/* NoDirectorySuffix */
- ensure_refname_invalid(SYM_REF, "refs/heads/master/");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master/");
/* NoSpace */
- ensure_refname_invalid(SYM_REF, "refs/heads/i haz space");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/i haz space");
/* NoAsciiControlCharacters */
{
@@ -112,89 +164,153 @@ void test_refs_normalize__jgit_suite(void)
strncpy(buffer + 15, (const char *)&c, 1);
strncpy(buffer + 16, "er", 2);
buffer[18 - 1] = '\0';
- ensure_refname_invalid(SYM_REF, buffer);
+ ensure_refname_invalid(GIT_REF_FORMAT_ALLOW_ONELEVEL, buffer);
}
}
/* NoBareDot */
- ensure_refname_invalid(SYM_REF, "refs/heads/.");
- ensure_refname_invalid(SYM_REF, "refs/heads/..");
- ensure_refname_invalid(SYM_REF, "refs/heads/./master");
- ensure_refname_invalid(SYM_REF, "refs/heads/../master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/.");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/..");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/./master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/../master");
/* NoLeadingOrTrailingDot */
- ensure_refname_invalid(SYM_REF, ".");
- ensure_refname_invalid(SYM_REF, "refs/heads/.bar");
- ensure_refname_invalid(SYM_REF, "refs/heads/..bar");
- ensure_refname_invalid(SYM_REF, "refs/heads/bar.");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, ".");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/.bar");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/..bar");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/bar.");
/* ContainsDot */
- ensure_refname_normalized(SYM_REF, "refs/heads/m.a.s.t.e.r", "refs/heads/m.a.s.t.e.r");
- ensure_refname_invalid(SYM_REF, "refs/heads/master..pu");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/m.a.s.t.e.r", "refs/heads/m.a.s.t.e.r");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master..pu");
/* NoMagicRefCharacters */
- ensure_refname_invalid(SYM_REF, "refs/heads/master^");
- ensure_refname_invalid(SYM_REF, "refs/heads/^master");
- ensure_refname_invalid(SYM_REF, "^refs/heads/master");
-
- ensure_refname_invalid(SYM_REF, "refs/heads/master~");
- ensure_refname_invalid(SYM_REF, "refs/heads/~master");
- ensure_refname_invalid(SYM_REF, "~refs/heads/master");
-
- ensure_refname_invalid(SYM_REF, "refs/heads/master:");
- ensure_refname_invalid(SYM_REF, "refs/heads/:master");
- ensure_refname_invalid(SYM_REF, ":refs/heads/master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master^");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/^master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "^refs/heads/master");
+
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master~");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/~master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "~refs/heads/master");
+
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master:");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/:master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, ":refs/heads/master");
/* ShellGlob */
- ensure_refname_invalid(SYM_REF, "refs/heads/master?");
- ensure_refname_invalid(SYM_REF, "refs/heads/?master");
- ensure_refname_invalid(SYM_REF, "?refs/heads/master");
-
- ensure_refname_invalid(SYM_REF, "refs/heads/master[");
- ensure_refname_invalid(SYM_REF, "refs/heads/[master");
- ensure_refname_invalid(SYM_REF, "[refs/heads/master");
-
- ensure_refname_invalid(SYM_REF, "refs/heads/master*");
- ensure_refname_invalid(SYM_REF, "refs/heads/*master");
- ensure_refname_invalid(SYM_REF, "*refs/heads/master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master?");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/?master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "?refs/heads/master");
+
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master[");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/[master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "[refs/heads/master");
+
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master*");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/*master");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "*refs/heads/master");
/* ValidSpecialCharacters */
- ensure_refname_normalized(SYM_REF, "refs/heads/!", "refs/heads/!");
- ensure_refname_normalized(SYM_REF, "refs/heads/\"", "refs/heads/\"");
- ensure_refname_normalized(SYM_REF, "refs/heads/#", "refs/heads/#");
- ensure_refname_normalized(SYM_REF, "refs/heads/$", "refs/heads/$");
- ensure_refname_normalized(SYM_REF, "refs/heads/%", "refs/heads/%");
- ensure_refname_normalized(SYM_REF, "refs/heads/&", "refs/heads/&");
- ensure_refname_normalized(SYM_REF, "refs/heads/'", "refs/heads/'");
- ensure_refname_normalized(SYM_REF, "refs/heads/(", "refs/heads/(");
- ensure_refname_normalized(SYM_REF, "refs/heads/)", "refs/heads/)");
- ensure_refname_normalized(SYM_REF, "refs/heads/+", "refs/heads/+");
- ensure_refname_normalized(SYM_REF, "refs/heads/,", "refs/heads/,");
- ensure_refname_normalized(SYM_REF, "refs/heads/-", "refs/heads/-");
- ensure_refname_normalized(SYM_REF, "refs/heads/;", "refs/heads/;");
- ensure_refname_normalized(SYM_REF, "refs/heads/<", "refs/heads/<");
- ensure_refname_normalized(SYM_REF, "refs/heads/=", "refs/heads/=");
- ensure_refname_normalized(SYM_REF, "refs/heads/>", "refs/heads/>");
- ensure_refname_normalized(SYM_REF, "refs/heads/@", "refs/heads/@");
- ensure_refname_normalized(SYM_REF, "refs/heads/]", "refs/heads/]");
- ensure_refname_normalized(SYM_REF, "refs/heads/_", "refs/heads/_");
- ensure_refname_normalized(SYM_REF, "refs/heads/`", "refs/heads/`");
- ensure_refname_normalized(SYM_REF, "refs/heads/{", "refs/heads/{");
- ensure_refname_normalized(SYM_REF, "refs/heads/|", "refs/heads/|");
- ensure_refname_normalized(SYM_REF, "refs/heads/}", "refs/heads/}");
+ ensure_refname_normalized
+ (GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/!", "refs/heads/!");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/\"", "refs/heads/\"");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/#", "refs/heads/#");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/$", "refs/heads/$");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/%", "refs/heads/%");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/&", "refs/heads/&");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/'", "refs/heads/'");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/(", "refs/heads/(");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/)", "refs/heads/)");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/+", "refs/heads/+");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/,", "refs/heads/,");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/-", "refs/heads/-");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/;", "refs/heads/;");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/<", "refs/heads/<");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/=", "refs/heads/=");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/>", "refs/heads/>");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/@", "refs/heads/@");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/]", "refs/heads/]");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/_", "refs/heads/_");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/`", "refs/heads/`");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/{", "refs/heads/{");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/|", "refs/heads/|");
+ ensure_refname_normalized(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/}", "refs/heads/}");
// This is valid on UNIX, but not on Windows
// hence we make in invalid due to non-portability
//
- ensure_refname_invalid(SYM_REF, "refs/heads/\\");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/\\");
/* UnicodeNames */
/*
* Currently this fails.
- * ensure_refname_normalized(SYM_REF, "refs/heads/\u00e5ngstr\u00f6m", "refs/heads/\u00e5ngstr\u00f6m");
+ * ensure_refname_normalized(GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/\u00e5ngstr\u00f6m", "refs/heads/\u00e5ngstr\u00f6m");
*/
/* RefLogQueryIsValidRef */
- ensure_refname_invalid(SYM_REF, "refs/heads/master@{1}");
- ensure_refname_invalid(SYM_REF, "refs/heads/master@{1.hour.ago}");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master@{1}");
+ ensure_refname_invalid(
+ GIT_REF_FORMAT_ALLOW_ONELEVEL, "refs/heads/master@{1.hour.ago}");
+}
+
+void test_refs_normalize__buffer_has_to_be_big_enough_to_hold_the_normalized_version(void)
+{
+ char buffer_out[21];
+
+ cl_git_pass(git_reference_normalize_name(
+ 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));
}