]> git.proxmox.com Git - libgit2.git/blame - tests-clar/core/errors.c
Merge pull request #942 from nulltoken/topic/checkout-notify-skipped
[libgit2.git] / tests-clar / core / errors.c
CommitLineData
e3c47510
RB
1#include "clar_libgit2.h"
2#include "common.h"
3#include "util.h"
4#include "posix.h"
5
e3c47510
RB
6void test_core_errors__new_school(void)
7{
8 char *str_in_error;
9
3fbcac89
VM
10 giterr_clear();
11 cl_assert(giterr_last() == NULL);
e3c47510
RB
12
13 giterr_set_oom(); /* internal fn */
14
3fbcac89
VM
15 cl_assert(giterr_last() != NULL);
16 cl_assert(giterr_last()->klass == GITERR_NOMEMORY);
17 str_in_error = strstr(giterr_last()->message, "memory");
e3c47510
RB
18 cl_assert(str_in_error != NULL);
19
3fbcac89 20 giterr_clear();
e3c47510
RB
21
22 giterr_set(GITERR_REPOSITORY, "This is a test"); /* internal fn */
23
3fbcac89
VM
24 cl_assert(giterr_last() != NULL);
25 str_in_error = strstr(giterr_last()->message, "This is a test");
e3c47510
RB
26 cl_assert(str_in_error != NULL);
27
3fbcac89
VM
28 giterr_clear();
29 cl_assert(giterr_last() == NULL);
e3c47510 30
1a6e8f8a 31 do {
e3c47510 32 struct stat st;
1a6e8f8a 33 memset(&st, 0, sizeof(st));
6654dbe3 34 cl_assert(p_lstat("this_file_does_not_exist", &st) < 0);
17bd6de3 35 GIT_UNUSED(st);
1a6e8f8a 36 } while (false);
e3c47510
RB
37 giterr_set(GITERR_OS, "stat failed"); /* internal fn */
38
3fbcac89
VM
39 cl_assert(giterr_last() != NULL);
40 str_in_error = strstr(giterr_last()->message, "stat failed");
e3c47510
RB
41 cl_assert(str_in_error != NULL);
42 cl_assert(git__prefixcmp(str_in_error, "stat failed: ") == 0);
43 cl_assert(strlen(str_in_error) > strlen("stat failed: "));
44
45#ifdef GIT_WIN32
3fbcac89 46 giterr_clear();
e3c47510
RB
47
48 /* The MSDN docs use this to generate a sample error */
49 cl_assert(GetProcessId(NULL) == 0);
50 giterr_set(GITERR_OS, "GetProcessId failed"); /* internal fn */
51
3fbcac89
VM
52 cl_assert(giterr_last() != NULL);
53 str_in_error = strstr(giterr_last()->message, "GetProcessId failed");
e3c47510
RB
54 cl_assert(str_in_error != NULL);
55 cl_assert(git__prefixcmp(str_in_error, "GetProcessId failed: ") == 0);
56 cl_assert(strlen(str_in_error) > strlen("GetProcessId failed: "));
57#endif
58
3fbcac89 59 giterr_clear();
e3c47510 60}