Commit b4d183a77aa01cac406aecdff8908f10cb3501cb

Edward Thomson 2015-09-16T04:12:47

checkout::tree tests: don't use static buffer

diff --git a/tests/checkout/tree.c b/tests/checkout/tree.c
index 9217c12..3b84f43 100644
--- a/tests/checkout/tree.c
+++ b/tests/checkout/tree.c
@@ -989,15 +989,18 @@ void test_checkout_tree__filemode_preserved_in_index(void)
 
 mode_t read_filemode(const char *path)
 {
+	git_buf fullpath = GIT_BUF_INIT;
 	struct stat st;
-	char pathabs[256] = {0};
+	mode_t result;
 
-	strcat(pathabs, clar_sandbox_path());
-	strcat(pathabs, "/testrepo/");
-	strcat(pathabs, path);
-	cl_must_pass(p_stat(pathabs, &st));
+	git_buf_joinpath(&fullpath, "testrepo", path);
+	cl_must_pass(p_stat(fullpath.ptr, &st));
 
-	return st.st_mode;
+	result = GIT_PERMS_IS_EXEC(st.st_mode) ? 0100755 : 0100644;
+
+	git_buf_free(&fullpath);
+
+	return result;
 }
 
 void test_checkout_tree__filemode_preserved_in_workdir(void)