From 280c7bbf13080c00fb563f8ecc08d9e606e3bd12 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 13 Jul 2012 15:52:27 -0700 Subject: [PATCH] Add checkout test suite. Removed 'bare' option from test repository to allow checkout tests. --- tests-clar/checkout/checkout.c | 68 ++++++++++++++++++++ tests-clar/resources/testrepo/.gitted/config | 2 +- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 tests-clar/checkout/checkout.c diff --git a/tests-clar/checkout/checkout.c b/tests-clar/checkout/checkout.c new file mode 100644 index 000000000..33a960313 --- /dev/null +++ b/tests-clar/checkout/checkout.c @@ -0,0 +1,68 @@ +#include "clar_libgit2.h" + +#include "git2/checkout.h" +#include "repository.h" + +#define DO_LOCAL_TEST 0 +#define DO_LIVE_NETWORK_TESTS 1 +#define LIVE_REPO_URL "http://github.com/libgit2/node-gitteh" + + +static git_repository *g_repo; + +void test_checkout_checkout__initialize(void) +{ + g_repo = cl_git_sandbox_init("testrepo"); +} + +void test_checkout_checkout__cleanup(void) +{ + cl_git_sandbox_cleanup(); +} + + +static void test_file_contents(const char *path, const char *expectedcontents) +{ + int fd; + char buffer[1024] = {0}; + fd = p_open(path, O_RDONLY); + cl_assert(fd); + cl_assert_equal_i(p_read(fd, buffer, 1024), strlen(expectedcontents)); + cl_assert_equal_s(expectedcontents, buffer); + cl_git_pass(p_close(fd)); +} + + +void test_checkout_checkout__bare(void) +{ + cl_git_sandbox_cleanup(); + g_repo = cl_git_sandbox_init("testrepo.git"); + cl_git_fail(git_checkout_force(g_repo, NULL)); +} + +void test_checkout_checkout__default(void) +{ + cl_git_pass(git_checkout_force(g_repo, NULL)); + test_file_contents("./testrepo/README", "hey there\n"); + test_file_contents("./testrepo/branch_file.txt", "hi\nbye!\n"); + test_file_contents("./testrepo/new.txt", "my new file\n"); +} + + +void test_checkout_checkout__crlf(void) +{ + const char *attributes = + "branch_file.txt text eol=crlf\n" + "README text eol=cr\n" + "new.txt text eol=lf\n"; + cl_git_mkfile("./testrepo/.gitattributes", attributes); + cl_git_pass(git_checkout_force(g_repo, NULL)); + test_file_contents("./testrepo/README", "hey there\n"); + test_file_contents("./testrepo/new.txt", "my new file\n"); + test_file_contents("./testrepo/branch_file.txt", "hi\r\nbye!\r\n"); +} + +void test_checkout_checkout__stats(void) +{ + /* TODO */ +} diff --git a/tests-clar/resources/testrepo/.gitted/config b/tests-clar/resources/testrepo/.gitted/config index 1a5aacdfa..d0114012f 100644 --- a/tests-clar/resources/testrepo/.gitted/config +++ b/tests-clar/resources/testrepo/.gitted/config @@ -1,7 +1,7 @@ [core] repositoryformatversion = 0 filemode = true - bare = true + bare = false logallrefupdates = true [remote "test"] url = git://github.com/libgit2/libgit2