]> git.saurik.com Git - apt.git/blob - test/libapt/globalerror_test.cc
show upgradable packages after apt update
[apt.git] / test / libapt / globalerror_test.cc
1 #include <config.h>
2
3 #include <apt-pkg/error.h>
4
5 #include <stddef.h>
6 #include <string>
7 #include <errno.h>
8 #include <string.h>
9
10 #include "assert.h"
11
12 int main()
13 {
14 std::string const textOfErrnoZero(strerror(0));
15
16 equals(_error->empty(), true);
17 equals(_error->PendingError(), false);
18 equals(_error->Notice("%s Notice", "A"), false);
19 equals(_error->empty(), true);
20 equals(_error->empty(GlobalError::DEBUG), false);
21 equals(_error->PendingError(), false);
22 equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false);
23 equals(_error->PendingError(), true);
24 std::string text;
25 equals(_error->PopMessage(text), false);
26 equals(_error->PendingError(), true);
27 equals(text, "A Notice");
28 equals(_error->PopMessage(text), true);
29 equals(text, "Something horrible happened 2 times");
30 equals(_error->empty(GlobalError::DEBUG), true);
31 equals(_error->PendingError(), false);
32 equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false);
33 equals(_error->PendingError(), true);
34 equals(_error->empty(GlobalError::FATAL), false);
35 _error->Discard();
36
37 equals(_error->empty(), true);
38 equals(_error->PendingError(), false);
39 equals(_error->Notice("%s Notice", "A"), false);
40 equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false);
41 equals(_error->PendingError(), true);
42 equals(_error->empty(GlobalError::NOTICE), false);
43 _error->PushToStack();
44 equals(_error->empty(GlobalError::NOTICE), true);
45 equals(_error->PendingError(), false);
46 equals(_error->Warning("%s Warning", "A"), false);
47 equals(_error->empty(GlobalError::ERROR), true);
48 equals(_error->PendingError(), false);
49 _error->RevertToStack();
50 equals(_error->empty(GlobalError::ERROR), false);
51 equals(_error->PendingError(), true);
52 equals(_error->PopMessage(text), false);
53 equals(_error->PendingError(), true);
54 equals(text, "A Notice");
55 equals(_error->PopMessage(text), true);
56 equals(text, "Something horrible happened 2 times");
57 equals(_error->PendingError(), false);
58 equals(_error->empty(), true);
59
60 equals(_error->Notice("%s Notice", "A"), false);
61 equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false);
62 equals(_error->PendingError(), true);
63 equals(_error->empty(GlobalError::NOTICE), false);
64 _error->PushToStack();
65 equals(_error->empty(GlobalError::NOTICE), true);
66 equals(_error->PendingError(), false);
67 equals(_error->Warning("%s Warning", "A"), false);
68 equals(_error->empty(GlobalError::ERROR), true);
69 equals(_error->PendingError(), false);
70 _error->MergeWithStack();
71 equals(_error->empty(GlobalError::ERROR), false);
72 equals(_error->PendingError(), true);
73 equals(_error->PopMessage(text), false);
74 equals(_error->PendingError(), true);
75 equals(text, "A Notice");
76 equals(_error->PopMessage(text), true);
77 equals(text, "Something horrible happened 2 times");
78 equals(_error->PendingError(), false);
79 equals(_error->empty(), false);
80 equals(_error->PopMessage(text), false);
81 equals(text, "A Warning");
82 equals(_error->empty(), true);
83
84 errno = 0;
85 equals(_error->Errno("errno", "%s horrible %s %d times", "Something", "happened", 2), false);
86 equals(_error->empty(), false);
87 equals(_error->PendingError(), true);
88 equals(_error->PopMessage(text), true);
89 equals(_error->PendingError(), false);
90 equals(text, std::string("Something horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")"));
91 equals(_error->empty(), true);
92
93 std::string longText;
94 for (size_t i = 0; i < 500; ++i)
95 longText.append("a");
96 equals(_error->Error("%s horrible %s %d times", longText.c_str(), "happened", 2), false);
97 equals(_error->PopMessage(text), true);
98 equals(text, std::string(longText).append(" horrible happened 2 times"));
99
100 equals(_error->Errno("errno", "%s horrible %s %d times", longText.c_str(), "happened", 2), false);
101 equals(_error->PopMessage(text), true);
102 equals(text, std::string(longText).append(" horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")"));
103
104 equals(_error->Warning("Репозиторий не обновлён и будут %d %s", 4, "test"), false);
105 equals(_error->PopMessage(text), false);
106 equals(text, "Репозиторий не обновлён и будут 4 test");
107
108 longText.clear();
109 for (size_t i = 0; i < 50; ++i)
110 longText.append("РезийбёбAZ");
111 equals(_error->Warning("%s", longText.c_str()), false);
112 equals(_error->PopMessage(text), false);
113 equals(text, longText);
114
115 return 0;
116 }