summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/diagnostics/syserr/syserr.compare/eq_error_code_error_code.pass.cpp
blob: e2e7aeda822b6f19025f7ed81938a4f96de8f6b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//===----------------------------------------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

// <system_error>

// bool operator==(const error_code&      lhs, const error_code&      rhs);
// bool operator==(const error_code&      lhs, const error_condition& rhs);
// bool operator==(const error_condition& lhs, const error_code&      rhs);
// bool operator==(const error_condition& lhs, const error_condition& rhs);
// bool operator!=(const error_code&      lhs, const error_code&      rhs);
// bool operator!=(const error_code&      lhs, const error_condition& rhs);
// bool operator!=(const error_condition& lhs, const error_code&      rhs);
// bool operator!=(const error_condition& lhs, const error_condition& rhs);

#include <system_error>
#include <cassert>

int main()
{
    std::error_code e_code1(5, std::generic_category());
    std::error_code e_code2(5, std::system_category());
    std::error_code e_code3(6, std::generic_category());
    std::error_code e_code4(6, std::system_category());
    std::error_condition e_condition1(5, std::generic_category());
    std::error_condition e_condition2(5, std::system_category());
    std::error_condition e_condition3(6, std::generic_category());
    std::error_condition e_condition4(6, std::system_category());

    assert(e_code1 == e_code1);
    assert(e_code1 != e_code2);
    assert(e_code1 != e_code3);
    assert(e_code1 != e_code4);
    assert(e_code1 == e_condition1);
    assert(e_code1 != e_condition2);
    assert(e_code1 != e_condition3);
    assert(e_code1 != e_condition4);

    assert(e_code2 != e_code1);
    assert(e_code2 == e_code2);
    assert(e_code2 != e_code3);
    assert(e_code2 != e_code4);
    assert(e_code2 == e_condition1);  // ?
    assert(e_code2 == e_condition2);
    assert(e_code2 != e_condition3);
    assert(e_code2 != e_condition4);

    assert(e_code3 != e_code1);
    assert(e_code3 != e_code2);
    assert(e_code3 == e_code3);
    assert(e_code3 != e_code4);
    assert(e_code3 != e_condition1);
    assert(e_code3 != e_condition2);
    assert(e_code3 == e_condition3);
    assert(e_code3 != e_condition4);

    assert(e_code4 != e_code1);
    assert(e_code4 != e_code2);
    assert(e_code4 != e_code3);
    assert(e_code4 == e_code4);
    assert(e_code4 != e_condition1);
    assert(e_code4 != e_condition2);
    assert(e_code4 == e_condition3);  // ?
    assert(e_code4 == e_condition4);

    assert(e_condition1 == e_code1);
    assert(e_condition1 == e_code2);  // ?
    assert(e_condition1 != e_code3);
    assert(e_condition1 != e_code4);
    assert(e_condition1 == e_condition1);
    assert(e_condition1 != e_condition2);
    assert(e_condition1 != e_condition3);
    assert(e_condition1 != e_condition4);

    assert(e_condition2 != e_code1);
    assert(e_condition2 == e_code2);
    assert(e_condition2 != e_code3);
    assert(e_condition2 != e_code4);
    assert(e_condition2 != e_condition1);
    assert(e_condition2 == e_condition2);
    assert(e_condition2 != e_condition3);
    assert(e_condition2 != e_condition4);

    assert(e_condition3 != e_code1);
    assert(e_condition3 != e_code2);
    assert(e_condition3 == e_code3);
    assert(e_condition3 == e_code4);  // ?
    assert(e_condition3 != e_condition1);
    assert(e_condition3 != e_condition2);
    assert(e_condition3 == e_condition3);
    assert(e_condition3 != e_condition4);

    assert(e_condition4 != e_code1);
    assert(e_condition4 != e_code2);
    assert(e_condition4 != e_code3);
    assert(e_condition4 == e_code4);
    assert(e_condition4 != e_condition1);
    assert(e_condition4 != e_condition2);
    assert(e_condition4 != e_condition3);
    assert(e_condition4 == e_condition4);
}
OpenPOWER on IntegriCloud