diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-05-19 16:34:44 +0200 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2019-05-24 16:16:43 +0200 |
commit | 4bcebe2c92d52739e2ea7a92abb26df32ffc2423 (patch) | |
tree | 00ae4ea8f1c9baf39b0c2fd2ea48fdb14b16acf3 | |
parent | 63adcc4e3436abb163426ee431a6f77c29415b10 (diff) | |
download | libgit2-4bcebe2c92d52739e2ea7a92abb26df32ffc2423.tar.gz |
attr: ensure regular attr files can have whitespaceethomson/ignore_spaces
Unlike ignore files, gitattribute files can have flexible whitespace at
the beginning of the line. Ensure that by adding new ignore rules that
we have not impeded correct parsing of attribute files.
-rw-r--r-- | tests/attr/file.c | 31 | ||||
-rw-r--r-- | tests/iterator/workdir.c | 2 | ||||
-rw-r--r-- | tests/resources/attr/attr4 | 7 |
3 files changed, 33 insertions, 7 deletions
diff --git a/tests/attr/file.c b/tests/attr/file.c index 1f4108c3c..ec67c279a 100644 --- a/tests/attr/file.c +++ b/tests/attr/file.c @@ -181,16 +181,11 @@ void test_attr_file__assign_variants(void) git_attr_file__free(file); } -void test_attr_file__check_attr_examples(void) +static void assert_examples(git_attr_file *file) { - git_attr_file *file; git_attr_rule *rule; git_attr_assignment *assign; - cl_git_pass(git_attr_file__load_standalone(&file, cl_fixture("attr/attr3"))); - cl_assert_equal_s(cl_fixture("attr/attr3"), file->entry->path); - cl_assert(file->rules.length == 3); - rule = get_rule(0); cl_assert_equal_s("*.java", rule->match.pattern); cl_assert(rule->assigns.length == 3); @@ -219,6 +214,30 @@ void test_attr_file__check_attr_examples(void) assign = get_assign(rule, 0); cl_assert_equal_s("caveat", assign->name); cl_assert_equal_s("unspecified", assign->value); +} + +void test_attr_file__check_attr_examples(void) +{ + git_attr_file *file; + + cl_git_pass(git_attr_file__load_standalone(&file, cl_fixture("attr/attr3"))); + cl_assert_equal_s(cl_fixture("attr/attr3"), file->entry->path); + cl_assert(file->rules.length == 3); + + assert_examples(file); + + git_attr_file__free(file); +} + +void test_attr_file__whitespace(void) +{ + git_attr_file *file; + + cl_git_pass(git_attr_file__load_standalone(&file, cl_fixture("attr/attr4"))); + cl_assert_equal_s(cl_fixture("attr/attr4"), file->entry->path); + cl_assert(file->rules.length == 3); + + assert_examples(file); git_attr_file__free(file); } diff --git a/tests/iterator/workdir.c b/tests/iterator/workdir.c index 87ac1e5d4..9d3b54390 100644 --- a/tests/iterator/workdir.c +++ b/tests/iterator/workdir.c @@ -100,7 +100,7 @@ static void workdir_iterator_test( void test_iterator_workdir__0(void) { - workdir_iterator_test("attr", NULL, NULL, 23, 5, NULL, "ign"); + workdir_iterator_test("attr", NULL, NULL, 24, 5, NULL, "ign"); } static const char *status_paths[] = { diff --git a/tests/resources/attr/attr4 b/tests/resources/attr/attr4 new file mode 100644 index 000000000..fa88df943 --- /dev/null +++ b/tests/resources/attr/attr4 @@ -0,0 +1,7 @@ +# This is a comment + # This is also a comment +*.java diff=java -crlf myAttr + + NoMyAttr.java !myAttr + + README caveat=unspecified |