Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@microsoft.com>2015-09-08 22:48:44 +0300
committerEdward Thomson <ethomson@microsoft.com>2015-09-08 22:56:50 +0300
commit8e736a73cac81f09197eca32bf578f74ab21e97e (patch)
tree5c4882d4ffbf16b7b4ad1de567d70dc14c12448b /tests/core
parentea3f2c296aa39b9609db3d75c96837518beb12a3 (diff)
futils: ensure we can write a hidden file
Diffstat (limited to 'tests/core')
-rw-r--r--tests/core/futils.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/core/futils.c b/tests/core/futils.c
new file mode 100644
index 000000000..e7f7154ed
--- /dev/null
+++ b/tests/core/futils.c
@@ -0,0 +1,68 @@
+#include "clar_libgit2.h"
+#include "fileops.h"
+
+// Fixture setup and teardown
+void test_core_futils__initialize(void)
+{
+ cl_must_pass(p_mkdir("futils", 0777));
+}
+
+void test_core_futils__cleanup(void)
+{
+ cl_fixture_cleanup("futils");
+}
+
+void test_core_futils__writebuffer(void)
+{
+ git_buf out = GIT_BUF_INIT,
+ append = GIT_BUF_INIT;
+
+ /* create a new file */
+ git_buf_puts(&out, "hello!\n");
+ git_buf_printf(&out, "this is a %s\n", "test");
+
+ cl_git_pass(git_futils_writebuffer(&out, "futils/test-file", O_RDWR|O_CREAT, 0666));
+
+ cl_assert_equal_file(out.ptr, out.size, "futils/test-file");
+
+ /* append some more data */
+ git_buf_puts(&append, "And some more!\n");
+ git_buf_put(&out, append.ptr, append.size);
+
+ cl_git_pass(git_futils_writebuffer(&append, "futils/test-file", O_RDWR|O_APPEND, 0666));
+
+ cl_assert_equal_file(out.ptr, out.size, "futils/test-file");
+
+ git_buf_free(&out);
+ git_buf_free(&append);
+}
+
+void test_core_futils__write_hidden_file(void)
+{
+#ifndef GIT_WIN32
+ cl_skip();
+#else
+ git_buf out = GIT_BUF_INIT, append = GIT_BUF_INIT;
+ bool hidden;
+
+ git_buf_puts(&out, "hidden file.\n");
+ git_futils_writebuffer(&out, "futils/test-file", O_RDWR | O_CREAT, 0666);
+
+ cl_git_pass(git_win32__set_hidden("futils/test-file", true));
+
+ /* append some more data */
+ git_buf_puts(&append, "And some more!\n");
+ git_buf_put(&out, append.ptr, append.size);
+
+ cl_git_pass(git_futils_writebuffer(&append, "futils/test-file", O_RDWR | O_APPEND, 0666));
+
+ cl_assert_equal_file(out.ptr, out.size, "futils/test-file");
+
+ cl_git_pass(git_win32__hidden(&hidden, "futils/test-file"));
+ cl_assert(hidden);
+
+ git_buf_free(&out);
+ git_buf_free(&append);
+#endif
+}
+